:root{--bg:#f6f7f4;--bg-panel:#fbfcf8;--surface:#fff;--text:#17211c;--text-dim:#637168;--text-faint:#8e988f;--border:#d7ded8;--ink:#17211c;--ink-hover:#2a352e;--accent:#0f6b4f;--accent-soft:#dff0e8;--accent-hover:#0c5640;--blue:#235c9d;--blue-soft:#e6f0fb;--gold:#9a6a17;--gold-soft:#f7ecd1;--danger:#9b3731;--danger-soft:#f8e6e3;--ok:var(--accent);--ok-soft:var(--accent-soft);--doing:var(--gold);--doing-soft:var(--gold-soft);--todo:var(--text-faint);--todo-soft:#eef0eb;--radius:8px;--shadow:0 16px 44px #17211c14;--sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;font-family:var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{color:var(--text);background:linear-gradient(90deg, #0f6b4f0b 1px, transparent 1px), linear-gradient(180deg, #0f6b4f0b 1px, transparent 1px), var(--bg);background-size:30px 30px;margin:0;line-height:1.6}#root{min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}::selection{background:var(--accent-soft)}.layout{min-height:100vh;display:flex}.sidebar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-right:1px solid var(--border);background:#f6f7f4f0;flex-direction:column;flex-shrink:0;gap:4px;width:220px;padding:22px 18px;display:flex}.brand{border-bottom:1px solid var(--border);color:var(--text);align-items:center;gap:10px;margin-bottom:16px;padding-bottom:18px;display:flex}.brand svg{width:24px;height:24px;color:var(--accent);flex-shrink:0}.brand span{font-size:15px;font-weight:800;line-height:1.3}.sidebar a{color:var(--text-dim);border-radius:6px;padding:8px 10px;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s,background .15s}.sidebar a.active{color:var(--accent);background:var(--accent-soft);font-weight:800}.sidebar a:hover:not(.active){color:var(--accent);background:var(--accent-soft)}.sidebar .logout{color:var(--text-faint);text-align:left;background:0 0;border:none;margin-top:auto;padding:8px 10px;font-size:12.5px}.sidebar .logout:hover{color:var(--danger)}.content{flex:1;max-width:920px;padding:44px 52px 100px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:24px;padding:28px}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:800;display:block}.lede{color:var(--text-dim);margin:0 0 32px;font-size:13.5px}h2{letter-spacing:-.01em;color:var(--text);margin:0 0 10px;font-size:24px;font-weight:800;line-height:1.3}label{color:var(--text-dim);margin-top:24px;margin-bottom:8px;font-size:12.5px;font-weight:700;display:block}label:first-child{margin-top:0}input,textarea,select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;height:38px;color:var(--text);padding:0 12px;font-family:inherit;font-size:14.5px;transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:focus,textarea:focus,select:focus{outline:3px solid var(--accent-soft);border-color:var(--accent)}textarea{resize:vertical;background:var(--bg-panel);height:auto;min-height:90px;padding:12px;line-height:1.6}select{padding:0 8px}.row{gap:16px;display:flex}.row>*{flex:1}.btn{border-radius:var(--radius);border:1px solid var(--ink);background:var(--ink);color:#fff;align-items:center;gap:6px;height:40px;padding:0 20px;font-size:13.5px;font-weight:800;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:hover{background:var(--ink-hover);border-color:var(--ink-hover)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn.secondary:hover{border-color:var(--text);background:var(--surface)}.btn.danger{background:var(--surface);color:var(--danger);border-color:var(--danger)}.btn.danger:hover{background:var(--danger-soft)}.actions{gap:10px;margin-top:28px;display:flex}.list-item{border-bottom:1px solid var(--border);padding:16px 0}.list-item:last-child{border-bottom:none}.list-item strong{font-size:15px}.muted{color:var(--text-dim);font-size:13px}.badge{background:var(--todo-soft);min-height:24px;color:var(--todo);border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:12px;font-weight:800;display:inline-flex}.badge.done{background:var(--ok-soft);color:var(--ok)}.badge.doing{background:var(--doing-soft);color:var(--doing)}.badge.todo{background:var(--todo-soft);color:var(--text-dim)}.error{color:var(--danger);margin-top:10px;font-size:13px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:11px 10px}th:first-child,td:first-child{padding-left:0}th{color:var(--text-faint);letter-spacing:.03em;text-transform:uppercase;font-size:12px;font-weight:700}tbody tr:hover{background:var(--bg-panel)}.filters{gap:14px;margin-bottom:20px;display:flex}.filters select,.filters input{width:auto;min-width:140px}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:440px;box-shadow:var(--shadow);padding:48px}.login-box .brand{border-bottom:none;margin-bottom:36px;padding-bottom:0}.item-row{align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.item-row>*{flex:1}.item-row button{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:38px;color:var(--text-dim);flex:none;padding:0 12px;font-size:12.5px}.item-row button:hover{border-color:var(--danger);color:var(--danger)}.empty-state{color:var(--text-faint);flex-direction:column;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.empty-state svg{width:36px;height:36px;color:var(--accent);opacity:.7}
