:root{--bg:#f3efe8;--paper:#fffcf8;--ink:#241c19;--muted:#746861;--line:#e4d9cf;--accent:#722433;--accent-ink:#fffaf7;--accent-soft:#f6e6e9;--danger:#9d1c1c;--serif:"Iowan Old Style", Palatino, Georgia, serif;--sans:"Avenir Next", "Segoe UI", system-ui, sans-serif;color:var(--ink);background:var(--bg);font-family:var(--sans);font-size:16px;line-height:1.45}*{box-sizing:border-box}body{min-height:100vh;margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--accent)}h1,h2,h3,p{margin:0}ul{margin:0;padding:0;list-style:none}.brand{font-family:var(--serif);letter-spacing:.01em;margin:0;font-size:22px}.login-screen{place-items:center;min-height:100vh;padding:24px;display:grid}.card{background:var(--paper);border:1px solid var(--line);border-radius:16px}.login-card{gap:16px;width:min(100%,380px);min-width:0;padding:28px;display:grid}.login-card h1,.later h1,.day-head h1{font-family:var(--serif);font-size:32px;font-weight:500}.field{min-width:0;color:var(--muted);gap:6px;font-size:14px;display:grid}.field input,.field select{width:100%;min-width:0;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:16px}.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M3 5.25 7 9.25 11 5.25' stroke='%23241c19' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 18px center;background-repeat:no-repeat;background-size:14px 14px;padding-right:44px}.field input:focus-visible,.field select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.primary{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:0;border-radius:10px;padding:11px 16px}a.primary{justify-content:center;justify-self:start;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.primary:disabled{opacity:.55;cursor:default}.error{color:var(--danger)}.boot,.empty{color:var(--muted);padding:24px}.shell{min-height:100vh}.topbar{z-index:2;background:color-mix(in srgb, var(--bg) 90%, white);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top);position:sticky;top:0}.topbar-inner{align-items:center;gap:24px;max-width:1080px;margin:0 auto;padding:12px 24px;display:flex}.topbar nav{flex-wrap:wrap;flex:1;gap:6px 16px;display:flex}.topbar a{color:var(--ink);text-decoration:none}.topbar a.active{color:var(--accent);text-underline-offset:5px;text-decoration:underline}.who{text-align:right}.who-name{justify-content:flex-end;align-items:center;gap:8px;display:flex}.who p{font-size:14px}.who .icon-button{width:36px;height:36px}.roles,.event-type,.event-place,.day-head p,.later p{color:var(--muted)}.roles{font-size:13px}.text-button,.quiet{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0}.page>.text-button{justify-self:start;min-height:44px}.quiet{border-radius:10px;width:36px;height:36px;font-size:24px;line-height:1}@media (hover:hover){.quiet:hover,.day:hover:not(.selected){background:var(--accent-soft)}}.content{max-width:1080px;margin:0 auto;padding:24px}.schedule{grid-template-columns:320px minmax(0,1fr);align-items:start;gap:20px;display:grid}.month,.day-list{padding:16px}.month-bar{grid-template-columns:36px 1fr 36px;align-items:center;margin-bottom:12px;display:grid}.month-bar h2{text-align:center;font-size:18px;font-weight:600}.weekdays,.days{grid-template-columns:repeat(7,1fr);display:grid}.weekdays{color:var(--muted);text-align:center;margin-bottom:4px;font-size:12px}.day{height:42px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;position:relative}.day.outside{color:var(--muted)}.day.today:not(.selected){box-shadow:inset 0 0 0 1.5px var(--accent)}.day.selected{background:var(--accent);color:var(--accent-ink)}.dot{background:currentColor;border-radius:50%;width:4px;height:4px;position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.month .text-button{margin-top:12px}.day-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.day-head h1{font-size:28px}.event{border-top:1px solid var(--line);border-left:3px solid var(--accent);grid-template-columns:118px minmax(0,1fr);gap:12px;padding:12px 4px 12px 12px;display:grid}.event time{font-variant-numeric:tabular-nums;color:var(--ink)}.event h3{font-size:18px;font-weight:600}.event-type{font-size:13px}.later{gap:8px;padding:8px 4px 20px;display:grid}.page{gap:16px;display:grid}.page h1,.page h2{font-family:var(--serif);font-weight:500}.page h1{font-size:32px}.page h2{font-size:22px}.form{gap:14px;max-width:520px;display:grid}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.split{grid-template-columns:minmax(0,1fr) minmax(240px,320px);align-items:start;gap:20px;display:grid}.ghost,a.ghost{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:10px;align-items:center;padding:8px 12px;text-decoration:none;display:inline-flex}.ghost:disabled{opacity:.45}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.plain-list{display:grid}.plain-list li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.icon-button{border:1px solid var(--line);background:var(--paper);width:44px;height:44px;color:var(--ink);border-radius:12px;flex:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.icon-button svg{width:20px;height:20px}.role-toggle{border:1px solid var(--line);min-height:44px;color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;padding:8px 14px}.role-toggle.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.danger{background:var(--danger);color:var(--accent-ink);cursor:pointer;border:0;border-radius:10px;min-height:44px;padding:8px 14px}.confirm{gap:10px;max-width:520px;display:grid}.muted{color:var(--muted)}.event-title{color:inherit;font-size:18px;font-weight:600;text-decoration:none;display:block}.room-pick{margin-top:16px}.room-day{background:var(--bg);border-radius:12px;gap:8px;padding:16px;display:grid}.room-day h2{font-size:18px}.room-day li{border-top:1px solid var(--line);gap:2px;padding:8px 0;display:grid}.room-day time{font-variant-numeric:tabular-nums}.user-card{gap:10px;max-width:640px;padding:16px;display:grid}.link-row{gap:8px;display:flex}.link-row input{flex:1}@media (width<=800px){.topbar-inner{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand who""nav nav";align-items:center;gap:0 12px;padding:8px 16px 0;display:grid}.topbar .brand{grid-area:brand;font-size:20px}.who{text-align:right;grid-area:who;align-items:center;gap:8px;display:flex}.who-name{min-width:0}.who-name p{text-overflow:ellipsis;white-space:nowrap;max-width:34vw;overflow:hidden}.who .icon-button{width:44px;height:44px}.roles{display:none}.who .text-button{min-height:44px;padding:8px 0 8px 8px}.topbar nav{scrollbar-width:none;flex-wrap:nowrap;grid-area:nav;gap:18px;margin:0 -16px;padding:0 16px 8px;overflow-x:auto}.topbar nav::-webkit-scrollbar{display:none}.topbar a{flex:none;align-items:center;min-height:44px;display:inline-flex}.content{padding:12px 12px calc(16px + env(safe-area-inset-bottom))}.schedule{grid-template-columns:1fr;gap:12px}.month,.day-list{padding:12px}.day{height:44px}.day-head h1{font-size:22px}.event{grid-template-columns:104px minmax(0,1fr);gap:8px;padding-right:0}.login-card h1,.page h1{font-size:28px}.split,.form-row,.plain-list li,.link-row{grid-template-columns:1fr;display:grid}.plain-list li.person-row{display:flex}}
