:root{--navy:#0b1426;--navy-soft:#16233c;--gold:#c9a35e;--gold-soft:#e2cb9b;--cream:#f5f1e8;--rose:#b85a4c;--ink:#0b1426;--ink-2:#4a5468;--ink-3:#7d879b;--line:#e2dccf;--line-soft:#eee8db;--card:#fffdf8;--ok:#3f7d5c;--warn:#b8873f;--bad:#b85a4c;--idle:#8b93a3;--r:12px;--shadow:0 1px 2px #0b14260d, 0 8px 24px -12px #0b14262e;--mono:ui-monospace, "SF Mono", Menlo, monospace;--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--cream);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.55}h1,h2,h3{letter-spacing:-.015em;margin:0;font-weight:600;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.15rem}h3{font-size:.95rem}p{margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}.shell{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--navy);color:var(--cream);z-index:20;border-bottom:1px solid #c9a35e40;padding:0 20px;position:sticky;top:0}.topbar-inner{align-items:center;gap:20px;max-width:1120px;min-height:58px;margin:0 auto;display:flex}.brand{letter-spacing:.02em;white-space:nowrap;align-items:baseline;gap:9px;font-weight:600;text-decoration:none;display:flex}.brand .dot{background:var(--gold);border-radius:50%;width:7px;height:7px}.brand small{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-size:.68rem;font-weight:500}.nav{gap:2px;margin-left:auto;display:flex;overflow-x:auto}.nav a{color:#f5f1e8a8;white-space:nowrap;border-radius:8px;padding:7px 12px;font-size:.87rem;text-decoration:none;transition:all .12s}.nav a:hover{color:var(--cream);background:#ffffff0f}.nav a.active{color:var(--navy);background:var(--gold);font-weight:500}.who{white-space:nowrap;border-left:1px solid #f5f1e826;align-items:center;gap:10px;padding-left:16px;display:flex}.who .role{text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-size:.64rem;font-weight:600}.who .email{color:#f5f1e899;font-size:.78rem}.page{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:32px 20px 80px}.page-head{margin-bottom:26px}.page-head .sub{color:var(--ink-2);margin-top:5px;font-size:.92rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px 20px}.card-title{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);margin-bottom:12px;font-size:.68rem;font-weight:600}.grid{gap:16px;display:grid}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.stack{flex-direction:column;gap:16px;display:flex}.row{align-items:center;gap:10px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}.count{text-align:center;padding:20px 14px}.count .n{font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:2.5rem;font-weight:600;line-height:1}.count .lbl{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);margin-top:8px;font-size:.7rem;font-weight:600}.count .when{color:var(--ink-3);margin-top:3px;font-size:.78rem}.count.rose .n{color:var(--rose)}.count.gold .n{color:var(--gold)}.count.past .n{color:var(--ink-3);font-size:1.5rem}.goal{background:var(--navy);color:var(--cream);border-color:var(--navy)}.goal .card-title{color:var(--gold)}.goal .big{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:3.6rem;font-weight:600;line-height:1}.goal .of{color:#f5f1e880;font-size:1.15rem;font-weight:400}.goal .of b{color:var(--rose);font-weight:600}.goal .meta{color:#f5f1e89e;margin-top:12px;font-size:.86rem}.goal .meta b{color:var(--cream);font-weight:600}.bar{background:#f5f1e821;border-radius:99px;height:6px;margin-top:18px;overflow:hidden}.bar>i{background:var(--gold);border-radius:99px;height:100%;transition:width .5s;display:block}.chip{letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;border-radius:99px;align-items:center;gap:6px;padding:3px 9px;font-size:.72rem;font-weight:600;display:inline-flex}.chip .led{background:currentColor;border-radius:50%;width:6px;height:6px}.chip.ok{color:var(--ok);background:#eaf3ee;border-color:#cfe3d7}.chip.warn{color:var(--warn);background:#f8f1e2;border-color:#ecdcbc}.chip.bad{color:var(--bad);background:#f9eae7;border-color:#efd0ca}.chip.idle{color:var(--idle);background:#f1f2f4;border-color:#e0e2e7}.chip.gold{color:#7a6027;background:#f6efdd;border-color:#e6d4a8}label.f{display:block}label.f .cap{color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:.72rem;font-weight:600;display:block}input[type=text],input[type=email],input[type=number],input[type=date],select,textarea{border:1px solid var(--line);background:#fff;border-radius:9px;outline:none;width:100%;padding:9px 11px;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #c9a35e29}textarea{resize:vertical;min-height:78px}select{cursor:pointer}.btn{border:1px solid var(--navy);background:var(--navy);color:var(--cream);cursor:pointer;white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-weight:500;text-decoration:none;transition:all .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--navy-soft)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--navy);font-weight:600}.btn.gold:hover:not(:disabled){background:var(--gold-soft)}.btn.ghost{color:var(--ink);border-color:var(--line);background:0 0}.btn.ghost:hover:not(:disabled){border-color:var(--ink-3);background:#fff}.btn.sm{border-radius:7px;padding:5px 11px;font-size:.83rem}.btn.block{width:100%}.btn.lg{padding:13px 20px;font-size:1rem}.tbl{border-collapse:collapse;width:100%}.tbl th{text-align:left;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);border-bottom:1px solid var(--line);padding:0 12px 9px;font-size:.68rem;font-weight:600}.tbl td{border-bottom:1px solid var(--line-soft);vertical-align:top;padding:11px 12px}.tbl tr:last-child td{border-bottom:0}.tbl-wrap{overflow-x:auto}.item{border:1px solid var(--line);background:var(--card);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;border-radius:10px;grid-template-columns:92px 1fr auto;align-items:start;gap:14px;padding:14px 16px;transition:border-color .12s,box-shadow .12s;display:grid}.item:hover{border-color:var(--gold);box-shadow:var(--shadow)}.item.today{border-left:3px solid var(--rose);background:#fffaf3}.item .d{color:var(--ink-2);font-size:.8rem;font-weight:600}.item .d .dow{color:var(--ink-3);font-size:.72rem;font-weight:400;display:block}.item .t{font-size:.93rem}.item .m{color:var(--ink-2);margin-top:5px;font-size:.8rem}.item .m b{color:var(--ink);font-weight:600}.item .edited{color:var(--gold);margin-top:6px;font-size:.7rem;font-weight:500}.detail{border:1px solid var(--gold);background:#fffdf6;border-top:0;border-radius:0 0 10px 10px;padding:16px}.detail dl{grid-template-columns:130px 1fr;gap:8px 16px;margin:0;display:grid}.detail dt{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);padding-top:2px;font-size:.7rem;font-weight:600}.detail dd{margin:0;font-size:.9rem}.dep{border-bottom:1px solid var(--line-soft);align-items:center;gap:11px;padding:10px 0;display:flex}.dep:last-child{border-bottom:0}.dep .led{border-radius:50%;flex-shrink:0;width:9px;height:9px}.dep .nm{font-size:.89rem;font-weight:500}.dep .due{color:var(--ink-3);font-size:.76rem}.chan{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:14px 16px}.chan .n{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.6rem;font-weight:600}.chan .c{color:var(--ink-2);margin-top:2px;font-size:.78rem}.drop{border:2px dashed var(--line);border-radius:var(--r);text-align:center;cursor:pointer;width:100%;font:inherit;color:inherit;background:#fffdf8;padding:34px 20px;transition:all .14s}.drop:hover,.drop.over{border-color:var(--gold);background:#fffaef}.drop.done{border-style:solid;border-color:var(--ok);cursor:default;background:#f4f9f6}.drop .big{margin-bottom:4px;font-weight:600}.drop .hint{color:var(--ink-3);font-size:.83rem}.prog{background:var(--line);border-radius:99px;height:4px;margin-top:14px;overflow:hidden}.prog>i{background:var(--gold);height:100%;transition:width .2s;display:block}.auth-wrap{background:var(--navy);place-items:center;min-height:100vh;padding:24px;display:grid}.auth{background:var(--card);border-radius:16px;width:100%;max-width:400px;padding:36px 32px;box-shadow:0 24px 60px -20px #00000080}.auth .mark{text-align:center;margin-bottom:26px}.auth .mark .k{letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-size:.66rem;font-weight:600}.auth .mark h1{margin-top:6px;font-size:1.7rem}.auth .mark p{color:var(--ink-2);margin-top:8px;font-size:.88rem}.note{border-radius:9px;padding:12px 14px;font-size:.86rem}.note.ok{color:#2f5f46;background:#eaf3ee;border:1px solid #cfe3d7}.note.bad{color:#8f3f33;background:#f9eae7;border:1px solid #efd0ca}.note.info{color:#6b551f;background:#f6efdd;border:1px solid #e6d4a8}.muted{color:var(--ink-3)}.mono{font-family:var(--mono);font-size:.85em}.empty{text-align:center;color:var(--ink-3);padding:48px 20px}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:20px;display:flex;overflow-x:auto}.tabs button{cursor:pointer;color:var(--ink-3);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 14px;font-size:.9rem;font-weight:500}.tabs button.on{color:var(--ink);border-bottom-color:var(--gold)}.skel{background:linear-gradient(90deg,#eee8db 25%,#f5f1e8 50%,#eee8db 75%) 0 0/200% 100%;border-radius:8px;animation:1.3s infinite sh}@keyframes sh{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=900px){.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:1fr}}@media (width<=680px){.page{padding:20px 14px 64px}.topbar{padding:0 14px}.topbar-inner{flex-wrap:wrap;gap:10px;min-height:0;padding:10px 0}.nav{order:3;width:100%;margin-left:0;padding-bottom:2px}.who{border-left:0;margin-left:auto;padding-left:0}.who .email{display:none}.g2,.g4{grid-template-columns:1fr}.goal .big{font-size:2.9rem}.item{grid-template-columns:74px 1fr}.item .chip-cell{grid-column:1/-1}.detail dl{grid-template-columns:1fr;gap:3px 0}.detail dd{margin-bottom:10px}.auth{padding:28px 22px}}@media print{.topbar,.no-print{display:none!important}body{background:#fff}.card{break-inside:avoid;box-shadow:none}}
