:root{--bg: #0e1116;--bg-2: #161b22;--surface: #1c222b;--line: #2a323d;--ink: #e8edf4;--ink-soft: #97a2b2;--ink-faint: #6b7686;--mint: #45c4a8;--used: #7b8798;--warn: #e0a03a;--danger: #ef6a5a;--radius: 14px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Malgun Gothic,system-ui,sans-serif;font-size:15px;line-height:1.6;overscroll-behavior:none;-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}.app{height:100%;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.topbar{display:flex;align-items:center;gap:10px;padding:12px 16px 10px;border-bottom:1px solid var(--line)}.topbar h1{font-size:16px;margin:0;font-weight:700;letter-spacing:-.01em}.topbar .sub{font-size:12px;color:var(--ink-faint)}.topbar .trial{margin-left:7px;font-size:10.5px;font-weight:600;letter-spacing:.06em;color:var(--warn);border:1px solid var(--warn);border-radius:999px;padding:1px 7px;vertical-align:2px}.topbar .spacer{flex:1}.iconbtn{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:7px 11px;font-size:13px;cursor:pointer}.iconbtn:active{transform:scale(.97)}@media (max-width: 380px){.topbar{gap:6px;padding-left:12px;padding-right:12px}.iconbtn{padding:7px 9px;font-size:12.5px}.topbar h1{font-size:15px}}.tabs{display:flex;gap:8px;padding:12px 16px 6px}.tab{flex:1;background:transparent;border:1px solid var(--line);border-radius:999px;padding:8px 0;font-size:13.5px;color:var(--ink-soft);cursor:pointer}.tab[aria-selected=true]{background:var(--surface);color:var(--ink);border-color:var(--mint);font-weight:600}.tab .cnt{color:var(--ink-faint);font-size:12px;margin-left:5px}.monthbar{display:flex;align-items:center;justify-content:center;gap:14px;padding:4px 16px 10px;color:var(--ink-soft);font-size:13.5px}.monthbar button{background:none;border:0;color:var(--ink-soft);font-size:19px;padding:2px 8px;cursor:pointer}.monthbar b{color:var(--ink);font-variant-numeric:tabular-nums}.deck{flex:1;position:relative;overflow:hidden;touch-action:none}.card{position:absolute;top:14px;right:20px;bottom:26px;left:20px;border-radius:var(--radius);background:var(--surface);box-shadow:0 28px 50px -26px #000000f2,0 3px 10px #00000059;overflow:hidden;will-change:transform;display:flex;flex-direction:column;border:1px solid var(--line)}.card .shot{position:relative;flex:1;min-height:0;display:flex}.card img{flex:1;width:100%;min-height:0;object-fit:contain;background:#0a0d11;pointer-events:none;-webkit-user-select:none;user-select:none}.card.is-used img{filter:grayscale(.82) brightness(.66)}.usedby{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:10px;padding:26px 14px 12px;background:linear-gradient(to top,#080a0ef0 38%,#080a0e00)}.usedby .who{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:15px;font-weight:700;color:#fff}.usedby .txt{display:flex;flex-direction:column;line-height:1.35;min-width:0}.usedby .txt b{font-size:14.5px;font-weight:700}.usedby .txt em{font-style:normal;font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.due{position:absolute;left:12px;top:12px;display:inline-flex;align-items:baseline;gap:7px;background:#080a0ed6;border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:5px 12px;font-family:inherit;font-size:12px;font-variant-numeric:tabular-nums}.due b{font-size:14px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}.due span{font-size:11.5px}.due.urgent{color:#ffd08a;border-color:var(--warn)}.due.urgent b{color:#ffd08a}.due.over{color:var(--danger);border-color:var(--danger)}.due.over b{color:var(--danger);text-decoration:line-through}.due.addnote{color:var(--ink-faint);border-style:dashed;cursor:pointer}.due.guess{border-style:dashed}.due em{font-style:normal;font-size:10px;letter-spacing:.04em;color:var(--ink-faint);border-left:1px solid var(--line);padding-left:7px}.editlink{display:inline-block;margin-left:8px;background:none;border:0;border-bottom:1px solid var(--line);color:var(--mint);font-size:12px;padding:0 0 1px;cursor:pointer}.sheetback{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#06080b9e;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:520px;background:var(--bg-2);border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;padding:22px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -14px 40px -20px #000}.sheet .q{margin:0;font-size:17px;font-weight:700;line-height:1.45}.sheet .sub{margin:6px 0 0;font-size:13.5px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet .rowbtns{margin-top:18px}.help h3{font-size:15px;margin:24px 0 10px}.gesture{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:10px 18px 6px;margin:14px 0 20px}.gesture svg{display:block;max-width:280px;margin:0 auto}.helpcard{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;padding:13px 14px;margin-bottom:9px}.helpcard b{font-size:14.5px}.helpcard p{margin:4px 0 0;font-size:13.5px;color:var(--ink-soft);line-height:1.6}.helpcard p b{color:var(--ink);font-size:inherit}.helpcard.mint{border-left-color:var(--mint)}.helpcard.danger{border-left-color:var(--danger)}.helptable{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.helptable th,.helptable td{padding:10px 12px;text-align:left}.helptable thead th{font-size:12px;color:var(--ink-faint);font-weight:600;background:var(--bg-2);border-bottom:1px solid var(--line)}.helptable tbody tr+tr td{border-top:1px solid var(--line-2, #232a34)}.helptable td.up{color:var(--mint)}.helptable td.down{color:var(--danger)}.memocard{flex:1;width:100%;min-height:0;display:flex;align-items:center;justify-content:center;padding:22px 20px;overflow:hidden}.memocard-in{max-width:100%;text-align:center}.memocard .tagline{display:inline-block;font-size:10.5px;letter-spacing:.14em;color:#ffffff8c;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:2px 9px;margin-bottom:12px}.memocard .mtitle{margin:0 0 10px;font-size:22px;font-weight:800;line-height:1.32;color:#fff;letter-spacing:-.02em;overflow-wrap:anywhere}.memocard .mbody{margin:0;font-size:14px;line-height:1.6;color:#ffffffd1;white-space:pre-wrap;overflow-wrap:anywhere}.memocard.big .mtitle{font-size:34px}.memocard.big .mbody{font-size:19px}.viewer-memo{max-width:92vw;will-change:transform}.editshot.memoshot{display:flex;height:26vh;padding:0}textarea{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:12px 13px;font:inherit;font-size:15px;color:var(--ink);resize:vertical}textarea:focus{outline:2px solid var(--mint);outline-offset:1px}.editshot{width:100%;max-height:34vh;object-fit:contain;background:#0a0d11;border:1px solid var(--line);border-radius:12px;margin-top:6px}.ddaynote{margin-top:7px;font-size:13px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.ddaynote.urgent{color:#ffd08a}.ddaynote.over{color:var(--danger)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.chips .chip{background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:6px 12px;font-size:13px;font-variant-numeric:tabular-nums;cursor:pointer}.chips .chip.on{border-color:var(--mint);color:var(--mint);font-weight:600}.viewer-dday{flex:none;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;color:#fff;background:#ffffff24;border-radius:999px;padding:3px 10px}.toast{position:fixed;left:50%;bottom:calc(28px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:60;background:#1c222bf5;border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:10px 18px;font-size:13.5px;box-shadow:0 12px 30px -18px #000;pointer-events:none}.viewer-dday.urgent{background:#e0a03a42;color:#ffd08a}.viewer-dday.over{background:#ef6a5a42;color:#ffb3a8}.card .foot{padding:11px 14px 13px;border-top:1px solid var(--line);background:var(--bg-2)}.card .foot .t{font-size:14.5px;font-weight:600}.card .foot .m{font-size:12px;color:var(--ink-faint);margin-top:2px}.card .foot .m b{color:var(--used);font-weight:600}.stamp{position:absolute;top:16px;right:16px;border:2px solid var(--used);color:var(--used);border-radius:8px;padding:3px 10px;font-size:12.5px;font-weight:800;letter-spacing:.1em;transform:rotate(-11deg);background:#0e11168c}.hint{position:absolute;left:50%;transform:translate(-50%);padding:6px 14px;border-radius:999px;font-size:13px;font-weight:700;pointer-events:none;border:1px solid currentColor;background:#0e1116cc}.hint.up{top:22px;color:var(--used)}.hint.down{bottom:34px;color:var(--mint)}.hint.down.warn{color:var(--danger)}.stamp.trash{border-color:var(--danger);color:var(--danger)}.linkbtn{background:none;border:0;border-bottom:1px solid var(--line);color:var(--mint);font-size:inherit;padding:0 0 1px;cursor:pointer}.updatebar{display:flex;align-items:center;gap:10px;padding:9px 12px 9px 14px;background:#45c4a81f;border-bottom:1px solid rgba(69,196,168,.28);font-size:13px}.updatebar>span{flex:1;min-width:0}.updatebar b{color:var(--mint)}.updatebar em{display:block;font-style:normal;font-size:11px;color:var(--ink-faint)}.updatebar .btn{padding:7px 14px;font-size:13px;text-decoration:none}.updatebar .x{background:none;border:0;color:var(--ink-faint);font-size:15px;padding:4px 6px;cursor:pointer}.borrowed{position:absolute;top:16px;left:16px;display:flex;flex-direction:column;gap:1px;padding:5px 10px;border-radius:8px;background:#06080bb8;border:1px solid rgba(255,255,255,.16);pointer-events:none}.borrowed b{font-size:12px;font-weight:800;color:#fff}.borrowed span{font-size:10.5px;color:var(--mint);letter-spacing:.02em}.viewer .hint{z-index:52}.viewer .hint.up{top:64px}.viewer .hint.down{bottom:84px}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.viewer-img{max-width:100%;max-height:100%;object-fit:contain;will-change:transform;-webkit-user-select:none;user-select:none}.viewer-top{position:absolute;top:env(safe-area-inset-top);left:0;right:0;display:flex;align-items:center;gap:10px;padding:12px 14px 22px;background:linear-gradient(to bottom,rgba(0,0,0,.72),transparent)}.viewer-title{flex:1;font-size:15px;font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-close{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:#00000073;color:#fff;font-size:15px;cursor:pointer}.viewer-bottom{position:absolute;bottom:env(safe-area-inset-bottom);left:0;right:0;display:flex;flex-direction:column;gap:4px;padding:24px 16px 14px;background:linear-gradient(to top,rgba(0,0,0,.78),transparent)}.viewer-who{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#dfe6ef}.viewer-who i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:12.5px;font-weight:700;color:#fff;flex:none}.viewer-who b{color:#fff}.viewer-tip{font-size:11.5px;color:#8d96a4}.empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--ink-faint);font-size:14px;padding:0 30px;text-align:center}.empty b{color:var(--ink-soft);font-size:15px}.deckfoot{display:flex;align-items:center;justify-content:space-between;padding:0 20px 12px;color:var(--ink-faint);font-size:12px}.deckfoot .dots{display:flex;gap:4px}.dot{width:5px;height:5px;border-radius:50%;background:var(--line)}.dot.on{background:var(--mint)}.bottombar{display:flex;gap:8px;padding:10px 16px 14px;border-top:1px solid var(--line);background:var(--bg-2)}.btn{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 0;font-size:14px;cursor:pointer}.btn.primary{background:var(--mint);border-color:var(--mint);color:#07130f;font-weight:700}.btn:disabled{opacity:.45}.btn:active{transform:scale(.985)}.screen{flex:1;overflow-y:auto;padding:18px 16px 28px}.screen h2{font-size:19px;margin:0 0 4px}.screen p.lede{color:var(--ink-soft);font-size:13.5px;margin:0 0 18px}label{display:block;font-size:12.5px;color:var(--ink-soft);margin:14px 0 5px}input,select{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:12px 13px;font-size:15px}input:focus,select:focus{outline:2px solid var(--mint);outline-offset:1px}.hintline{font-size:12px;color:var(--ink-faint);margin-top:6px}.err{margin-top:14px;border-left:2px solid var(--danger);background:#ef6a5a1a;padding:10px 12px;border-radius:0 8px 8px 0;font-size:13.5px;color:#ffb3a8}.rowbtns{display:flex;gap:8px;margin-top:20px}.picks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.pick{position:relative;aspect-ratio:3 / 4;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}.pick img{width:100%;height:100%;object-fit:cover}.pick button{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:0;background:#000000a6;color:#fff;font-size:13px;cursor:pointer}.ym{display:flex;gap:8px}.ym select{flex:1}.progress{margin-top:16px;font-size:13px;color:var(--ink-soft)}.bar{height:4px;background:var(--line);border-radius:2px;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;background:var(--mint);transition:width .2s}.yearbar{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:14px}.yearbar b{font-size:18px;font-variant-numeric:tabular-nums}.yearbar button{background:none;border:0;color:var(--ink-soft);font-size:20px;cursor:pointer}.months{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mcell{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 10px;text-align:left;cursor:pointer}.mcell .mm{font-size:13px;color:var(--ink-soft)}.mcell .nums{display:flex;align-items:baseline;gap:6px;margin-top:5px;font-variant-numeric:tabular-nums}.mcell .u{font-size:21px;font-weight:700;color:var(--mint)}.mcell .d{font-size:13px;color:var(--used)}.mcell.zero{opacity:.38}.mcell.zero .u{color:var(--ink-faint)}
