:root{--ink:#514d45;--ink-soft:#6a655a;--ink-mute:#8a857a;--ink-faint:#a29b8b;--line:#b3ab9b;--bg:#e7e3da;--panel:#f5f1ea;--panel-alt:#efe9df;--surface:#faf7f1;--card:#f7f3ec;--accent:#bb6b52;--accent-soft:#ffe3db;--gold:#e3c069;--rep:#8a97a1;--fix:#85789f;--onc:#d4772f;--border-strong:#514d45;--radius:10px;--bw-1:1px;--bw-2:2px;--line-card:var(--ink)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-family:Pretendard,Noto Sans KR,system-ui,sans-serif;font-weight:500}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}.app{max-width:640px;min-height:100vh;padding-bottom:calc(32px + env(safe-area-inset-bottom));margin:0 auto}.top{z-index:5;background:var(--bg);justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;margin:0;font-size:20px;font-weight:800}.mode-toggle{background:var(--panel-alt);border:var(--bw-2) solid var(--line);border-radius:999px;padding:3px;display:flex}.mode-toggle button{color:var(--ink-mute);background:0 0;border:0;border-radius:999px;padding:6px 16px;font-size:14px;font-weight:700}.mode-toggle button.on{background:var(--ink);color:var(--surface)}.mode-edit .mode-toggle button.on{background:var(--accent)}.resets{scrollbar-width:none;gap:6px;padding:0 16px 6px;display:flex;overflow-x:auto}.reset-chip{background:var(--panel);border:var(--bw-1) solid var(--line);color:var(--ink-soft);border-radius:999px;flex:none;align-items:baseline;gap:6px;padding:5px 10px;font-size:13px;display:inline-flex}.reset-label{color:var(--ink-mute);font-size:12px;font-weight:700}.body{padding:4px 16px 0}.edit-bar{flex-wrap:wrap;gap:8px;margin:8px 0 4px;display:flex}.group-title{letter-spacing:.04em;color:var(--ink-mute);margin:22px 0 8px;font-size:13px;font-weight:800}.task-section,.event-card{border-radius:var(--radius);background:var(--panel);border:var(--bw-2) solid var(--line-card);margin-bottom:10px;padding:12px}.section-head{justify-content:space-between;align-items:center;margin:0 2px 8px;display:flex}.section-head h3{margin:0;font-size:15px;font-weight:700}.progress{color:var(--ink-mute);font-size:13px}.progress.all{color:var(--accent);font-weight:700}.rows{flex-direction:column;gap:6px;display:flex}.row{border:var(--bw-1) solid var(--line);background:var(--surface);text-align:left;border-radius:8px;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 10px;display:flex}.row.done{opacity:.5}.row.done .row-name{text-decoration:line-through}.row-main{flex-direction:column;flex:1;min-width:0;display:flex}.row-name{font-size:15px}.row-memo{color:var(--ink-mute);font-size:12px}.check{border:2px solid var(--ink-faint);width:24px;height:24px;color:var(--surface);border-radius:6px;flex:none;place-items:center;font-size:14px;font-weight:800;display:grid}.check.on{background:var(--accent);border-color:var(--accent)}.tags{flex:none;gap:4px;display:flex}.tag{border:1px solid;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700}.tag.scope{color:var(--amber,#c0904f)}.tag.kind.daily{color:var(--rep)}.tag.kind.weekly_thu,.tag.kind.weekly_mon{color:var(--fix)}.tag.kind.monthly,.tag.kind.ev{color:var(--onc)}.edit-mark{color:var(--ink-faint);font-size:18px}.stepper{flex:none;align-items:center;gap:4px;display:inline-flex}.stepper button{border:var(--bw-1) solid var(--line);background:var(--panel-alt);border-radius:8px;width:32px;height:32px;font-size:16px;font-weight:700}.count{text-align:center;min-width:44px;font-size:14px;font-weight:700}.event-card.urgent{border-color:var(--accent);background:var(--accent-soft)}.event-card.upcoming,.event-card.ended{background:var(--panel-alt)}.event-card.ended{opacity:.6}.event-head{justify-content:space-between;align-items:flex-start;gap:8px;margin:0 2px 8px;display:flex}.event-title{flex-direction:column;gap:2px;min-width:0;display:flex}.event-title h3,.link-btn{margin:0;font-size:15px;font-weight:700}.link-btn{text-align:left;background:0 0;border:0;padding:0}.event-range{color:var(--ink-mute);font-size:12px}.event-range a{color:var(--accent)}.event-memo{color:var(--ink-soft);margin:-2px 2px 8px;font-size:13px}.event-progress{color:var(--ink-soft);margin:-2px 2px 8px;font-size:12px;font-weight:700}.badge{background:var(--ink);color:var(--surface);border-radius:999px;flex:none;padding:3px 9px;font-size:12px;font-weight:800}.badge.hot{background:var(--accent)}.add-btn{border:var(--bw-2) dashed var(--line);width:100%;color:var(--ink-mute);background:0 0;border-radius:8px;margin-top:8px;padding:10px;font-weight:700}.empty{color:var(--ink-mute);margin:4px 2px 12px;font-size:14px}.empty.small{margin:0;font-size:13px}.primary-btn,.ghost-btn,.danger-btn{border-radius:8px;padding:9px 16px;font-size:14px;font-weight:700}.primary-btn{background:var(--ink);color:var(--surface);border:0}.primary-btn.alt{background:var(--onc)}.ghost-btn{border:var(--bw-2) solid var(--line);background:var(--surface)}.danger-btn{color:#b4473a;background:0 0;border:0;padding-left:4px}.icon-btn{color:var(--ink-mute);background:0 0;border:0;padding:4px 8px;font-size:18px}.sheet-backdrop{z-index:20;background:#28241e59;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:640px;max-height:88vh;padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0;flex-direction:column;display:flex}.sheet-head{justify-content:space-between;align-items:center;padding:14px 16px 6px;display:flex}.sheet-head h2{margin:0;font-size:17px;font-weight:800}.sheet-body{flex-direction:column;gap:14px;padding:6px 16px 12px;display:flex;overflow-y:auto}.sheet-foot{border-top:var(--bw-1) solid var(--line);align-items:center;gap:8px;padding:10px 16px 14px;display:flex}.spacer{flex:1}.field{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.field>span{color:var(--ink-soft);font-size:13px;font-weight:700}.field input{border:var(--bw-2) solid var(--line);background:#fff;border-radius:8px;width:100%;padding:10px 12px;font-size:15px}.field input:focus{border-color:var(--ink);outline:none}.field-row{gap:10px;display:flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:var(--bw-2) solid var(--line);background:var(--panel);color:var(--ink-soft);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:700}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--surface)}.warn{color:#b4473a;margin:-6px 0 0;font-size:13px}@media (width>=720px){.sheet-backdrop{align-items:center}.sheet{border-radius:16px;max-width:480px}}.brand{align-items:center;gap:8px;display:flex}.sync{background:var(--panel-alt);letter-spacing:0;color:var(--ink-mute);border:0;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.sync-error{background:var(--accent-soft);color:#b4473a}.notice{border-radius:var(--radius);background:var(--panel);border:var(--bw-2) solid var(--line);align-items:center;gap:10px;margin:8px 0;padding:10px 12px;font-size:14px;display:flex}.notice span{flex:1}.notice.error{border-color:var(--accent);background:var(--accent-soft);color:#b4473a}.logout{margin-left:auto}.login{border-radius:var(--radius);background:var(--panel);border:var(--bw-2) solid var(--line);flex-direction:column;gap:14px;margin:24px 16px;padding:18px 16px;display:flex}.tabs{background:var(--panel-alt);border-radius:999px;gap:4px;margin:0 16px 8px;padding:4px;display:flex}.tabs button{color:var(--ink-mute);background:0 0;border:0;border-radius:999px;flex:1;padding:8px 0;font-weight:700}.tabs button.on{background:var(--ink);color:var(--surface)}.tags.wrap{flex-wrap:wrap}.event-tags{margin:-2px 2px 8px}.event-tags .tag{color:var(--ink-soft)}.tag{white-space:nowrap}.tag.inline{vertical-align:1px;margin-left:6px;display:inline-block}.event-memo.pre{white-space:pre-line}.badge.soft{background:var(--panel-alt);color:var(--ink-soft);border:var(--bw-1) solid var(--line)}.sub-title{color:var(--ink-mute);margin:12px 2px 6px;font-size:12px;font-weight:800}.world-group:first-of-type .sub-title{margin-top:4px}.char-block .rows.nested{border-left:var(--bw-2) solid var(--line);margin:6px 0 4px 12px;padding-left:10px}.row.participant .row-main{gap:2px}.bar{background:var(--panel-alt);border-radius:999px;height:5px;margin-top:4px;display:block;overflow:hidden}.bar span{border-radius:inherit;background:var(--fix);height:100%;display:block}.bar.full span{background:var(--accent)}.levels{color:var(--ink-mute);flex:none;align-items:baseline;gap:4px;font-size:13px;display:flex}.lv-now{color:var(--ink);font-size:15px;font-weight:800}.lv-goal.on{color:var(--accent);font-weight:800}.hint{color:var(--ink-mute);margin:0;font-size:12px}.check-field{color:var(--ink-soft);align-items:center;gap:8px;font-size:14px;display:flex}.check-field input{width:18px;height:18px;accent-color:var(--ink)}.field textarea{border:var(--bw-2) solid var(--line);width:100%;font:inherit;color:inherit;resize:vertical;background:#fff;border-radius:8px;padding:10px 12px;font-size:15px}.field textarea:focus{border-color:var(--ink);outline:none}.inline-add{gap:6px;display:flex}.inline-add input{flex:1}.pick-list{flex-direction:column;gap:4px;max-height:220px;padding:2px;display:flex;overflow-y:auto}.pick-item{border:var(--bw-2) solid var(--line);background:var(--surface);text-align:left;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.pick-item.on{border-color:var(--ink);background:var(--panel)}.pick-name{font-size:15px;font-weight:700}.pick-meta{color:var(--ink-mute);font-size:12px}.import-bar{justify-content:space-between;align-items:center;gap:10px;margin:4px 0 12px;display:flex}.api-account{border:var(--bw-2) solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.api-head{flex-direction:column;gap:2px;display:flex}.import-summary{background:var(--panel-alt);border-radius:8px;flex-wrap:wrap;gap:12px;padding:10px 12px;font-size:14px;display:flex}.import-summary b{color:var(--accent)}.import-bar button{white-space:nowrap;flex:none}
