:root{--bg-base: #0a0a0a;--bg-surface: #111111;--bg-raised: #1a1a1a;--bg-hover: #222222;--accent: #F97316;--accent-dim: #7c3900;--accent-glow: rgba(249, 115, 22, .15);--green: #22c55e;--green-dim: #14532d;--yellow: #eab308;--yellow-dim: #713f12;--red: #ef4444;--red-dim: #7f1d1d;--blue: #3b82f6;--blue-dim: #1e3a5f;--text-primary: #f5f5f5;--text-secondary: #a3a3a3;--text-muted: #525252;--border: #2a2a2a;--border-accent: rgba(249, 115, 22, .3);--font-display: "Rajdhani", sans-serif;--font-mono: "IBM Plex Mono", monospace;--font-body: "IBM Plex Sans", sans-serif;--radius: 6px;--radius-lg: 10px;--tap-min: 48px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-body);font-size:16px;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation}#root{width:100%;height:100%;overflow:hidden}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.1}.mono{font-family:var(--font-mono)}.app-shell{display:grid;grid-template-columns:200px 1fr;grid-template-rows:48px 1fr;width:100vw;height:100vh;overflow:hidden}.app-topbar{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--bg-surface);border-bottom:1px solid var(--border);gap:12px}.app-sidebar{background:var(--bg-surface);border-right:1px solid var(--border);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.app-main{overflow-y:auto;overflow-x:hidden;padding:12px;background:var(--bg-base)}.topbar-brand{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.topbar-brand span{color:var(--text-muted);font-weight:400}.topbar-time{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary)}.topbar-user{font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius)}.sidebar-nav{padding:8px 0;flex:1}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 14px;min-height:var(--tap-min);cursor:pointer;border:none;background:none;color:var(--text-secondary);font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;width:100%;text-align:left;transition:background .15s,color .15s;text-decoration:none;border-left:2px solid transparent}.nav-item:hover{background:var(--bg-raised);color:var(--text-primary)}.nav-item.active{background:var(--accent-glow);color:var(--accent);border-left-color:var(--accent)}.nav-icon{font-size:16px;width:20px;text-align:center}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.card-title{font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary)}.score-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.score-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px;text-align:center}.score-card.norm-card{border-top:2px solid var(--accent)}.score-card.emily-card{border-top:2px solid var(--blue)}.score-name{font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px}.score-xp{font-family:var(--font-mono);font-size:28px;font-weight:500;color:var(--text-primary);line-height:1}.score-level{font-family:var(--font-display);font-size:11px;color:var(--text-secondary);margin-top:4px;letter-spacing:.05em}.score-streak{font-family:var(--font-mono);font-size:11px;color:var(--accent);margin-top:3px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.badge-ok{background:var(--green-dim);color:var(--green)}.badge-warn{background:var(--yellow-dim);color:var(--yellow)}.badge-danger{background:var(--red-dim);color:var(--red)}.badge-info{background:var(--blue-dim);color:var(--blue)}.badge-accent{background:var(--accent-dim);color:var(--accent)}.status-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);min-height:40px}.status-row:last-child{border-bottom:none}.status-icon{font-size:16px;width:24px;text-align:center;flex-shrink:0}.status-label{font-family:var(--font-body);font-size:13px;color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-meta{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);flex-shrink:0}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.span-full{grid-column:1 / -1}.household-banner{background:linear-gradient(135deg,var(--bg-surface) 0%,var(--bg-raised) 100%);border:1px solid var(--border-accent);border-radius:var(--radius-lg);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.household-name{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.household-level{font-family:var(--font-display);font-size:13px;font-weight:600;color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase}.household-xp{font-family:var(--font-mono);font-size:13px;color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 16px;height:var(--tap-min);min-width:var(--tap-min);border:none;border-radius:var(--radius);cursor:pointer;font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:opacity .15s,transform .1s;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97);opacity:.85}.btn-primary{background:var(--accent);color:#000}.btn-ghost{background:var(--bg-raised);border:1px solid var(--border);color:var(--text-primary)}.login-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100vw;height:100vh;background:var(--bg-base);gap:24px}.login-logo{font-family:var(--font-display);font-size:48px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}.login-subtitle{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;margin-top:-16px}.login-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;width:min(320px,90vw);display:flex;flex-direction:column;gap:16px}.login-field{display:flex;flex-direction:column;gap:6px}.login-label{font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.login-input,.login-select{height:var(--tap-min);padding:0 12px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font-mono);font-size:16px;width:100%;outline:none;-webkit-appearance:none;transition:border-color .15s}.login-input:focus,.login-select:focus{border-color:var(--accent)}.login-error{font-family:var(--font-mono);font-size:12px;color:var(--red);text-align:center}.wall-display{display:grid;grid-template-rows:auto 1fr auto;width:100vw;height:100vh;background:var(--bg-base);overflow:hidden;padding:8px;gap:6px}.wall-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.wall-title{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.wall-datetime{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);text-align:right}.wall-scores{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wall-score-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 14px;text-align:center}.wall-score-card.norm{border-top:3px solid var(--accent)}.wall-score-card.emily{border-top:3px solid var(--blue)}.wall-score-name{font-family:var(--font-display);font-size:14px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted)}.wall-score-xp{font-family:var(--font-mono);font-size:36px;font-weight:500;color:var(--text-primary);line-height:1.1}.wall-score-title{font-family:var(--font-display);font-size:12px;color:var(--text-secondary);letter-spacing:.06em;text-transform:uppercase}.wall-body{display:grid;grid-template-columns:1fr 1fr;gap:6px;min-height:0}.wall-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:8px 10px;overflow:hidden;display:flex;flex-direction:column}.wall-section-title{font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;flex-shrink:0}.wall-row{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid var(--border);flex-shrink:0}.wall-row:last-child{border-bottom:none}.wall-row-label{font-size:12px;color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wall-row-meta{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);flex-shrink:0}.wall-footer{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius)}.wall-footer-xp{font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--accent)}.wall-footer-level{font-family:var(--font-display);font-size:12px;color:var(--text-secondary);letter-spacing:.06em}.wall-footer-refresh{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;color:var(--text-muted);font-family:var(--font-mono);font-size:12px;text-align:center;gap:6px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
