:root{--bg: #0a0f1c;--bg-2: #0d1424;--card: #111a2e;--card-2: #16223b;--card-hover: #18253f;--border: rgba(148, 163, 184, .12);--border-strong: rgba(148, 163, 184, .22);--text: #e9eef7;--text-2: #9fb0c9;--text-3: #64748b;--accent: #2dd4bf;--accent-soft: rgba(45, 212, 191, .14);--accent-line: rgba(45, 212, 191, .4);--accent-text: #5eead4;--accent-ink: #04201c;--warn: #f0a868;--warn-soft: rgba(240, 168, 104, .13);--under: #6b7a92;--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .3);--shadow-pop: 0 24px 60px -12px rgba(0, 0, 0, .7), 0 0 0 1px rgba(148, 163, 184, .08);--sans: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh}.app-bg{min-height:100vh;background:radial-gradient(1200px 600px at 50% -10%,rgba(45,212,191,.04),transparent 60%),var(--bg)}::selection{background:var(--accent-soft);color:var(--accent-text)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:#94a3b82e;border-radius:8px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:#94a3b84d;background-clip:content-box}.shell{max-width:1080px;margin:0 auto;padding:40px 28px 120px}@media (max-width: 720px){.shell{padding:24px 16px 120px}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;border-radius:10px;background:var(--accent-soft);border:1px solid var(--accent-line);display:grid;place-items:center;color:var(--accent-text)}.brand-name{font-weight:600;font-size:16px;letter-spacing:-.01em}.brand-sub{font-size:12px;color:var(--text-3);margin-top:1px}.icon-btn{width:38px;height:38px;border-radius:10px;background:var(--card);border:1px solid var(--border);color:var(--text-2);display:grid;place-items:center;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .1s}.icon-btn:hover{background:var(--card-hover);color:var(--text);border-color:var(--border-strong)}.icon-btn:active{transform:scale(.94)}.month-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.month-nav{display:flex;align-items:center;gap:8px}.month-pill{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:9px 16px;font-weight:600;font-size:15px;letter-spacing:-.01em;min-width:168px;justify-content:center}.month-pill .yr{color:var(--text-3);font-weight:500;font-variant-numeric:tabular-nums}.seg{display:inline-flex;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px}.seg button{border:0;background:transparent;color:var(--text-2);font-family:var(--sans);font-size:13px;font-weight:500;padding:6px 14px;border-radius:7px;cursor:pointer;transition:.15s}.seg button.on{background:var(--accent-soft);color:var(--accent-text)}.seg button:not(.on):hover{color:var(--text)}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:600;font-size:14px;border-radius:10px;padding:10px 16px;cursor:pointer;border:1px solid transparent;transition:.15s;white-space:nowrap}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn-primary:hover{filter:brightness(1.08);box-shadow:0 6px 20px -6px var(--accent-line)}.btn-primary:active{transform:translateY(1px)}.btn-ghost{background:var(--card);color:var(--text);border-color:var(--border)}.btn-ghost:hover{background:var(--card-hover);border-color:var(--border-strong)}.btn-quiet{background:transparent;color:var(--text-2)}.btn-quiet:hover{color:var(--text);background:var(--card)}.btn-danger{background:transparent;color:#f87171;border-color:#f8717140}.btn-danger:hover{background:#f871711a}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}@keyframes rowIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes rowOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translate(24px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes panelIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms;transition-duration:.001ms}}.icon-btn.sm{width:32px;height:32px;border-radius:8px}.entry-row{transition:background .15s}.entry-row td{border-bottom:1px solid var(--border)}.table-wrap tbody tr:last-child td{border-bottom:0}.entry-row:hover{background:var(--card-hover)}.entry-row:hover td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.row-actions{display:inline-flex;gap:4px;opacity:0;transition:opacity .15s}.entry-row:hover .row-actions{opacity:1}.add-row-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:0;border-top:1px solid var(--border);color:var(--text-2);font-family:var(--sans);font-weight:600;font-size:13.5px;padding:14px;cursor:pointer;transition:.15s}.add-row-btn:hover{background:var(--card-hover);color:var(--accent-text)}.dd-item{width:100%;display:flex;align-items:center;justify-content:space-between;background:transparent;border:0;color:var(--text);font-family:var(--sans);font-size:14px;padding:9px 11px;border-radius:8px;cursor:pointer;transition:background .12s;text-align:left}.dd-item:hover{background:var(--accent-soft)}.chip{background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-2);font-family:var(--mono);font-size:13px;font-weight:600;padding:8px 11px;cursor:pointer;transition:.15s}.chip:hover{border-color:var(--border-strong);color:var(--text)}.loc-row:hover{background:var(--card-hover)}.fab{position:fixed;right:20px;bottom:20px;z-index:30;width:56px;height:56px;border-radius:18px;border:0;background:var(--accent);color:var(--accent-ink);display:none;place-items:center;cursor:pointer;box-shadow:0 12px 30px -6px var(--accent-line),0 4px 12px #0006;transition:transform .12s}.fab:active{transform:scale(.92)}.cards-wrap{display:none}@media (max-width: 1024px){.table-wrap{display:none}.cards-wrap{display:flex}.stat-ring,.stat-arc{flex-direction:column;align-items:stretch}.stat-ring>div:last-child,.stat-arc>div{text-align:left}.stat-arc>div{flex:none}}@media (max-width: 720px){.stat-grid{grid-template-columns:1fr}.add-top{display:none}.fab{display:grid}.panel-shell{width:100vw}.stat-ring>div:first-child{grid-template-columns:1fr 1fr}}@media (max-width: 420px){.stat-ring>div:first-child,.stat-arc{grid-template-columns:1fr}}
