:root{--bg-deep: #0a0414;--bg-page: #130826;--bg-sunken: #05010c;--bg-panel: #1a0d30;--bg-panel-2: #221040;--bg-panel-hover: #2a1452;--node-base: #0c0614;--purple-50: #f3eaff;--purple-100: #e0ccff;--purple-300: #b084ff;--purple-400: #9966ee;--purple-500: #7a4ad1;--purple-600: #5a3a8e;--purple-700: #3d2560;--purple-800: #28163f;--purple-900: #180a27;--fg: #ece6f5;--fg-dim: #b7a8d4;--fg-mute: #7a6d95;--stroke: #3a2160;--stroke-strong: #5a3a8e;--stroke-focus: #c29bff;--shadow-inset: inset 0 0 0 1px rgba(0, 0, 0, .85), inset 0 14px 32px rgba(0, 0, 0, .78), inset 0 -10px 26px rgba(0, 0, 0, .55), inset 12px 0 32px rgba(0, 0, 0, .4), inset -12px 0 32px rgba(0, 0, 0, .4), inset 0 1px 0 rgba(0, 0, 0, .9), inset 0 -1px 0 rgba(180, 130, 255, .14);--shadow-node: 0 3px 0 rgba(0, 0, 0, .8), 0 18px 34px rgba(0, 0, 0, .75), 0 8px 14px rgba(0, 0, 0, .5), 0 0 0 1px rgba(180, 130, 255, .28), 0 0 28px -4px rgba(160, 100, 255, .22);--shadow-node-selected: 0 3px 0 rgba(0, 0, 0, .8), 0 20px 40px rgba(160, 100, 255, .45), 0 8px 14px rgba(0, 0, 0, .55), 0 0 0 2px var(--stroke-focus), 0 0 36px -2px rgba(194, 155, 255, .35);--shadow-panel: 0 8px 32px rgba(0, 0, 0, .6), 0 0 0 1px rgba(180, 130, 255, .1);--font-ui: "Inter", system-ui, -apple-system, Segoe UI, sans-serif;--font-pixel: "VT323", "Press Start 2P", monospace;--font-display: "Press Start 2P", "VT323", monospace;--radius-sm: 2px;--radius-xs: 3px;--radius-md: 4px;--radius-lg: 6px;--color-danger: #ff6d7e;--color-danger-fg: #ffb3cc;--color-danger-border: #a04668;--color-success: #4edc98;--color-warning: #ffcc66;--sat-top: env(safe-area-inset-top, 0px);--sat-right: env(safe-area-inset-right, 0px);--sat-bottom: env(safe-area-inset-bottom, 0px);--sat-left: env(safe-area-inset-left, 0px)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;height:100dvh;width:100%;background:var(--bg-deep);color:var(--fg);font-family:var(--font-ui);font-size:14px;overflow:hidden;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font-family:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0;touch-action:manipulation}input,textarea,select{font-family:inherit;color:var(--fg);background:var(--bg-panel-2);border:1px solid var(--stroke);border-radius:var(--radius-md);padding:6px 8px;font-size:13px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--stroke-focus);box-shadow:0 0 0 2px #c29bff26}textarea{resize:vertical;min-height:100px;line-height:1.5}kbd{display:inline-block;padding:1px 5px;background:var(--bg-panel);border:1px solid var(--stroke);border-radius:3px;font-family:var(--font-pixel, monospace);font-size:10px;color:var(--fg);line-height:1.4}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-sunken)}::-webkit-scrollbar-thumb{background:var(--purple-700);border-radius:0;border:2px solid var(--bg-sunken)}::-webkit-scrollbar-thumb:hover{background:var(--purple-500)}.section-eyebrow{font-family:var(--font-display);font-size:9px;letter-spacing:1.5px;color:var(--purple-300);text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;background:var(--bg-panel-2);border:1px solid var(--stroke);border-radius:var(--radius-md);color:var(--fg-dim);font-family:var(--font-ui);font-size:13px;font-weight:500;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background .1s,color .1s,border-color .1s,box-shadow .1s;box-shadow:0 1px #00000080}.btn:hover:not(:disabled){background:var(--bg-panel-hover);color:var(--fg);border-color:var(--stroke-strong)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:color-mix(in srgb,var(--purple-300) 28%,var(--bg-panel));border-color:var(--stroke-focus);color:var(--fg)}.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--purple-300) 40%,var(--bg-panel));color:var(--fg)}.btn-ghost{background:transparent;box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--bg-panel-hover)}.btn-danger{background:#a0466840;border-color:var(--color-danger-border);color:var(--color-danger-fg)}.btn-danger:hover:not(:disabled){background:#a0466866;color:var(--color-danger-fg);border-color:var(--color-danger)}.btn-danger-ghost:hover:not(:disabled){color:var(--color-danger-fg);border-color:var(--color-danger-border)}.app-shell{display:grid;grid-template-rows:auto 1fr;height:100%;width:100%;background:var(--bg-page)}.app-header{display:flex;align-items:center;gap:14px;height:calc(52px + var(--sat-top, 0px));padding:var(--sat-top, 0px) max(16px,var(--sat-right, 0px)) 0 max(16px,var(--sat-left, 0px));background:linear-gradient(180deg,var(--bg-panel) 0%,var(--bg-panel-2) 100%);border-bottom:1px solid var(--stroke);box-shadow:0 1px #0006;z-index:3}.app-brand{font-family:var(--font-display);font-size:13px;letter-spacing:1px;color:var(--purple-300);text-shadow:0 0 10px rgba(176,132,255,.4);image-rendering:pixelated;flex:0 0 auto}.app-header-end{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:0}.app-user{font-size:12px;color:var(--fg-mute);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-main{overflow:auto;overscroll-behavior:contain;padding:24px;padding-bottom:calc(24px + var(--sat-bottom, 0px))}.tab-nav{display:flex;gap:4px}.tab-link{display:inline-flex;align-items:center;padding:6px 14px;font-family:var(--font-pixel);font-size:15px;letter-spacing:.5px;color:var(--fg-mute);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);text-decoration:none;transition:color .1s,background .1s,border-color .1s,box-shadow .1s}.tab-link:hover{color:var(--fg-dim);background:var(--bg-panel-hover)}.tab-link.active{color:var(--fg);background:color-mix(in srgb,var(--purple-300) 22%,var(--bg-panel));border-color:var(--stroke-focus);box-shadow:0 0 12px #b084ff40}.page{max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.page-title{margin:0;font-family:var(--font-display);font-size:16px;letter-spacing:1px;color:var(--purple-100);text-shadow:0 0 10px rgba(176,132,255,.25)}.muted{color:var(--fg-mute);font-size:13px}.inline-error{margin:0;color:var(--color-danger-fg);background:#a0466826;border:1px solid var(--color-danger-border);padding:8px 12px;border-radius:var(--radius-md);font-size:13px;word-break:break-word}.panel-card{background:var(--bg-panel);border:1px solid var(--stroke);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-panel)}.panel-card-title{margin:0 0 14px;font-family:var(--font-display);font-size:11px;letter-spacing:1px;color:var(--purple-300);text-transform:uppercase}.project-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-family:var(--font-display);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--fg-mute)}.field input,.field textarea{width:100%;background:var(--bg-panel-2);border:1px solid var(--stroke);border-radius:var(--radius-md);color:var(--fg);padding:8px 10px;font-size:14px}.field textarea{min-height:72px;resize:vertical;line-height:1.5}.form-actions{display:flex;gap:8px}.project-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.project-list-item{min-width:0}.project-card{background:var(--bg-panel);border:1px solid var(--stroke);border-radius:var(--radius-lg);padding:16px 18px;display:flex;flex-direction:column;gap:8px;box-shadow:0 2px #00000080,0 0 0 1px #b482ff0f;transition:border-color .12s,box-shadow .12s}.project-card:hover{border-color:var(--stroke-strong)}.project-card-title{margin:0;font-family:var(--font-pixel);font-size:20px;letter-spacing:.5px;line-height:1.1;color:var(--purple-100);word-break:break-word}.project-card-desc{margin:0;font-size:13px;line-height:1.5;color:var(--fg-dim);white-space:pre-wrap;word-break:break-word}.project-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}.project-card.selected{border-color:var(--stroke-focus);box-shadow:0 2px #0009,0 0 0 1px var(--stroke-focus),0 0 22px -4px #c29bff66}.confirm-delete{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.confirm-label{font-size:13px;color:var(--color-danger-fg)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;padding:48px 24px;color:var(--fg-dim);background:var(--bg-panel);border:1px dashed var(--stroke);border-radius:var(--radius-lg)}.empty-state p{margin:0;font-size:14px}.daily-counter{font-family:var(--font-pixel);font-size:18px;color:var(--purple-300);background:var(--bg-panel);border:1px solid var(--stroke-focus);border-radius:var(--radius-md);padding:2px 10px;letter-spacing:1px}.daily-hint{margin:0}.daily-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.daily-slot-empty{display:flex;align-items:center;justify-content:center;min-height:96px;border:1px dashed var(--stroke);border-radius:var(--radius-lg);color:var(--fg-mute);background:color-mix(in srgb,var(--bg-panel) 60%,transparent);font-family:var(--font-pixel);font-size:15px;letter-spacing:.5px}.daily-all-title{margin:6px 0 0}.daily-picker{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.daily-pick-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 12px;background:var(--bg-panel-2);border:1px solid var(--stroke);border-radius:var(--radius-md);color:var(--fg-dim);font-size:14px;transition:background .1s,color .1s,border-color .1s,box-shadow .1s}.daily-pick-row:hover:not(:disabled){background:var(--bg-panel-hover);color:var(--fg);border-color:var(--stroke-strong)}.daily-pick-row:disabled{opacity:.4;cursor:not-allowed}.daily-pick-row.selected{color:var(--fg);background:color-mix(in srgb,var(--purple-300) 18%,var(--bg-panel));border-color:var(--stroke-focus);box-shadow:0 0 10px #b084ff33}.daily-pick-check{flex:0 0 18px;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--stroke-strong);border-radius:var(--radius-sm);font-size:12px;line-height:1;color:var(--purple-300)}.daily-pick-row.selected .daily-pick-check{background:color-mix(in srgb,var(--purple-300) 35%,transparent);border-color:var(--stroke-focus);color:var(--fg)}.daily-pick-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-screen{display:flex;align-items:center;justify-content:center;height:100%;width:100%;padding:24px;background:radial-gradient(80% 60% at 50% 0%,rgba(122,74,209,.18) 0%,transparent 70%),var(--bg-page)}.login-card{display:flex;flex-direction:column;align-items:center;gap:18px;width:100%;max-width:380px;padding:36px 32px;text-align:center;background:var(--bg-panel);border:1px solid var(--stroke);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel)}.login-brand{font-family:var(--font-display);font-size:22px;letter-spacing:2px;color:var(--purple-300);text-shadow:0 0 16px rgba(176,132,255,.45);image-rendering:pixelated}.login-diamond{display:inline-block}.login-tagline{margin:0;font-size:14px;color:var(--fg-dim);line-height:1.5}.login-google{min-height:44px;display:flex;justify-content:center}.login-error{margin:0;width:100%;color:var(--color-danger-fg);background:#a0466826;border:1px solid var(--color-danger-border);padding:8px 12px;border-radius:var(--radius-md);font-size:13px;word-break:break-word}.auth-splash{display:flex;align-items:center;justify-content:center;height:100%;width:100%;background:var(--bg-deep)}.auth-splash-brand{font-family:var(--font-display);font-size:18px;letter-spacing:2px;color:var(--purple-300);text-shadow:0 0 14px rgba(176,132,255,.45);image-rendering:pixelated}.auth-splash-diamond{display:inline-block;animation:auth-splash-pulse 1.4s ease-in-out infinite}@keyframes auth-splash-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.92)}}@media (prefers-reduced-motion: reduce){.auth-splash-diamond{animation:none}}@media (max-width: 600px){.app-header{gap:8px;padding:var(--sat-top, 0px) max(10px,var(--sat-right, 0px)) 0 max(10px,var(--sat-left, 0px))}.app-user{display:none}.app-brand{font-size:12px}.tab-link{font-size:14px;padding:6px 10px}.app-main{padding:16px;padding-bottom:calc(16px + var(--sat-bottom, 0px))}.page{gap:14px}.daily-grid{grid-template-columns:1fr}.field input,.field textarea{font-size:16px}.daily-pick-row{padding:12px}.btn{padding:9px 14px}}
