:root{--bg-deep: #0d0d1a;--bg-primary: #1a1a2e;--bg-surface: #1f1f38;--bg-elevated: #272748;--gold: #c9a84c;--gold-dim: #8b7635;--gold-bright: #e8c55a;--gold-glow: rgba(201, 168, 76, .15);--text-primary: #e0d8c8;--text-secondary: #9a918a;--text-muted: #5a534d;--green: #5cb870;--red: #c44a3f;--amber: #d4943a;--blue: #5a8fc4;--border: #2e2e50;--border-light: #3a3a5c;--nav-height: 64px;--topbar-height: 56px;--page-pad: 16px;--font-display: "Cinzel", Georgia, serif;--font-body: "Alegreya", Georgia, serif;--ease: cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);font-size:16px;line-height:1.6;color:var(--text-primary);background:var(--bg-deep);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;min-height:100dvh;background:radial-gradient(ellipse at 20% 0%,rgba(201,168,76,.04) 0%,transparent 60%),radial-gradient(ellipse at 80% 100%,rgba(90,70,160,.06) 0%,transparent 60%),var(--bg-deep)}a{color:var(--gold);text-decoration:none}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.3;color:var(--text-primary)}h2{font-size:1.5rem}h3{font-size:1.1rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}h4{font-size:1rem}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh}.loading-brand{font-family:var(--font-display);font-size:2.5rem;color:var(--gold);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-muted);font-style:italic}.layout{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;height:var(--topbar-height);padding:0 var(--page-pad);background:#0d0d1ad9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.topbar-brand{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--gold);letter-spacing:.04em}.topbar-user{display:flex;align-items:center;gap:12px}.topbar-name{font-size:.85rem;color:var(--text-secondary)}.page{flex:1;padding:var(--page-pad);padding-bottom:calc(var(--nav-height) + var(--page-pad) + 16px);max-width:640px;width:100%;margin:0 auto}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;height:var(--nav-height);background:#0d0d1aeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:.7rem;font-family:var(--font-display);color:var(--text-muted);text-decoration:none;transition:color .2s var(--ease);letter-spacing:.06em;text-transform:uppercase}.nav-tab.active{color:var(--gold)}.nav-icon{width:22px;height:22px;fill:currentColor}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:var(--page-pad)}.login-card{width:100%;max-width:380px;padding:40px 32px;background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 0 60px #c9a84c0d,0 24px 48px #0000004d}.login-brand{text-align:center}.login-brand h1{font-family:var(--font-display);font-size:2.2rem;color:var(--gold);letter-spacing:.06em}.login-subtitle{font-size:.9rem;color:var(--text-muted);margin-top:4px}.login-divider{display:flex;align-items:center;justify-content:center;margin:28px 0}.login-divider-ornament{display:block;width:60px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-dim),transparent)}.login-form,.form{display:flex;flex-direction:column;gap:20px}.field{display:flex;flex-direction:column;gap:6px;border:none}.field-label{font-family:var(--font-display);font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.field-input{padding:10px 14px;font-family:var(--font-body);font-size:1rem;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;outline:none;transition:border-color .2s var(--ease)}.field-input:focus{border-color:var(--gold-dim)}select.field-input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%239a918a' d='M1.4 0L6 4.6 10.6 0 12 1.4l-6 6-6-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}.form-error{padding:10px 14px;font-size:.9rem;color:var(--red);background:#c44a3f1a;border:1px solid rgba(196,74,63,.25);border-radius:8px}.radio-group{display:flex;flex-direction:column;gap:8px}.radio-card{display:flex;align-items:flex-start;gap:12px;padding:14px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:border-color .2s var(--ease)}.radio-card.selected{border-color:var(--gold-dim);background:var(--gold-glow)}.radio-card input{margin-top:3px;accent-color:var(--gold)}.radio-card strong{display:block;font-family:var(--font-display);font-size:.9rem}.radio-desc{display:block;font-size:.85rem;color:var(--text-secondary);margin-top:2px}.date-list{display:flex;flex-direction:column;gap:8px}.date-row{display:flex;align-items:center;gap:8px}.date-row .field-input{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;font-family:var(--font-display);font-size:.85rem;font-weight:600;letter-spacing:.04em;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s var(--ease);text-decoration:none;line-height:1.4}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--gold-dim),var(--gold));color:#1a1a2e}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--gold),var(--gold-bright))}.btn-gold{background:var(--gold);color:#1a1a2e}.btn-gold:hover:not(:disabled){background:var(--gold-bright)}.btn-outline{background:transparent;border-color:var(--border-light);color:var(--text-secondary)}.btn-outline:hover:not(:disabled){border-color:var(--gold-dim);color:var(--gold)}.btn-ghost{background:none;border:none;padding:6px 10px;font-family:var(--font-body);font-size:.85rem;color:var(--text-secondary);cursor:pointer}.btn-ghost:hover{color:var(--gold)}.btn-sm{padding:6px 12px;font-size:.78rem}.btn-full{width:100%}.btn-danger{color:var(--red);margin-top:24px}.btn-danger:hover{color:#e05545}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.section{margin-bottom:28px}.section-header{display:flex;align-items:center;justify-content:space-between}.section-title{margin-bottom:12px;font-size:.85rem}.section-desc{font-size:.9rem;color:var(--text-secondary);margin-bottom:12px}.card-list{display:flex;flex-direction:column;gap:10px}.card{display:block;padding:16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;text-decoration:none;color:inherit;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}a.card:hover{border-color:var(--gold-dim);box-shadow:0 0 20px var(--gold-glow)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-title{font-size:1rem}.card-date{font-size:.9rem;color:var(--text-secondary);margin-top:4px}.card-meta{font-size:.85rem;color:var(--text-muted);margin-top:4px}.session-card .btn{margin-top:12px}.session-past{opacity:.5}.badge{display:inline-block;padding:3px 10px;font-family:var(--font-display);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:20px;white-space:nowrap}.badge-active{color:var(--green);background:#5cb8701f;border:1px solid rgba(92,184,112,.25)}.badge-confirmed{color:var(--blue);background:#5a8fc41f;border:1px solid rgba(90,143,196,.25)}.badge-gold{color:var(--gold);background:#c9a84c1f;border:1px solid rgba(201,168,76,.25)}.badge-dim{color:var(--text-secondary);background:#9a918a1a;border:1px solid rgba(154,145,138,.2)}.vote-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.vote-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px}.vote-date{display:flex;flex-direction:column;gap:2px}.vote-date-text{font-weight:500}.vote-tally{display:flex;gap:8px;font-size:.8rem}.tally-yes{color:var(--green)}.tally-maybe{color:var(--amber)}.vote-btn{padding:6px 16px;font-family:var(--font-display);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .15s var(--ease);background:var(--bg-surface);color:var(--text-muted)}.vote-yes{background:#5cb87026;border-color:#5cb87066;color:var(--green)}.vote-maybe{background:#d4943a26;border-color:#d4943a66;color:var(--amber)}.vote-no{background:#c44a3f1f;border-color:#c44a3f4d;color:var(--red)}.vote-none:hover{border-color:var(--gold-dim);color:var(--text-secondary)}.response-list{display:flex;flex-direction:column;gap:6px}.response-row{display:flex;justify-content:space-between;padding:8px 14px;font-size:.9rem;background:var(--bg-primary);border-radius:6px}.response-user{color:var(--text-primary)}.response-time{color:var(--text-muted);font-size:.8rem}.confirm-section{padding:20px;background:var(--gold-glow);border:1px solid rgba(201,168,76,.2);border-radius:10px}.confirm-controls{display:flex;gap:10px}.confirm-controls .field-input{flex:1}.empty-state{color:var(--text-muted);font-style:italic;font-size:.9rem}.empty-state-large{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 20px;text-align:center;color:var(--text-muted);font-style:italic}.empty-state-sub{font-size:.85rem}.notification-prompt{margin-bottom:20px}.invite-link-box{display:flex;flex-direction:column;gap:6px;padding:14px 16px;margin-bottom:20px;border:1px dashed var(--gold-dim);border-radius:8px;background:var(--gold-glow);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .2s var(--ease)}.invite-link-box:active{border-color:var(--gold-bright)}.invite-link-label{font-family:var(--font-body);font-size:.85rem;color:var(--gold)}.invite-link-url{font-size:.75rem;color:var(--text-secondary);word-break:break-all;line-height:1.4}@media(min-width:768px){:root{--page-pad: 24px}.page{max-width:720px}}
