.ntabs{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ncard{border:2px solid var(--border-strong);background:var(--surface-alt);border-radius:12px;margin-bottom:10px;padding:10px 12px}.ncard.hist,.nrow.hist{background:var(--panel-alt);border-style:dashed}.ntop{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ndday{background:var(--panel-alt);border:1.5px solid var(--ink-soft);white-space:nowrap;border-radius:6px;padding:1px 7px;font:800 12px Pretendard}.ndday.hot{background:var(--accent);border-color:var(--accent);color:#fff}.ndday.warn{background:var(--gold);border-color:var(--gold)}.ndday.over{color:#fff;background:#8f2d2d;border-color:#8f2d2d}.ndate{color:var(--ink-soft);white-space:nowrap;font:600 12px Pretendard}.ntitle{word-break:break-word;margin:6px 0;font:700 15px Pretendard}.ntags{flex-wrap:wrap;gap:6px;display:flex}.ntag{border:1.5px solid var(--ink-soft);white-space:nowrap;background:#fff;border-radius:20px;padding:1px 8px;font:700 11px Pretendard}.ntag.point{border-color:var(--amber);color:#7a5418;background:#fff3cf}.ntag.general{border-color:var(--rep);color:#46525b;background:#eef1f3}.nres{margin-top:6px;font:700 12px Pretendard}.nres.ok{color:#2f7a4a}.nres.no{color:var(--ink-mute)}.ncnt{background:var(--accent);color:#fff;text-align:center;border-radius:10px;min-width:1.4em;padding:0 5px;font-size:.8em;display:inline-block}.nsync{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;font:600 12px Pretendard;display:flex}.nsync .link{cursor:pointer;text-decoration:underline}.nlogin{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.nlogin .field{width:200px}.nrow{border:2px solid var(--border-strong);background:var(--surface-alt);border-radius:10px;align-items:center;gap:12px;margin-bottom:8px;padding:10px 12px;display:flex}.nrow .ndue{flex:none;align-items:center;gap:6px;width:150px;display:flex}.nrow .nbody{flex:1;min-width:0}.nrow .ntitle{margin:0 0 4px}.nrow .acts{flex:none;gap:6px;display:flex}.nform .fl{margin:14px 0 6px;font:700 13px Pretendard;display:block}.nform .fl:first-child{margin-top:0}.nform .req{color:var(--accent)}.nform .hint{color:var(--ink-mute);margin-top:6px;font:500 12px Pretendard}.nform .err{color:var(--accent);margin-top:10px;font:700 12px Pretendard}@media (width<=760px){.nrow{flex-wrap:wrap;gap:8px}.nrow .ndue{width:auto}.nrow .nbody{flex-basis:100%;order:2}.nrow .acts{order:3;margin-left:auto}}:root{--ink:#514d45;--ink-soft:#6a655a;--ink-mute:#8a857a;--ink-faint:#a29b8b;--line:#d8d3c6;--bg:#e7e3da;--panel:#f5f1ea;--panel-alt:#efe9df;--surface:#faf7f1;--surface-alt:#fbf9f4;--card:#f7f3ec;--accent:#bb6b52;--accent-soft:#ffe3db;--gold:#e3c069;--rep:#8a97a1;--fix:#85789f;--onc:#d4772f;--amber:#c0904f;--border-strong:#514d45}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Pretendard,Noto Sans KR,system-ui,sans-serif;font-weight:500}button,input,textarea,select{color:inherit;font-family:inherit}.app{min-height:100vh;display:flex}.side{background:var(--panel-alt);border-right:2px solid var(--border-strong);flex-direction:column;flex:none;width:210px;padding:12px 0;display:flex}.brand{align-items:center;gap:8px;padding:2px 16px 14px;font:700 17px Pretendard;display:flex}.brand .dot{border:2px solid var(--border-strong);background:var(--gold);border-radius:4px;width:14px;height:14px}.navi{flex-direction:column;gap:1px;display:flex}.nav{color:#3a372f;cursor:pointer;text-align:left;background:0 0;border:0;border-left:3px solid #0000;align-items:center;gap:9px;width:100%;padding:9px 16px;font:700 13px Pretendard;display:flex}.nav .ic{border:1.5px solid var(--ink-soft);border-radius:4px;flex:none;width:16px;height:16px}.nav.on{border-left-color:var(--accent);color:var(--ink);background:#fff}.nav.on .ic{border-color:var(--accent);background:var(--accent-soft)}.nav.grp{color:#a8a294;letter-spacing:.05em;cursor:default;border:0;padding:12px 16px 4px;font:700 10px ui-monospace,monospace}.nav.dis{color:#c2bcae;cursor:not-allowed}.nav.dis .ic{border-color:#d3cdbf}.nav.sub{padding-left:26px}.tabs2{display:none}.lock{color:#c2bcae;border:1px solid #d3cdbf;border-radius:4px;margin-left:auto;padding:0 4px;font:9px ui-monospace,monospace}.main{background:var(--surface);flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.head{border-bottom:2px solid var(--border-strong);align-items:center;gap:14px;padding:16px 24px;display:flex}.h1{font:700 21px Pretendard}.headright{margin-left:auto}.headtools{align-items:center;gap:10px;display:flex}.headdate{white-space:nowrap;align-items:center;gap:4px;font:700 12px Pretendard;display:flex}.body{flex:1;padding:18px 24px 28px;overflow:auto}.monthnav{border:2px solid var(--border-strong);background:#fff;border-radius:30px;align-items:center;gap:12px;padding:5px 8px;display:flex}.arw{border:2px solid var(--border-strong);background:var(--panel-alt);cursor:pointer;border-radius:50%;place-items:center;width:30px;height:30px;font:700 14px Pretendard;display:grid}.arw:hover{background:#fff}.search{border:2px solid var(--border-strong);min-width:140px;color:var(--ink);background:#fff;border-radius:8px;flex:1;align-items:center;gap:8px;padding:7px 12px;font:400 12px ui-monospace,monospace;display:flex}.search input{color:var(--ink);background:0 0;border:0;outline:none;flex:1;font:400 12px ui-monospace,monospace}.search input::placeholder{color:var(--ink-mute)}.btn{border:2px solid var(--border-strong);white-space:nowrap;cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:6px;padding:7px 13px;font:700 13px Pretendard;display:inline-flex}.btn:hover{background:var(--panel-alt)}.btn.pri{background:var(--ink);color:#fff}.btn.pri:hover{background:#3f3c35}.btn.acc{background:var(--gold)}.btn:disabled,.btn.disabled{opacity:.45;cursor:not-allowed}.btn.disabled:hover{background:#fff}.btn.pri.disabled:hover{background:var(--ink)}.chip{border:2px solid var(--border-strong);cursor:pointer;background:#fff;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font:700 12px Pretendard;display:inline-flex}.chip.on{background:var(--ink);color:#fff}.chip.static{cursor:default}.cbx{border:2px solid var(--border-strong);border-radius:3px;flex:none;place-items:center;width:15px;height:15px;font-size:10px;display:inline-grid}.cbx.ck{background:var(--ink);color:#fff}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stepper{border:2px solid var(--border-strong);background:#f6f2eb;border-radius:8px;align-items:center;display:flex;overflow:hidden}.stepper .sbtn{cursor:pointer;background:var(--panel-alt);-webkit-user-select:none;user-select:none;border:0;place-items:center;width:28px;height:28px;font:700 15px Pretendard;display:grid}.stepper .sbtn:hover{background:#fff}.stepper .sval{text-align:center;min-width:36px;padding:0 3px;font:700 14px Pretendard}.list{flex-direction:column;gap:9px;max-width:820px;margin-top:14px;display:flex}.tsub{color:var(--ink-mute);letter-spacing:.05em;align-items:center;gap:8px;margin:14px 0 2px;font:700 11px ui-monospace,monospace;display:flex}.tsub:after{content:"";background:repeating-linear-gradient(90deg, var(--line) 0 6px, transparent 6px 12px);flex:1;height:2px}.item{border:2px solid var(--border-strong);background:var(--surface-alt);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.item.clickable{cursor:pointer}.item.clickable:hover{background:#fff}.item.locked{background:var(--panel-alt);border-style:dashed}.item .chk{border:2px solid var(--border-strong);cursor:pointer;background:0 0;border-radius:6px;flex:none;place-items:center;width:22px;height:22px;font:700 12px Pretendard;display:grid}.item .chk.done{background:var(--ink);color:#fff}.item .time{flex:none;width:56px;font:600 15px Pretendard}.item .txt{flex:1;min-width:0;font:500 14px/1.2 Pretendard}.alias-inline{color:var(--ink-faint);font-size:12px}.item .meta{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:5px;display:flex}.tag{border:1.5px solid var(--ink-soft);color:#4a463c;white-space:nowrap;border-radius:5px;padding:1px 6px;font:700 12px ui-monospace,monospace}.tag.kind{text-align:center;min-width:48px;display:inline-block}.tag.rep{background:var(--rep);border-color:var(--rep);color:#fff}.tag.fix{background:var(--fix);border-color:var(--fix);color:#fff}.tag.onc{background:var(--onc);border-color:var(--onc);color:#fff}.tag.alias{border-color:var(--fix);color:var(--fix)}.grip{color:#b8b2a4;cursor:grab;background:0 0;border:none;flex:none;width:16px;padding:0;font:700 14px Pretendard}.item.now{border-color:var(--accent);background:#fff6f3;border-left-width:7px;box-shadow:3px 3px #d63b1f2e}.fc{background:var(--amber);color:#fff;white-space:nowrap;border-radius:5px;align-items:center;gap:4px;padding:2px 7px;font:700 10px ui-monospace,monospace;display:inline-flex}.fc.hot{background:var(--accent)}.badge-now{background:var(--accent);color:#fff;border-radius:4px;padding:1px 6px;font:700 9px ui-monospace,monospace}.badge-carry{background:var(--gold);color:#3a372f;border-radius:4px;padding:1px 6px;font:700 9px ui-monospace,monospace}.item.carried{background:var(--card);border-style:dashed}.dim{opacity:.5}.dim .txt{text-decoration:line-through}.ph{color:var(--ink-faint);text-align:center;background:repeating-linear-gradient(45deg,#ece7dd 0 8px,#f6f2ea 8px 16px);border:1.5px dashed #c2bcae;border-radius:8px;place-items:center;padding:10px;font:400 10px ui-monospace,monospace;display:grid}.field{border:2px solid var(--border-strong);background:#fff;border-radius:8px;outline:none;width:100%;padding:8px 10px;font:500 13px Pretendard}.note{color:#a2482b;align-items:flex-start;gap:6px;font:400 10px/1.45 ui-monospace,monospace;display:flex}.note:before{content:"‹";color:var(--accent);font-weight:700}.notecol{flex-direction:column;gap:5px;max-width:480px;margin-top:10px;display:flex}.legend{background:var(--card);border:2px dashed #c2bcae;border-radius:10px;flex-direction:column;gap:6px;padding:12px 14px;font:500 11px/1.4 Pretendard;display:flex}.dlabel{color:var(--ink-mute);margin-bottom:3px;font:700 10px ui-monospace,monospace}.sw{border:2px solid var(--border-strong);border-radius:4px;flex:none;width:22px;height:14px;display:inline-block}.overlay{z-index:50;background:#22201c6b;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--card);border:2.5px solid var(--border-strong);border-radius:14px;flex-direction:column;width:100%;max-width:460px;max-height:90vh;display:flex;overflow:hidden;box-shadow:6px 6px #00000040}.mhead{border-bottom:2px solid var(--border-strong);justify-content:space-between;align-items:center;padding:13px 16px;display:flex}.mhead .x{cursor:pointer;background:0 0;border:none;font:700 17px Pretendard}.mbody{background:var(--surface-alt);color:#3a372f;flex:1;padding:14px 16px;font:400 12px/1.7 ui-monospace,monospace;overflow:auto}.mfoot{border-top:2px solid var(--border-strong);background:var(--panel-alt);justify-content:flex-end;gap:10px;padding:12px 16px;display:flex}table.tbl{border-collapse:collapse;background:#fff;width:100%;font:500 12px Pretendard}.tbl th,.tbl td{border:2px solid var(--border-strong);text-align:left;vertical-align:top;padding:7px 10px}.tbl th{background:var(--panel-alt);font-family:ui-monospace,monospace;font-size:10px;font-weight:700}.toast{background:var(--ink);color:#fff;z-index:100;border-radius:8px;padding:10px 18px;font:700 12px Pretendard;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:3px 3px #0003}.toast.git-toast{white-space:pre-wrap;word-break:break-word;text-align:center;width:max-content;max-width:min(560px,100vw - 32px);font-size:13px;line-height:1.5;top:50%;bottom:auto;transform:translate(-50%,-50%)}.toast.git-toast.error{background:var(--accent)}.gitlog{flex-direction:column;gap:6px;display:flex}.gitlog-row{border:2px solid var(--border-strong);background:var(--surface);border-radius:8px;padding:8px 12px}.gitlog-subject{color:var(--ink);word-break:break-word;font:700 13px/1.45 Pretendard}.gitlog-meta{color:var(--ink-mute);flex-wrap:wrap;gap:4px 12px;margin-top:3px;font:400 11px ui-monospace,monospace;display:flex}.gitlog-hash{color:var(--accent);font-weight:700}@media (width<=760px){.app{flex-direction:column;min-height:100dvh}.side{border-right:0;border-bottom:2px solid var(--border-strong);z-index:20;-webkit-overflow-scrolling:touch;flex-direction:column;flex:none;width:100%;padding:0;position:sticky;top:0}.brand,.navi{display:none}.tabs2{display:block}.tabrow{-webkit-overflow-scrolling:touch;gap:2px;padding:4px 8px;display:flex;overflow:auto hidden}.tabrow.subrow{border-top:1.5px solid var(--line);background:#fff;padding:3px 8px}.tab{white-space:nowrap;color:#3a372f;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;align-items:center;gap:7px;padding:8px 10px;font:700 13px Pretendard;display:flex}.tab .ic{border:1.5px solid var(--ink-soft);border-radius:4px;flex:none;width:14px;height:14px}.tab.on{color:var(--ink);border-bottom-color:var(--accent)}.tab.on .ic{border-color:var(--accent);background:var(--accent-soft)}.tab.has-sub:after{content:"▾";color:var(--ink-mute);font-size:10px}.tab.sub{border:1.5px solid #0000;border-radius:14px;padding:6px 12px;font-size:12.5px}.tab.sub .ic{display:none}.tab.sub.on{background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}.tab.dis{color:#c2bcae;cursor:not-allowed}.head{flex-wrap:wrap;gap:8px;padding:10px 12px}.h1{font-size:17px}.headright{width:100%;margin-left:0}.headtools{flex-wrap:wrap;gap:8px}.body{padding:12px 12px 24px}.list{max-width:none}.item{gap:8px;padding:9px 10px}.item .time{width:auto;min-width:44px;font-size:14px}.overlay{padding:12px}.modal{max-width:none;max-height:88dvh}.notecol{max-width:none}table.tbl{white-space:nowrap;display:block;overflow-x:auto}}.vtext{background:var(--card);white-space:pre-wrap;border:2px solid #c2bcae;border-radius:10px;padding:12px 14px;font:500 13px/1.7 Pretendard}.vtext .vline{scroll-margin:40px}.vtext .now{color:var(--accent);font-weight:800}.vtext .nowtag{background:var(--accent);color:#fff;vertical-align:2px;border-radius:20px;margin-left:8px;padding:1px 7px;font:700 10px Pretendard}@media (width>=1024px) and (hover:hover) and (pointer:fine){#root{zoom:1.08}#root .app{min-height:92.5926vh}#root .modal{max-height:83.3333vh}}.tsub.clickable{cursor:pointer}.badge-life{white-space:nowrap;border:1.5px solid;border-radius:5px;padding:0 5px;font:700 10.5px Pretendard}.badge-life.live{color:#3f6a48;background:#e3efe5;border-color:#6f9877}.badge-life.ending,.badge-life.upcoming{color:#7a5c10;background:#fbf1d3;border-color:#c9a23a}.badge-life.done{color:#2f5679;background:#e3edf6;border-color:#4f7ea8}.badge-life.over{border-color:var(--ink-faint);color:var(--ink-mute);background:#eee}.badge-life.stopped{border-color:var(--accent);color:var(--accent);background:#f1e4e0}.webgate-center{background:var(--bg,#f6f5f2);min-height:100vh;color:var(--ink,#222);justify-content:center;align-items:center;padding:16px;display:flex}.webgate-login{background:var(--card,#fff);border:1px solid var(--line,#ddd);border-radius:12px;flex-direction:column;gap:10px;width:100%;max-width:340px;padding:20px;display:flex}.webgate-login h1{margin:0;font-size:18px}.webgate-login p{color:var(--ink-mute,#666);margin:0;font-size:13px}.webgate-login input,.webgate-login button{font:inherit;border:1px solid var(--line,#ccc);border-radius:8px;padding:10px 12px}.webgate-login button{background:var(--pri,#2f6fed);color:#fff;cursor:pointer;border:none}.webgate-login button:disabled{opacity:.5;cursor:default}.webgate-login .webgate-err{color:#c0392b}.webgate-band{z-index:50;color:#6b4e00;background:#fff4d6;border-bottom:1px solid #f0d58a;justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex;position:sticky;top:0}.webgate-band.ok{color:#1f5c2e;background:#e7f4ea;border-bottom-color:#b9dcc2}.webgate-band button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:6px;flex:none;padding:2px 8px;font-size:12px}.webgate-actions{flex:none;gap:6px;display:flex}.webgate-band button:disabled{opacity:.5;cursor:default}.webgate-toast{z-index:60;color:#fff;background:#3a2a10;border-radius:10px;max-width:min(92vw,520px);padding:10px 14px;font-size:13px;position:fixed;top:48px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0003}
