:root{--radius: 16px;--radius-sm: 10px;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--font-head: var(--sans);--ground: #0d1017;--surface: #141922;--surface-2: #161c26;--card: #1d2531;--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .16);--ink: #eef2f8;--ink-soft: #c4cdda;--muted: #93a0b3;--faint: #6a7686;--accent: #6d8bff;--accent-ink: #fff;--accent-soft: rgba(109, 139, 255, .16);--todo: #f0b34a;--doing: #6d8bff;--done: #37d69f;--danger: #f2555a;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 32px rgba(0, 0, 0, .4)}:root[data-app-theme=frost]{--ground: #eef1f6;--surface: #ffffff;--surface-2: #ffffff;--card: #ffffff;--border: rgba(15, 23, 42, .1);--border-strong: rgba(15, 23, 42, .18);--ink: #0f172a;--ink-soft: #334155;--muted: #5b6472;--faint: #94a3b8;--accent: #2f5fe0;--accent-ink: #fff;--accent-soft: rgba(47, 95, 224, .12);--todo: #d97706;--doing: #2f5fe0;--done: #0a9d5f;--danger: #dc2626;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 12px 32px rgba(15, 23, 42, .1)}:root[data-app-theme=meridian]{--font-head: var(--mono);--ground: #131110;--surface: #1c1917;--surface-2: #201d1a;--card: #28241f;--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .16);--ink: #f6f1ea;--ink-soft: #d8cfc2;--muted: #b0a495;--faint: #7d7367;--accent: #ff8a5c;--accent-ink: #1a1410;--accent-soft: rgba(255, 138, 92, .16);--todo: #ffb347;--doing: #ff8a5c;--done: #4fd6b0;--danger: #f2555a;--shadow: 0 1px 2px rgba(0, 0, 0, .45), 0 12px 32px rgba(0, 0, 0, .45)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}.splash{height:100%;display:grid;place-items:center;background:var(--ground)}.logo-mark{font-size:56px}.logo-mark.sm{font-size:22px}.auth{min-height:100%;display:grid;grid-template-columns:3fr 4fr}.auth-brand{background:#000;color:#fff;padding:52px 44px;display:flex;flex-direction:column;gap:10px}.auth-brand h1{margin:8px 0 0;font-size:30px;letter-spacing:-.02em}.brand-tag{color:#ffffff8c;margin:0 0 28px;font-size:15px}.brand-features{list-style:none;padding:0;margin:auto 0 0;display:grid;gap:10px}.brand-features li{color:#ffffff80;font-size:13px}.auth-card{background:var(--surface);display:grid;place-items:center;padding:24px;position:relative}.lang-row{position:absolute;top:16px;right:20px;display:flex;gap:6px}.lang-btn{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.lang-btn.active{color:var(--ink);border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:var(--accent-soft)}.auth-inner{width:100%;max-width:360px}.auth-form{display:flex;flex-direction:column}.auth-form h2{margin:0;font-size:26px;letter-spacing:-.02em}.auth-form .sub{color:var(--muted);margin:6px 0 22px;font-size:14px}.auth-form label{font-size:12px;color:var(--muted);margin:12px 0 5px;font-weight:500}input,textarea,select{background:var(--surface-2);border:1px solid var(--border);color:var(--ink);border-radius:var(--radius-sm);padding:11px 13px;font-size:14px;width:100%;transition:border-color .15s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}.primary{background:var(--accent);color:var(--accent-ink);border:none;border-radius:var(--radius-sm);padding:12px 18px;font-size:15px;font-weight:600;margin-top:20px;transition:filter .15s}.primary:hover{filter:brightness(1.08)}.primary:disabled{opacity:.6}.ghost{background:transparent;border:1px solid var(--border-strong);color:var(--ink);border-radius:var(--radius-sm);padding:8px 14px;font-size:13px;font-weight:500}.ghost:hover{background:var(--surface-2)}.danger{background:transparent;border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius-sm);padding:8px 14px;font-size:13px}.link{background:none;border:none;color:var(--accent);font-size:13px;padding:0}.link:hover{text-decoration:underline}.switch{display:flex;flex-direction:column;gap:12px;align-items:center;margin-top:20px;font-size:13px;color:var(--muted);text-align:center}.err{color:var(--danger);font-size:13px;margin:14px 0 0}.ok{color:var(--done);font-size:13px;margin:14px 0 0}.hint{color:var(--muted);font-style:italic;font-size:12px;margin:8px 0 0}.app-shell{height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--surface);padding-top:max(12px,env(safe-area-inset-top))}.brand-mini{display:flex;align-items:center;gap:9px;font-size:15px;letter-spacing:-.01em}.topbar-right{display:flex;align-items:center;gap:10px}.who{color:var(--muted);font-size:13px}.banner{background:var(--danger);color:#fff;padding:9px 16px;font-size:13px;text-align:center;cursor:pointer}.banner.ok-banner{background:var(--done)}.banner.warn-banner{background:var(--todo);color:#1a1200;cursor:default}.ai-help{padding:0 22px 22px}.ai-help .ai-opt{font-weight:600;font-size:13px;margin:16px 0 6px}.ai-help pre{margin:0;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;overflow-x:auto}.ai-help code{font-family:var(--mono);font-size:12px;color:var(--ink-soft);white-space:pre}.ok-tag{font-size:11px;color:var(--done);font-weight:600}.board-scroll{flex:1;overflow:auto;padding:20px}.board-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:16px;max-width:1200px;margin:0 auto;min-height:100%}.board-col{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column}.col-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--border)}.col-title{font-size:13px;font-weight:600;color:var(--accent)}.col-head{--accent: var(--doing)}.col-title{color:var(--accent)}.col-count{font-size:11px;color:var(--faint);background:var(--ground);border-radius:999px;padding:2px 9px}.col-body{padding:12px;display:flex;flex-direction:column;gap:9px;overflow-y:auto;flex:1}.card{--c: var(--doing);position:relative;overflow:hidden;background:linear-gradient(152deg,color-mix(in srgb,var(--c) 26%,var(--card)),color-mix(in srgb,var(--c) 7%,var(--card)) 78%);border:1px solid color-mix(in srgb,var(--c) 42%,transparent);border-radius:var(--radius-sm);padding:12px 13px;box-shadow:0 1px 2px #00000038;transition:transform .16s ease,box-shadow .2s ease,border-color .2s ease;cursor:grab}.card:before{content:"";position:absolute;inset:0 0 auto 0;height:46%;background:linear-gradient(to bottom,color-mix(in srgb,var(--c) 16%,transparent),transparent);pointer-events:none}.card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--c) 65%,transparent);box-shadow:0 10px 26px color-mix(in srgb,var(--c) 28%,transparent)}.card:active{cursor:grabbing}.card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-ToDo{--c: var(--todo)}.card-Doing{--c: var(--doing)}.card-Done{--c: var(--done)}.card-text{margin:0;font-size:14px;font-weight:600;line-height:1.35;position:relative}.card-meta{display:flex;align-items:center;gap:6px;margin-top:9px;flex-wrap:wrap}.prio{font-size:10px;font-weight:600;padding:2px 8px;border-radius:999px}.prio-high{background:#e5484d29;color:var(--danger)}.prio-medium{background:var(--accent-soft);color:var(--accent)}.prio-low{background:#3ecf8e29;color:var(--done)}.chip{font-size:10px;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.due{font-size:10px;color:var(--muted)}.shared{font-size:11px;margin-left:auto}.add-inline{background:none;border:1px dashed var(--border-strong);color:var(--muted);border-radius:var(--radius-sm);padding:9px;font-size:13px}.add-inline:hover{color:var(--ink);border-color:var(--accent)}.bg-picker{position:relative}.bg-panel{position:absolute;right:0;top:calc(100% + 10px);width:232px;z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;box-shadow:var(--shadow)}.bg-panel .lbl{margin:0 0 10px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.bg-swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.bg-swatch{height:36px;border-radius:9px;border:2px solid transparent;padding:0;cursor:pointer;transition:transform .12s}.bg-swatch:hover{transform:scale(1.06)}.bg-swatch.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.bg-custom{display:flex;align-items:center;justify-content:space-between;margin-top:14px;font-size:12px;color:var(--ink-soft)}.bg-custom input[type=color]{width:44px;height:30px;padding:0;border:1px solid var(--border);border-radius:7px;background:none;cursor:pointer}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;padding:16px;z-index:50}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:460px;box-shadow:var(--shadow);max-height:92vh;overflow-y:auto}.modal form{padding:22px;display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.modal-head h3{margin:0;font-size:19px;letter-spacing:-.01em}.icon-btn{background:none;border:none;color:var(--muted);font-size:16px}.modal label{font-size:12px;color:var(--muted);margin:12px 0 5px;font-weight:500}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check{display:flex;align-items:center;gap:9px;flex-direction:row;font-size:13px;color:var(--ink-soft);margin-top:16px}.check input{width:auto}.share-box{margin-top:14px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:13px}.share-box summary{cursor:pointer;color:var(--ink-soft)}.share-list{display:flex;flex-direction:column;gap:4px;margin-top:8px}.share-list .check{margin-top:2px}.modal-foot{display:flex;align-items:center;gap:10px;margin-top:22px}.modal-foot .spacer{flex:1}.board-tabs{display:flex;align-items:center;gap:6px;padding:8px 16px;overflow-x:auto;background:var(--surface);border-bottom:1px solid var(--border)}.tab{--tab-c: var(--accent);display:inline-flex;align-items:center;gap:7px;white-space:nowrap;background:transparent;border:1px solid var(--border);color:var(--ink-soft);padding:6px 13px;border-radius:999px;font-size:13px;font-weight:500}.tab:hover{background:var(--surface-2)}.tab.active{color:var(--ink);border-color:color-mix(in srgb,var(--tab-c) 60%,transparent);background:color-mix(in srgb,var(--tab-c) 14%,transparent)}.tab-dot{width:9px;height:9px;border-radius:50%;background:var(--tab-c)}.tab.add{color:var(--muted);border-style:dashed}.board-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 0;max-width:1200px;margin:0 auto;width:100%}.board-bar-right{display:flex;gap:8px}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:3px}.seg button{background:none;border:none;color:var(--muted);padding:5px 14px;border-radius:7px;font-size:13px;font-weight:500}.seg button.on{background:var(--accent);color:var(--accent-ink)}.archive-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:8px}.archive-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 14px}.archive-main{display:flex;align-items:center;gap:10px;min-width:0}.archive-text{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-date{font-size:11px;color:var(--faint);white-space:nowrap}.archive-actions{display:flex;gap:8px;flex:none}.dot{width:10px;height:10px;border-radius:50%;flex:none}.dot-ToDo{background:var(--todo)}.dot-Doing{background:var(--doing)}.dot-Done{background:var(--done)}.empty{text-align:center;color:var(--muted);font-size:14px;padding:48px 20px}.card-archive{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:6px;border:1px solid var(--border-strong);background:color-mix(in srgb,var(--card) 70%,transparent);color:var(--muted);font-size:12px;line-height:1;opacity:0;transition:opacity .14s,color .14s}.card:hover .card-archive{opacity:1}.card-archive:hover{color:var(--done);border-color:var(--done)}.color-row{display:flex;gap:9px}.color-dot{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer}.color-dot.active{box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--ink)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:60;display:flex;justify-content:flex-end}.drawer{width:min(400px,92vw);background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;box-shadow:var(--shadow)}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border)}.drawer-head h3{margin:0;font-size:18px}.drawer-head .sub{margin:3px 0 0;font-size:12px;color:var(--muted)}.drawer-body{overflow-y:auto;padding:12px 16px}.act-row{display:flex;gap:11px;padding:10px 4px;border-bottom:1px solid var(--border)}.act-icon{font-size:15px;flex:none}.act-body p{margin:0;font-size:13px;color:var(--ink-soft)}.act-detail{color:var(--ink)}.act-time{font-size:11px;color:var(--faint)}@media (max-width: 720px){.auth{grid-template-columns:1fr}.auth-brand{display:none}.board-grid{grid-template-columns:1fr;max-width:520px}.card-archive{opacity:1}body{overflow-x:hidden}.brand-mini strong{white-space:nowrap}.topbar{flex-wrap:wrap;gap:8px;row-gap:6px}.topbar-right{flex-wrap:wrap;justify-content:flex-end;gap:6px}.who{display:none}.board-bar{flex-direction:column;align-items:stretch;gap:10px}.board-bar .seg{display:flex;overflow-x:auto}.board-bar .seg button{flex:1 1 auto;white-space:nowrap}.board-bar-right{justify-content:flex-start;flex-wrap:wrap}.filter-bar{padding-top:0}.filter-bar .search{min-width:140px}}.brand-mini strong,.col-title,.auth-brand h1,.auth-form h2,.modal-head h3,.drawer-head h3,.tab{font-family:var(--font-head)}.theme-picker{position:relative}.theme-panel{position:absolute;right:0;top:calc(100% + 10px);width:210px;z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px}.theme-opt{display:flex;align-items:center;gap:10px;background:transparent;border:1px solid transparent;color:var(--ink);border-radius:9px;padding:8px 10px;font-size:13px;text-align:left;width:100%}.theme-opt:hover{background:var(--surface-2)}.theme-opt.active{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:var(--accent-soft)}.theme-opt .chips{display:flex;gap:3px}.theme-opt .chips span{width:13px;height:13px;border-radius:4px;border:1px solid var(--border)}.theme-opt .name{flex:1;font-weight:500}.theme-opt .name small{display:block;color:var(--muted);font-size:11px;font-weight:400}.card.dragging{opacity:.4}.col-body.drop-over{background:var(--accent-soft);border-radius:var(--radius-sm)}.card-hidden{display:none}.filter-bar{display:flex;gap:10px;align-items:center;padding:12px 20px 0;max-width:1200px;margin:0 auto;width:100%;flex-wrap:wrap}.filter-bar .search{flex:1;min-width:180px}.filter-bar select{width:auto}.badge-mini{font-size:10px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:1px 7px}.avatar{margin-left:auto;width:20px;height:20px;border-radius:50%;color:#fff;font-size:9px;font-weight:700;display:grid;place-items:center}.modal-lg{max-width:560px}.modal>.modal-head{padding:20px 22px 0;margin-bottom:0}.modal-lg form{padding-top:14px}.detail-extra{border-top:1px solid var(--border);padding:6px 22px 22px}.detail-block{margin-top:18px}.detail-block h4{margin:0 0 10px;font-size:14px;display:flex;align-items:center;gap:8px}.detail-block summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--ink-soft)}.prog{font-family:var(--mono);font-size:11px;color:var(--muted);background:var(--surface-2);border-radius:999px;padding:1px 8px}.prog-bar{height:5px;background:var(--surface-2);border-radius:999px;overflow:hidden;margin-bottom:10px}.prog-bar span{display:block;height:100%;background:var(--done);transition:width .2s}.sub-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:4px}.sub-list li{display:flex;align-items:center;gap:8px}.sub-list li .check{flex:1;margin:0}.sub-list .done{text-decoration:line-through;color:var(--muted)}.inline-add{display:flex;gap:8px}.inline-add input{flex:1}.icon-btn.sm{font-size:12px;padding:2px 6px}.cmt-list{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.cmt{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 11px}.cmt-head{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.cmt-head strong{color:var(--ink)}.cmt-head .icon-btn{margin-left:auto}.cmt p{margin:5px 0 0;font-size:13px;color:var(--ink-soft);white-space:pre-wrap}.cmt-time{font-size:11px}.muted-note{color:var(--muted);font-size:13px;margin:0}.act-mini{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.act-mini li{font-size:12px;color:var(--ink-soft)}.act-mini .act-time{color:var(--faint)}.list-view{max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.list-group{display:flex;flex-direction:column;gap:6px}.list-group-h{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:0 4px 4px}.list-group-h .count{font-family:var(--mono);background:var(--surface-2);border-radius:999px;padding:1px 8px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 14px;color:var(--ink)}.list-row:hover{border-color:var(--border-strong);background:var(--surface-2)}.list-text{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-meta{display:flex;align-items:center;gap:7px;flex:none}.list-meta .avatar{margin-left:0}.cal{max-width:1000px;margin:0 auto}.cal-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.cal-title{font-size:16px;font-weight:600;text-transform:capitalize;min-width:170px;text-align:center}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-dow{margin-bottom:6px}.cal-dow-cell{text-align:center;font-size:11px;font-weight:600;color:var(--muted)}.cal-cell{min-height:92px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:3px}.cal-cell.empty-cell{background:transparent;border:none}.cal-cell.today{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.cal-day{font-size:11px;color:var(--muted);font-weight:600}.cal-cell.today .cal-day{color:var(--accent)}.cal-task{text-align:left;font-size:11px;border:none;border-radius:6px;padding:3px 6px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--doing)}.cal-ToDo{background:var(--todo)}.cal-Doing{background:var(--doing)}.cal-Done{background:var(--done)}.cal-nodate{margin-top:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cal-nodate .lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}@media (max-width: 720px){.cal-cell{min-height:64px}.cal-task{font-size:9px}}
