:root{--bg: #fafafa;--surface: #ffffff;--border: #e0e0e0;--text: #212121;--text-secondary: #666666;--primary: #1976d2;--primary-hover: #1565c0;--danger: #d32f2f;--success: #2e7d32;--warn: #ed6c02;--shadow: 0 1px 3px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .12);--radius: 8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #121212;--surface: #1e1e1e;--border: #333333;--text: #ececec;--text-secondary: #aaaaaa;--primary: #42a5f5;--primary-hover: #64b5f6;--shadow: 0 1px 3px rgba(0, 0, 0, .4);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .6)}}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:14px;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:8px 14px;border-radius:var(--radius);transition:background .12s}button:hover{background:#f0f0f0}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover{background:var(--primary-hover)}button.danger{border-color:var(--danger);color:var(--danger);background:var(--surface)}button.danger:hover{background:#ffebee}input,select,textarea{font-family:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px;border-color:var(--primary)}label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.row{display:flex;gap:12px;align-items:center}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:12px}.grid{display:grid;gap:12px}.muted{color:var(--text-secondary);font-size:12px}.page{padding:16px;max-width:720px;margin:0 auto}.section-title{font-size:12px;text-transform:uppercase;color:var(--text-secondary);letter-spacing:.06em;margin:0 0 8px;font-weight:600}.layout{display:flex;flex-direction:column;min-height:100%}.appbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--primary);color:#fff;box-shadow:var(--shadow)}.appbar h1{margin:0;font-size:18px;font-weight:600;flex:1}.appbar button{background:transparent;border:none;color:inherit;padding:6px 10px}.appbar button:hover{background:#ffffff1f}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;border-radius:50%;cursor:pointer}.icon-btn:hover{background:#0000000f}.drawer-backdrop{position:fixed;inset:0;background:#0006;z-index:20;opacity:0;pointer-events:none;transition:opacity .2s}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;left:0;bottom:0;width:280px;background:var(--surface);border-right:1px solid var(--border);z-index:21;transform:translate(-100%);transition:transform .2s ease-out;display:flex;flex-direction:column}.drawer.open{transform:translate(0)}.drawer header{padding:16px;background:var(--primary);color:#fff;font-weight:600}.drawer nav{display:flex;flex-direction:column}.drawer nav a{display:block;padding:14px 16px;color:var(--text);border-bottom:1px solid var(--border);text-decoration:none}.drawer nav a:hover{background:#0000000a}.content{flex:1;min-height:0}.fab{position:fixed;right:20px;bottom:20px;width:56px;height:56px;border-radius:50%;border:none;background:var(--primary);color:#fff;font-size:24px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-lg);display:inline-flex;align-items:center;justify-content:center;z-index:5}.fab:hover{background:var(--primary-hover)}.list-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:background .12s}.list-item:hover{background:#00000008}.list-item .name{flex:1;font-weight:600}.list-item .last{color:var(--text-secondary);font-size:13px}.list-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#1976d21a;color:var(--primary)}.empty{text-align:center;padding:48px 16px;color:var(--text-secondary)}.chart-wrap{position:relative;height:260px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:8px}.tab-row{display:flex;gap:6px;overflow-x:auto;padding:4px 2px}.tab{padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;font-weight:500}.tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.value-form{display:flex;gap:8px;align-items:flex-end}.value-form input{flex:1}.kv{display:grid;grid-template-columns:1fr auto;gap:4px 12px;font-size:13px}.kv .k{color:var(--text-secondary)}.kv .v{font-weight:600;text-align:right}.diverging{color:var(--danger)}.happy{color:var(--success)}
