:root{color-scheme:dark;--bg: #1A150E;--panel: #221913;--panel-2: #2a201a;--border-dark: #3d2f20;--text: #e8d9b5;--muted: #9a8467;--paper: #e6ce9a;--paper-2: #d4b984;--paper-edge: #7a5a30;--paper-shadow: rgba(20, 10, 2, .55);--ink: #2b1d10;--ink-muted: #5a4530;--ink-faint: #80683f;--accent: #8b1a1a;--accent-hover: #a32020;--accent-soft: #f4d4cc;--good: #4a6b3a;--good-soft: #c8d4a8;--warn: #9c6a1a;--warn-soft: #e8cf95;--bad: #8b1a1a;--bad-soft: #e8b8b0;--radius: 4px;--serif-display: "Cinzel", "Trajan Pro", "Optima", "Iowan Old Style", serif;--serif-body: "EB Garamond", "Iowan Old Style", "Palatino", "Book Antiqua", Cambria, Georgia, serif;--serif-decorative: "Uncial Antiqua", "Cinzel", "Trajan Pro", serif;--noise: url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.4  0 0 0 0 0.28  0 0 0 0 0.14  0 0 0 0.6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--noise-dark: url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}*{box-sizing:border-box}html,body{margin:0;height:100%;color:var(--text);font-family:var(--serif-body);font-size:16px;line-height:1.5}#root{min-height:100%;background:transparent}body{background-color:#1a150e;background-image:url(/tavern4.jpg);background-size:100% auto;background-position:center top;background-repeat:no-repeat;background-attachment:scroll;min-height:100vh}@media(max-width:900px){body{background-size:160% auto}}@media(max-width:640px){body{background-size:220% auto}}@media(max-width:420px){body{background-size:280% auto}}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,.brand{font-family:var(--serif-display);letter-spacing:.5px;font-weight:600}h1{font-size:1.7rem;font-family:var(--serif-decorative);letter-spacing:1.5px}h2{font-size:1.1rem}.brand{font-family:var(--serif-decorative);letter-spacing:2px}button{font:inherit;cursor:pointer;background:var(--paper-2);color:var(--ink);border:1px solid var(--paper-edge);border-radius:var(--radius);padding:6px 14px;font-family:var(--serif-display);font-size:.85rem;letter-spacing:.6px;text-transform:uppercase;transition:background-color .12s,border-color .12s,color .12s,transform .06s}button:hover{background:#ddc88c}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--accent);border-color:#5a0e0e;color:#f4ecd8;box-shadow:inset 0 1px #ffffff2e,0 1px 2px #0006}button.primary:hover{background:var(--accent-hover)}button.link{background:none;border:none;color:var(--accent);padding:0;text-transform:none;letter-spacing:0;text-decoration:underline;cursor:pointer;font-family:var(--serif-body)}button.link:hover{color:var(--accent-hover)}button.danger{background:#5a1414;border-color:#3a0c0c;color:#f4d4d4}button.danger:hover{background:#6b1818}.app{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:16px;padding:10px 20px;border-bottom:1px solid var(--border-dark);background:linear-gradient(180deg,#2c2218,var(--bg));flex-wrap:wrap;box-shadow:0 4px 8px #0000008c}.brand{font-weight:700;letter-spacing:1.5px;color:var(--accent-soft);font-size:1.05rem;text-transform:uppercase}.topbar nav{display:flex;gap:18px}.topbar nav a{color:var(--muted);font-family:var(--serif-display);font-size:.85rem;letter-spacing:.6px;text-transform:uppercase}.topbar nav a:hover{color:var(--text);text-decoration:none}.topbar .me{margin-left:auto;display:flex;gap:14px;align-items:center}.topbar .me .muted{color:var(--muted)}.topbar .me-link{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:999px;text-decoration:none;transition:background-color .12s}.topbar .me-link:hover{background:#f4d4cc12;text-decoration:none}.topbar .me-link:hover .muted{color:var(--text)}.topbar .me-name{font-family:var(--serif-display);font-size:.8rem;letter-spacing:.6px}.hamburger{display:none;background:transparent;border:1px solid var(--border-dark);color:var(--text);padding:6px 10px;border-radius:var(--radius);text-transform:none;letter-spacing:0;font-family:inherit}.hamburger:hover{background:#f4d4cc12;color:var(--accent-soft)}@media(max-width:640px){.topbar{padding:8px 14px;gap:10px}.brand{font-size:.95rem;letter-spacing:1.2px}.topbar-nav-desktop,.topbar-depart-desktop,.topbar .me-name{display:none}.hamburger{display:inline-flex;align-items:center;justify-content:center}}.avatar{display:inline-block;border-radius:50%;background:var(--paper-2);border:1px solid var(--paper-edge);object-fit:cover;vertical-align:middle;box-shadow:0 1px 3px #0006}.avatar-fallback{display:inline-flex;align-items:center;justify-content:center;font-family:var(--serif-display);color:var(--ink);background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);font-weight:700;letter-spacing:0;text-transform:uppercase}.container{padding:24px;max-width:1100px;width:100%;margin:0 auto}.profile-grid{display:grid;grid-template-columns:220px 1fr;grid-template-rows:auto auto;gap:22px 28px}.profile-avatar-col{display:flex;flex-direction:column;gap:12px;align-items:center}.profile-avatar-col .avatar{width:140px;height:140px;box-shadow:0 4px 12px #00000080}.profile-avatar-col .field{width:100%}.profile-fields-col{display:flex;flex-direction:column;gap:14px;min-width:0}.profile-actions{grid-column:1 / -1;display:flex;gap:12px;align-items:center;justify-content:flex-end;border-top:1px dashed var(--paper-edge);padding-top:14px}@media(max-width:720px){.profile-grid{grid-template-columns:1fr}.profile-avatar-col{flex-direction:column;align-items:stretch}.profile-avatar-col .avatar{align-self:center}}.verify-banner{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:10px 20px;background:linear-gradient(180deg,#5a3a1f,#3a2412);color:var(--text);font-family:var(--serif-body);font-size:.92rem;border-bottom:1px solid var(--border-dark);box-shadow:inset 0 -1px #0006}.verify-banner em{color:var(--accent-soft);font-style:italic}.verify-banner strong{color:var(--accent-soft)}.verify-banner button{font-size:.8rem;padding:4px 10px}.verify-banner button.link{color:var(--accent-soft)}.muted{color:var(--ink-muted)}.centered{display:grid;place-items:center;min-height:100vh;color:var(--text)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:12px}.col{display:flex;flex-direction:column;gap:12px}.stack{display:flex;flex-direction:column;gap:6px}.card{position:relative;background-color:var(--paper);color:var(--ink);border:1px solid var(--paper-edge);border-radius:var(--radius);padding:16px;box-shadow:0 2px 4px #00000040,0 6px 16px #00000059,inset 0 1px #fff6,inset 0 0 24px #78501e14;background-image:var(--noise),radial-gradient(ellipse 120% 80% at 0% 0%,rgba(150,110,55,.16) 0%,transparent 45%),radial-gradient(ellipse 120% 80% at 100% 100%,rgba(150,110,55,.18) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 30% 70%,rgba(120,90,50,.08) 0%,transparent 60%),linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);background-blend-mode:multiply,normal,normal,normal,normal}.card a{color:var(--accent)}.card a:hover{color:var(--accent-hover)}.card .muted{color:var(--ink-muted)}.section+.section{margin-top:28px}.quest-header{position:relative;margin-bottom:22px;padding:18px 22px;border-radius:var(--radius);background:linear-gradient(180deg,#0a0703c7,#0a0703eb);border:1px solid var(--border-dark);backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);box-shadow:0 6px 18px #0000008c,inset 0 1px #ffffff0d}.quest-header h1{color:var(--text)}.quest-header p{color:var(--text);margin-top:8px;opacity:.9}.quest-header .muted{color:var(--muted)}.quest-header strong{color:var(--accent-soft)}.section+.quest-header{margin-top:28px}.quest-header+.section{margin-top:22px}.section h2{margin:0 0 14px;font-size:.95rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--text);font-family:var(--serif-display)}.form{max-width:460px;display:flex;flex-direction:column;gap:14px}.form .field{display:flex;flex-direction:column;gap:4px}.form label{font-size:.8rem;color:var(--ink-muted);font-family:var(--serif-display);text-transform:uppercase;letter-spacing:.6px}input,select,textarea{font:inherit;background:#f0d8a4;color:var(--ink);border:1px solid var(--paper-edge);border-radius:var(--radius);padding:8px 10px;width:100%;font-family:var(--serif-body)}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.error{color:#6b1818;font-size:.85rem;min-height:1em;font-style:italic}.success{color:#2d5a1a;font-size:.85rem;min-height:1em;font-style:italic}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:20px;position:relative;background-image:linear-gradient(180deg,#0e0a068c,#0e0a06d9),url(/background.png);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}.auth-card{width:min(460px,100%);box-shadow:0 0 0 1px #b8996866,0 8px 24px #0000008c,0 24px 64px #000000a6,inset 0 1px #fff6,inset 0 0 32px #78501e14}.auth-card h1{margin-top:0;color:var(--ink)}.session-list{display:flex;flex-direction:column;gap:10px}.pill{display:inline-block;padding:3px 12px;border-radius:999px;font-size:.7rem;font-family:var(--serif-display);text-transform:uppercase;letter-spacing:1.2px;font-weight:600;border:1px solid var(--paper-edge);color:var(--ink-muted);background:#ffffff59;box-shadow:inset 0 1px #ffffff4d,0 1px 2px #0003;text-shadow:0 1px 0 rgba(255,255,255,.4)}.pill.confirmed{color:#f4ecd8;border-color:#2d4a18;background:linear-gradient(180deg,#5a7a3a,#3d5a26);text-shadow:0 1px 1px rgba(0,0,0,.5);box-shadow:inset 0 1px #ffffff40,0 2px 3px #00000059}.pill.cancelled{color:#f4ecd8;border-color:#5a0e0e;background:linear-gradient(180deg,#a32020,#6b1818);text-shadow:0 1px 1px rgba(0,0,0,.5);box-shadow:inset 0 1px #ffffff40,0 2px 3px #00000059}.pill.tentative{color:#f4ecd8;border-color:#6b4a18;background:linear-gradient(180deg,#b58a2a,#8a6818);text-shadow:0 1px 1px rgba(0,0,0,.5);box-shadow:inset 0 1px #ffffff40,0 2px 3px #00000059}.dashboard-controls{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.dashboard-controls .filter-inline{margin-left:auto}.dashboard-controls .quest-filter,.dashboard-controls .view-tabs{margin-bottom:0}.filter-trigger{display:none;align-items:center;gap:6px;background:linear-gradient(180deg,#2c2218,var(--bg));border:1px solid var(--border-dark);color:var(--text);padding:8px 14px;border-radius:var(--radius);font-family:var(--serif-display);font-size:.8rem;letter-spacing:1px;text-transform:uppercase;box-shadow:inset 0 1px 2px #0000004d}.filter-trigger:hover{background:linear-gradient(180deg,#34281d,#1f1812);color:var(--accent-soft)}.filter-trigger-label{display:inline}@media(max-width:640px){.dashboard-controls .filter-inline{display:none}.filter-trigger{display:inline-flex}.dashboard-controls .filter-inline{margin-left:0}.dashboard-controls{justify-content:space-between}}.tabs.tabs-vertical{flex-direction:column;align-items:stretch;gap:4px}.tabs.tabs-vertical .tab{text-align:left;display:flex;justify-content:space-between;align-items:center}.tabs{display:flex;gap:4px;flex-wrap:wrap;background:var(--paper-2);border:1px solid var(--paper-edge);border-radius:var(--radius);padding:4px;margin-bottom:14px;box-shadow:inset 0 1px 2px #00000026}.tab{background:transparent;border:none;color:var(--ink-muted);padding:6px 14px;border-radius:3px;font-family:var(--serif-display);text-transform:uppercase;letter-spacing:.7px;font-size:.8rem}.tab:hover{color:var(--ink);background:#b8996833}.tab.active{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px #0003}.tab-count{display:inline-block;margin-left:6px;background:#2b1d101a;border:1px solid var(--paper-edge);border-radius:999px;padding:0 8px;font-size:.7rem;color:var(--ink-muted);font-family:var(--serif-body);letter-spacing:0}.tab.active .tab-count{color:var(--ink);border-color:var(--ink-muted);background:#2b1d100f}.dashboard-hero{min-height:60vh;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:12px}@media(max-width:640px){.dashboard-hero{min-height:38vh}}.tavern-greeting{text-align:center;margin:8px 0 22px}.tavern-greeting-title{font-family:var(--serif-decorative);font-size:clamp(1.7rem,3.6vw,2.6rem);letter-spacing:4px;margin:0 0 4px;color:#f4e2b5;text-shadow:0 2px 6px rgba(0,0,0,.95),0 0 20px rgba(0,0,0,.85),0 0 50px rgba(180,100,40,.35)}.tavern-greeting-sub{font-family:var(--serif-body);font-style:italic;font-size:clamp(.9rem,1.4vw,1.05rem);color:var(--text);text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 12px rgba(0,0,0,.7);opacity:.94}.quest-filter{display:inline-flex;align-items:stretch;gap:0;background:linear-gradient(180deg,#2c2218,var(--bg));border:1px solid var(--border-dark);border-radius:var(--radius);margin-bottom:16px;box-shadow:inset 0 1px 2px #0006,0 1px 2px #0000004d;overflow:hidden}.quest-filter label{display:inline-flex;align-items:center;font-family:var(--serif-display);font-size:.72rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent-soft);padding:0 12px;background:#00000040;border-right:1px solid var(--border-dark);text-shadow:0 1px 2px rgba(0,0,0,.5)}.quest-filter select{background:transparent;border:none;color:var(--text);font-family:var(--serif-display);font-size:.85rem;letter-spacing:.8px;padding:8px 32px 8px 12px;width:auto;min-width:180px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M1 3 L5 7 L9 3' stroke='%23e8d9b5' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.quest-filter select:hover{color:var(--accent-soft)}.quest-filter select:focus{outline:none;background-color:#f4d4cc0d}.quest-filter select option{background:var(--panel);color:var(--text);font-family:var(--serif-body)}.view-tabs{display:inline-flex;background:linear-gradient(180deg,#2a1f15,#1a130d);border:1px solid var(--border-dark);border-radius:var(--radius);padding:4px;margin-bottom:16px;box-shadow:inset 0 1px 2px #0006}.view-tab{background:transparent;border:none;color:var(--muted);padding:8px 22px;border-radius:3px;font-family:var(--serif-display);font-size:.85rem;letter-spacing:1px;text-transform:uppercase}.view-tab:hover{color:var(--text);background:#f4d4cc0f}.view-tab.active{background:var(--accent);color:#f4ecd8;box-shadow:inset 0 1px #fff3,0 1px 3px #0006}.view-tab.active:hover{background:var(--accent-hover)}.view-pane{animation:view-in .22s ease-out}@keyframes view-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.cal{background-color:var(--paper);background-image:var(--noise),radial-gradient(ellipse 120% 80% at 0% 0%,rgba(150,110,55,.14) 0%,transparent 45%),radial-gradient(ellipse 120% 80% at 100% 100%,rgba(150,110,55,.16) 0%,transparent 50%),linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);background-blend-mode:multiply,normal,normal,normal;color:var(--ink);border:1px solid var(--paper-edge);border-radius:var(--radius);padding:12px;overflow:hidden;box-shadow:0 4px 12px #0000004d,inset 0 1px #ffffff4d,inset 0 0 32px #78501e14}.cal-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.cal-month{font-weight:600;min-width:9em;text-align:center;font-family:var(--serif-display);letter-spacing:1px;text-transform:uppercase;color:var(--ink)}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--paper-edge);border:1px solid var(--paper-edge);border-radius:3px;overflow:hidden}.cal-dow-row{background:var(--paper-edge)}.cal-dow{background:#c4a872;color:var(--ink-muted);text-transform:uppercase;font-size:.7rem;letter-spacing:1px;font-family:var(--serif-display);padding:6px 8px;text-align:center}.cal-cell{background:var(--paper);min-height:96px;padding:4px 6px 6px;display:flex;flex-direction:column;gap:4px;position:relative}.cal-cell.out{background:#c8ad78}.cal-cell.out .cal-date{color:#8c7240}.cal-cell.past .cal-date{color:var(--ink-faint)}.cal-cell.today{background:#efd6a4;box-shadow:inset 0 0 0 2px var(--accent)}.cal-cell.today .cal-date{color:var(--accent);font-weight:700}.cal-date{font-size:.8rem;color:var(--ink);font-family:var(--serif-display)}.cal-chips{display:flex;flex-direction:column;gap:2px;min-width:0}.cal-chip{display:flex;gap:6px;align-items:baseline;background:#ffffff73;border:1px solid var(--paper-edge);border-left:3px solid var(--ink-muted);color:var(--ink);padding:2px 6px;border-radius:2px;text-align:left;font-size:.75rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;font-family:var(--serif-body);letter-spacing:0;text-transform:none}.cal-chip:hover{background:#ffffffb3}.cal-chip.confirmed{border-left-color:var(--good);background:var(--good-soft)}.cal-chip.tentative{border-left-color:var(--warn);background:var(--warn-soft)}.cal-chip.cancelled{border-left-color:var(--bad);opacity:.55;text-decoration:line-through}.cal-chip.unanswered:after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:auto;flex-shrink:0}.cal-chip-time{color:var(--ink-muted);flex-shrink:0}.cal-chip-name{overflow:hidden;text-overflow:ellipsis;min-width:0}.cal-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:.75rem;color:var(--ink-muted)}.cal-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:middle}.cal-legend .dot.confirmed{background:var(--good)}.cal-legend .dot.tentative{background:var(--warn)}.cal-legend .dot.cancelled{background:var(--bad)}.cal-legend .dot.unanswered{background:var(--accent)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0703a6;z-index:200;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:drawer-fade .18s ease-out}.drawer{position:absolute;top:0;bottom:0;width:min(340px,88vw);background:linear-gradient(180deg,#2c2218,#1a130d);background-image:var(--noise-dark),linear-gradient(180deg,#2c2218,#1a130d);background-blend-mode:multiply,normal;display:flex;flex-direction:column;box-shadow:0 0 40px #000000b3;color:var(--text)}.drawer-left{left:0;border-right:1px solid var(--border-dark);animation:drawer-slide-left .22s ease-out}.drawer-right{right:0;border-left:1px solid var(--border-dark);animation:drawer-slide-right .22s ease-out}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border-dark);background:#00000040}.drawer-title{font-family:var(--serif-display);letter-spacing:1.5px;text-transform:uppercase;font-size:.85rem;color:var(--accent-soft)}.drawer-close{background:none;border:none;color:var(--muted);font-size:1.4rem;line-height:1;padding:4px 10px;text-transform:none;letter-spacing:0;font-family:var(--serif-body)}.drawer-close:hover{color:var(--text);background:transparent}.drawer-body{padding:18px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:18px}.drawer-section{display:flex;flex-direction:column;gap:8px}.drawer-section-label{font-family:var(--serif-display);font-size:.7rem;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}.drawer-user{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border-dark);border-radius:var(--radius);background:#00000026;text-decoration:none;color:var(--text)}.drawer-user:hover{background:#f4d4cc0d;text-decoration:none}.drawer-user-name{font-family:var(--serif-display);font-size:1rem;letter-spacing:.6px}.drawer-user-email{font-size:.8rem}.drawer-nav{display:flex;flex-direction:column;gap:2px}.drawer-nav a{display:block;padding:12px 14px;border-radius:var(--radius);font-family:var(--serif-display);font-size:.95rem;letter-spacing:.8px;color:var(--text);text-decoration:none;border:1px solid transparent}.drawer-nav a:hover{background:#f4d4cc0f;border-color:var(--border-dark);color:var(--accent-soft);text-decoration:none}.drawer-footer{margin-top:auto;padding-top:14px;border-top:1px solid var(--border-dark)}.drawer-footer button{width:100%}@keyframes drawer-fade{0%{opacity:0}to{opacity:1}}@keyframes drawer-slide-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes drawer-slide-right{0%{transform:translate(100%)}to{transform:translate(0)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,#0a060299,#0a0602d9);display:grid;place-items:center;padding:40px 20px;z-index:100;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.modal{position:relative;background-color:var(--paper);background-image:var(--noise),radial-gradient(ellipse 120% 80% at 0% 0%,rgba(150,110,55,.16) 0%,transparent 45%),radial-gradient(ellipse 120% 80% at 100% 100%,rgba(150,110,55,.18) 0%,transparent 50%),linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);background-blend-mode:multiply,normal,normal,normal;color:var(--ink);border:1px solid var(--paper-edge);border-radius:var(--radius);width:min(500px,100%);max-height:90vh;overflow:auto;box-shadow:0 0 0 1px #b8996866,0 24px 64px #000000b3,inset 0 1px #ffffff59,inset 0 0 36px #78501e14}.modal:before,.modal:after{content:"";position:absolute;left:-8px;right:-8px;height:14px;background:linear-gradient(180deg,#5a3f1f,#2d1f10,#5a3f1f);border:1px solid #2d1f10;border-radius:7px;box-shadow:inset 0 1px #ffc88c40,0 2px 4px #00000080}.modal:before{top:-7px}.modal:after{bottom:-7px}.modal a{color:var(--accent)}.modal .muted{color:var(--ink-muted)}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:14px 16px;border-bottom:1px dashed var(--paper-edge)}.modal-header button{background:none;border:none;color:var(--ink-muted);font-size:1.4rem;line-height:1;padding:0;cursor:pointer;font-family:var(--serif-body)}.modal-header button:hover{color:var(--ink)}.modal-body{padding:14px 16px;display:flex;flex-direction:column;gap:10px}table{width:100%;border-collapse:collapse}th,td{padding:8px 10px;border-bottom:1px dashed var(--paper-edge);text-align:left;vertical-align:top}th{color:var(--ink-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.7px;font-family:var(--serif-display)}.empty{padding:32px;text-align:center;color:var(--ink-muted);font-style:italic}.grouped-list{display:flex;flex-direction:column;gap:22px}.group{display:flex;flex-direction:column;gap:8px}.group-header{margin:0;font-size:.75rem;font-family:var(--serif-display);font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--accent-soft);display:flex;align-items:center;gap:10px}.group-header:after{content:"";flex:1;border-bottom:1px solid var(--border-dark)}.group-count{background:var(--panel);border:1px solid var(--border-dark);border-radius:999px;padding:0 8px;color:var(--muted);font-size:.7rem;font-weight:500;letter-spacing:0;font-family:var(--serif-body)}.session-row{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:0;padding:0;overflow:hidden;align-items:stretch;transition:background-color .15s,border-color .15s,box-shadow .15s}.session-row.status-confirmed{background-image:radial-gradient(ellipse 120% 80% at 0% 0%,rgba(74,107,58,.18) 0%,transparent 45%),radial-gradient(ellipse 120% 80% at 100% 100%,rgba(74,107,58,.22) 0%,transparent 50%),linear-gradient(180deg,#e6e8c8,#d8dcb0);border-color:#8a9c5a}.session-row.status-confirmed .date-pill{background:#d8dcb0;border-right-color:#8a9c5a}.session-row.status-confirmed .vote-stack{border-left-color:#8a9c5a}.session-row.status-confirmed .history-tally{background:#d8dcb0;border-left-color:#8a9c5a}.session-row.status-cancelled{opacity:.65}.date-pill{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--paper-2);border-right:1px solid var(--paper-edge);padding:12px 6px;text-align:center;min-width:76px;-webkit-user-select:none;user-select:none;font-family:var(--serif-display)}.dp-dow{font-size:.7rem;font-weight:600;letter-spacing:1.4px;color:var(--ink-muted)}.dp-day{font-size:1.9rem;line-height:1.1;font-weight:700;color:var(--ink);font-family:var(--serif-display)}.dp-mon{font-size:.7rem;font-weight:600;letter-spacing:1.4px;color:var(--ink-muted)}.date-pill.today{background:linear-gradient(180deg,#e8c0a8,#d4a890);box-shadow:inset 3px 0 0 var(--accent)}.date-pill.today .dp-day{color:var(--accent)}.date-pill.today .dp-dow,.date-pill.today .dp-mon{color:#6b1818}.session-body{padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}.when-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.when-line .time{font-weight:600;font-size:1.05rem;color:var(--ink);font-family:var(--serif-display);letter-spacing:.5px}.session-body .meta{color:var(--ink-muted);font-size:.85rem}.session-body .responses{margin-top:6px}.owner-controls{margin-top:8px}.session-body-btn{background:none;border:none;text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;font-family:var(--serif-body);text-transform:none;letter-spacing:0}.session-body-btn:hover{background:#2b1d100a}.player-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:6px;font-size:.85rem}.tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.75rem;font-weight:500;border:1px solid var(--paper-edge);background:#fff6;color:var(--ink);font-family:var(--serif-body);letter-spacing:0;text-transform:none}.tag.yes-tag{color:#2d5a1a;border-color:#6b8a4a;background:var(--good-soft)}.history-tally{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:12px 18px;border-left:1px solid var(--paper-edge);background:#b8996826;font-size:.85rem;min-width:110px;font-family:var(--serif-body);text-transform:none;letter-spacing:0}.history-tally .ht-yes{color:#2d5a1a}.history-tally .ht-maybe{color:#6b4a18}.history-tally .ht-no{color:#6b1818}.vote-stack{display:grid;grid-template-columns:repeat(3,70px);border-left:1px solid var(--paper-edge);align-self:stretch}.vote-box{border:none;border-radius:0;background:#b899681f;color:var(--ink-muted);font-weight:600;font-size:.75rem;letter-spacing:1px;text-transform:uppercase;font-family:var(--serif-display);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;transition:background-color .12s,color .12s,transform .06s;position:relative;padding:8px 4px}.vote-box+.vote-box{border-left:1px solid var(--paper-edge)}.vote-box:hover{background:#b8996847;color:var(--ink)}.vote-box:active{transform:scale(.97)}.vb-label{font-size:.72rem;line-height:1;letter-spacing:1px}.vb-count{font-size:1.2rem;font-weight:700;letter-spacing:0;line-height:1;font-family:var(--serif-body);opacity:.75}.vote-box.yes.active{background:var(--good);color:#f4ecd8;box-shadow:inset 0 1px #fff3}.vote-box.no.active{background:var(--bad);color:#f4ecd8;box-shadow:inset 0 1px #fff3}.vote-box.maybe.active{background:var(--warn);color:#f4ecd8;box-shadow:inset 0 1px #fff3}.vote-box.active .vb-count{opacity:1}.vote-box.dim{color:var(--ink-faint)}.vote-box.dim .vb-count{opacity:.45}.vote-box.dim:hover{color:var(--ink)}.vote-stack.unanswered .vote-box.yes{color:#2d5a1a}.vote-stack.unanswered .vote-box.maybe{color:#6b4a18}.vote-stack.unanswered .vote-box.no{color:#6b1818}.vote-stack.unanswered .vote-box:after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:currentColor;opacity:.3;animation:vote-prompt 1.8s ease-in-out infinite}@keyframes vote-prompt{0%,to{opacity:.15}50%{opacity:.5}}.modal-vote{display:flex;justify-content:center}.modal-vote .vote-stack{border-left:none;border:1px solid var(--paper-edge);border-radius:var(--radius);overflow:hidden;grid-template-columns:repeat(3,minmax(72px,1fr));width:100%}.modal-vote .vote-box{padding:14px 0}.responses{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.responses .resp{font-size:.7rem;padding:1px 8px;border-radius:999px;border:1px solid var(--paper-edge);background:#fff6;font-family:var(--serif-body)}.responses .resp.yes{color:#2d5a1a;border-color:#6b8a4a;background:var(--good-soft)}.responses .resp.no{color:#6b1818;border-color:#a85050;background:var(--bad-soft)}.responses .resp.maybe{color:#6b4a18;border-color:#b89568;background:var(--warn-soft)}@media(max-width:640px){.cal-cell{min-height:64px;padding:2px 3px 4px}.cal-chip-name{display:none}.cal-chip{padding:2px 4px}.session-row{grid-template-columns:60px minmax(0,1fr);grid-template-rows:auto auto}.date-pill{min-width:60px;padding:10px 4px}.dp-day{font-size:1.5rem}.vote-stack{grid-column:1 / -1;border-left:none;border-top:1px solid var(--paper-edge);grid-template-columns:repeat(3,1fr)}.vote-box{padding:12px 0}.history-tally{grid-column:1 / -1;border-left:none;border-top:1px solid var(--paper-edge);flex-direction:row;justify-content:space-around;min-width:0}}
