:root{--bg: #0b0e14;--bg-elev: #131824;--bg-elev-2: #1b2233;--border: #263043;--text: #e6ebf5;--muted: #8a97af;--primary: #2563eb;--primary-hover: #3b82f6;--danger: #e5484d;--success: #3fb950;--radius: 14px;--shadow: 0 6px 20px rgba(0, 0, 0, .35);--val-void: #070a12;--val-steel: #101725;--val-panel: #0d1420;--val-royal: #2b5bd7;--val-royal-deep: #16337e;--val-ice: #86b0ff;--val-frost: #cdd9ef;--val-frost-dim: #8494b0;--val-gold: #c9a24b;--val-gold-hi: #ecca7d;--font-display: "Cinzel", "Times New Roman", Georgia, serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1200px 600px at 100% -10%,rgba(37,99,235,.14),transparent 60%),var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.container{max-width:860px;margin:0 auto;padding:20px 16px 64px}.center-screen{display:grid;place-items:center;min-height:100vh}.page-head{margin:18px 0 12px}.page-head h1{margin:0 0 4px;font-size:1.6rem}.navbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#0b0e14d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:8px;font-weight:800;letter-spacing:.3px}.brand-mark{font-size:1.4rem}.brand-text{font-size:1.15rem}.brand-logo{height:40px;width:auto;display:block}.nav-right{display:flex;align-items:center;gap:10px}.nav-email{color:var(--muted);font-size:.85rem;max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px;box-shadow:var(--shadow)}.muted{color:var(--muted)}.small{font-size:.85rem}.section-title{margin:0 0 12px;font-size:1.05rem}.empty{text-align:center;color:var(--muted);padding:40px 16px;border:1px dashed var(--border);border-radius:var(--radius)}.error{color:var(--danger);background:#e5484d1a;border:1px solid rgba(229,72,77,.3);padding:10px 12px;border-radius:10px;margin:8px 0}.success{color:var(--success);background:#3fb9501a;border:1px solid rgba(63,185,80,.3);padding:10px 12px;border-radius:10px;margin:8px 0}.btn{border:1px solid transparent;border-radius:10px;padding:10px 16px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s;color:var(--text);background:var(--bg-elev-2)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-ghost{background:transparent;border-color:var(--border)}.btn-ghost:hover{background:var(--bg-elev-2)}.btn-danger{background:transparent;color:var(--danger);border-color:#e5484d66}.btn-danger:hover{background:#e5484d1f}.btn-sm{padding:6px 10px;font-size:.85rem}.form{display:flex;flex-direction:column;gap:14px;margin-top:16px}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:.85rem;color:var(--muted)}input,select,textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:11px 12px;font-size:.95rem;width:100%}input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb40}.form-inline{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.form-inline input{flex:1 1 180px}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.field-wide{grid-column:1 / -1}.auth-screen{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;font-family:var(--font-body);background:var(--val-void)}.auth-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;z-index:0;filter:grayscale(.35) contrast(1.05) brightness(.62) saturate(.9);transform:scale(1.04)}.auth-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(100deg,#070a12f5,#090f1edb 38%,#0d162c80 70%,#14224266),radial-gradient(120% 80% at 15% 20%,rgba(43,91,215,.16),transparent 55%),radial-gradient(140% 120% at 50% 120%,rgba(0,0,0,.6),transparent 60%)}.auth-content{position:relative;z-index:2;width:100%;max-width:1120px;margin:0 auto;padding:120px 32px 56px;display:flex;align-items:flex-start;justify-content:space-between;gap:64px;flex-wrap:wrap}.auth-brand{position:absolute;top:22px;left:30px;z-index:3;display:block;line-height:0}.auth-brand img{height:92px;width:auto;display:block;filter:drop-shadow(0 6px 20px rgba(43,91,215,.5))}.auth-hero{flex:1 1 380px;max-width:520px;animation:val-rise .7s cubic-bezier(.2,.7,.2,1) both}.auth-eyebrow{display:flex;align-items:center;gap:12px;font-family:var(--font-display);font-weight:700;font-size:.74rem;letter-spacing:.32em;text-transform:uppercase;color:var(--val-gold-hi);margin:0 0 20px}.auth-eyebrow:before{content:"";width:34px;height:1px;background:linear-gradient(90deg,var(--val-gold),transparent)}.auth-hero h1{font-family:var(--font-display);color:#fff;font-size:clamp(2.4rem,4.6vw,3.4rem);line-height:1.05;font-weight:900;letter-spacing:.01em;text-transform:uppercase;margin:0 0 20px;text-shadow:0 2px 30px rgba(0,0,0,.5)}.auth-hero h1 .val{color:transparent;background:linear-gradient(180deg,var(--val-gold-hi),var(--val-gold));-webkit-background-clip:text;background-clip:text}.auth-lede{color:var(--val-frost);font-size:1.02rem;line-height:1.65;margin:0 0 26px;max-width:44ch}.auth-marks{list-style:none;margin:0;padding:20px 0 0;border-top:1px solid rgba(201,162,75,.28);display:flex;flex-wrap:wrap;gap:10px 22px;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--val-frost-dim)}.auth-marks li{display:flex;align-items:center;gap:9px}.auth-marks li:before{content:"";width:5px;height:5px;transform:rotate(45deg);background:var(--val-gold)}.auth-panel{position:relative;flex:0 0 auto;width:384px;background:linear-gradient(180deg,#141e32b3,#090e18d1),var(--val-panel);border:1px solid rgba(134,176,255,.16);border-radius:16px;padding:40px 34px 32px;box-shadow:0 40px 80px #0009,inset 0 1px #ffffff0d;animation:val-rise .7s cubic-bezier(.2,.7,.2,1) .08s both;overflow:hidden}.auth-panel:before{content:"";position:absolute;top:0;left:20px;right:20px;height:2px;background:linear-gradient(90deg,transparent,var(--val-gold) 25%,var(--val-gold-hi) 50%,var(--val-gold) 75%,transparent);box-shadow:0 0 18px #ecca7d8c;animation:val-seam 1.1s ease-out .3s both}.auth-panel-title{font-family:var(--font-display);color:#fff;font-size:1.5rem;font-weight:700;letter-spacing:.01em;margin:0 0 6px}.auth-panel-sub{color:var(--val-frost-dim);font-size:.9rem;line-height:1.5;margin:0 0 4px}.auth-panel .field>span{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--val-frost-dim)}.auth-panel input{font-family:var(--font-body);background:#060a12d9;border:1px solid rgba(134,176,255,.14);color:var(--val-frost);border-radius:10px;padding:12px 13px;transition:border-color .15s,box-shadow .15s}.auth-panel input::placeholder{color:#5b6a80}.auth-panel input:focus{outline:none;border-color:var(--val-royal);box-shadow:0 0 0 3px #2b5bd74d}.username-input .username-at{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--val-gold);font-weight:600;pointer-events:none}.username-input input{padding-left:28px}.username-hint{display:block;margin:2px 0 0;font-size:.78rem;letter-spacing:normal;text-transform:none;color:var(--val-frost-dim)}.username-hint.ok{color:var(--success)}.username-hint.bad{color:var(--danger)}.input-icon{position:relative}.input-icon input{padding-right:44px}.eye-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--val-frost-dim);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:color .15s}.eye-btn:hover,.eye-btn:focus-visible{color:var(--val-ice);outline:none}.auth-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:-2px}.checkbox{display:flex;align-items:center;gap:8px;color:var(--val-frost-dim);font-size:.85rem;cursor:pointer}.checkbox input{width:16px;height:16px;accent-color:var(--val-royal);cursor:pointer}.link-btn{background:none;border:none;color:var(--val-ice);font-size:.85rem;font-weight:600;cursor:pointer;padding:0}.link-btn:hover{text-decoration:underline}.auth-submit{width:100%;border:1px solid rgba(236,202,125,.45);border-radius:12px;padding:15px;font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#fff;cursor:pointer;background:linear-gradient(180deg,var(--val-royal) 0%,var(--val-royal-deep) 100%);box-shadow:0 12px 28px #16337e80,inset 0 1px #ffffff2e;transition:filter .15s,transform .1s,opacity .15s;margin-top:6px}.auth-submit:hover:not(:disabled){filter:brightness(1.1)}.auth-submit:active:not(:disabled){transform:translateY(1px)}.auth-submit:disabled{opacity:.6;cursor:default}.auth-footer{text-align:center;color:var(--val-frost-dim);font-size:.85rem;margin:20px 0 0}.auth-footer a{color:var(--val-ice);font-weight:600}:where(.auth-submit,.link-btn,.eye-btn,.auth-brand):focus-visible{outline:2px solid var(--val-gold-hi);outline-offset:2px}@keyframes val-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes val-seam{0%{opacity:0;transform:scaleX(.4)}to{opacity:1;transform:scaleX(1)}}@media (max-width: 980px){.auth-content{flex-direction:column;align-items:stretch;gap:32px;padding:104px 20px 40px}.auth-hero{max-width:none;flex-basis:auto}.auth-brand{top:18px;left:20px}.auth-brand img{height:64px}.auth-panel{width:100%}}@media (prefers-reduced-motion: reduce){.auth-hero,.auth-panel,.auth-panel:before{animation:none}.auth-bg{transform:none}}.grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.routine-card,.row-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:0}.routine-card{flex-direction:column;align-items:stretch}.routine-link h3,.row-link h3{margin:0 0 6px}.row-link{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1}.pill{display:inline-block;background:#2563eb2e;color:var(--primary-hover);border:1px solid rgba(37,99,235,.4);padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:600}.pill-muted{background:var(--bg-elev-2);color:var(--muted);border-color:var(--border)}.back-link{color:var(--muted);font-size:.9rem}.back-link:hover{color:var(--text)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th,.table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.table th{color:var(--muted);font-weight:600}.notes-cell{white-space:normal;color:var(--muted);max-width:200px}.chart-wrap{width:100%}.chart{width:100%;height:auto}.chart-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:4 4}.chart-label{fill:var(--muted);font-size:10px}.chart-area{fill:#2563eb2e}.chart-line{fill:none;stroke:var(--primary);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:var(--primary-hover)}.chart-caption{color:var(--muted);font-size:.8rem;margin-top:6px}.spinner{width:38px;height:38px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 620px){.form-grid{grid-template-columns:repeat(2,1fr)}.nav-email{max-width:42vw}.brand-word{display:none}}.app-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(1000px 700px at 12% -10%,rgba(43,91,215,.2),transparent 60%),radial-gradient(900px 800px at 100% 112%,rgba(22,51,126,.3),transparent 60%),linear-gradient(180deg,#070a12,#0b1120 55%,#070a12)}.app-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(115deg,rgba(134,176,255,.035) 0px,rgba(134,176,255,.035) 1px,transparent 1px,transparent 26px)}.app-bg:after{content:"";position:absolute;right:-60px;bottom:-40px;width:460px;height:460px;opacity:.06;background-repeat:no-repeat;background-position:center;background-size:contain;background-image:url(data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%20220%20200%27%3E%3Cg%20fill=%27none%27%20stroke=%27%23c9a24b%27%20stroke-width=%273%27%20stroke-linejoin=%27round%27%3E%3Cpath%20d=%27M110%2010%20L210%20188%20L10%20188%20Z%27/%3E%3Cpath%20d=%27M110%2054%20L178%20172%20L42%20172%20Z%27/%3E%3Cpath%20d=%27M110%2098%20L146%20160%20L74%20160%20Z%27/%3E%3C/g%3E%3C/svg%3E)}.navbar{background:#080c14d1;border-bottom:1px solid rgba(134,176,255,.12)}.brand-logo{height:42px;filter:drop-shadow(0 3px 10px rgba(43,91,215,.45))}.brand-word{font-family:var(--font-display);font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:1.02rem;color:#fff}.navbar .nav-email{color:var(--val-frost);background:#2b5bd724;border:1px solid rgba(134,176,255,.18);padding:5px 12px;border-radius:999px}.dash>section{margin-bottom:18px}.val-page-head{margin:6px 0 18px}.val-eyebrow{display:block;font-family:var(--font-display);font-weight:700;letter-spacing:.28em;text-transform:uppercase;font-size:.7rem;color:var(--val-gold-hi);margin-bottom:8px}.val-page-head h1{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;font-size:1.9rem;color:#fff;margin:0 0 6px}.val-h2{font-family:var(--font-display);font-weight:700;font-size:1.2rem;letter-spacing:.01em;color:#fff;margin:0 0 12px}.val-card{background:linear-gradient(180deg,#141e328c,#090e18b8),var(--val-panel);border:1px solid rgba(134,176,255,.14);border-radius:14px;box-shadow:0 20px 44px #0006}.val-card h3{font-family:var(--font-display);font-weight:700;letter-spacing:.01em}.val-card input,.val-card select{background:#060a12d9;border:1px solid rgba(134,176,255,.14);color:var(--val-frost)}.val-card input:focus,.val-card select:focus{outline:none;border-color:var(--val-royal);box-shadow:0 0 0 3px #2b5bd74d}.cal-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px}.cal-nav{display:flex;align-items:center;gap:8px}.cal-arrow{width:32px;height:32px;border-radius:9px;border:1px solid rgba(134,176,255,.18);background:#060a12b3;color:var(--val-frost);font-size:1.2rem;line-height:1;cursor:pointer;transition:border-color .15s,color .15s}.cal-arrow:hover{border-color:var(--val-royal);color:var(--val-ice)}.cal-month{min-width:150px;text-align:center;font-weight:600;color:var(--val-frost)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-weekdays{margin-bottom:6px}.cal-weekday{text-align:center;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--val-frost-dim)}.cal-cell{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid rgba(134,176,255,.1);background:#060a1280;color:var(--val-frost);font-size:.9rem;cursor:pointer;transition:border-color .15s,background .15s,transform .1s}.cal-cell.empty{border:none;background:transparent;cursor:default}.cal-cell:hover:not(.empty):not(.attended){border-color:var(--val-royal)}.cal-cell.today{border-color:var(--val-ice)}.cal-cell.attended{background:linear-gradient(180deg,var(--val-gold-hi),var(--val-gold));color:#201603;font-weight:700;border-color:var(--val-gold)}.cal-cell.selected{box-shadow:0 0 0 2px var(--val-ice)}.cal-detail{margin-top:14px;padding-top:14px;border-top:1px solid rgba(201,162,75,.25)}.cal-detail-date{text-transform:capitalize;color:var(--val-frost);font-weight:600;margin:0 0 8px}.cal-detail-routine{display:flex;align-items:center;gap:8px;color:var(--val-frost);margin:0 0 10px}.cal-dot{width:8px;height:8px;border-radius:50%;background:var(--val-gold)}.cal-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.cal-actions select{width:auto;flex:0 1 200px}.ex-search{position:relative;margin:4px 0 12px}.ex-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--val-frost-dim);font-size:1.15rem;pointer-events:none}.ex-search input{padding-left:34px}.ex-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.ex-chip{background:#2b5bd71a;border:1px solid rgba(134,176,255,.16);color:var(--val-frost-dim);padding:6px 12px;border-radius:999px;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.ex-chip:hover{color:var(--val-frost)}.ex-chip.active{background:var(--val-royal);border-color:var(--val-gold);color:#fff}.ex-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.ex-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#060a1280;border:1px solid rgba(134,176,255,.1);border-radius:10px;padding:10px 12px}.ex-item-main{display:flex;flex-direction:column}.ex-name{color:var(--val-frost);font-weight:600;font-size:.92rem}.ex-focus{color:var(--val-frost-dim);font-size:.78rem}.ex-group{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--val-gold-hi);border:1px solid rgba(201,162,75,.35);padding:3px 8px;border-radius:999px;white-space:nowrap}
