/* Admin: warm, quiet, thumb-sized. Mobile first (390 px), side-by-side preview from 1000 px. */
@font-face{font-family:"Playfair";src:url(/fonts/playfair-latin.woff2) format("woff2");font-weight:400 600;font-display:swap}
:root{--paper:#f5efe6;--card:#fffaf3;--ink:#221d18;--soft:#6d6257;--line:#d9cdbd;--teal:#2f6b64;--rust:#a4472f;--deep:#1F5F7A;--r:12px;color-scheme:light}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}
h1,h2{font-family:Playfair,Georgia,serif;font-weight:500;margin:0}
h1{font-size:28px}h2{font-size:20px}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--teal)}
.bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(245,239,230,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar h1{font-size:22px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--rust);background:var(--rust);color:#fff;font-weight:600;font-size:15px;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:disabled{opacity:.5}
.btn--line{background:transparent;color:var(--ink);border-color:var(--line)}
.btn--sm{min-height:36px;padding:0 12px;font-size:14px}
.btn--icon{min-height:40px;min-width:40px;padding:0;border-radius:50%}
.link{display:inline-flex;align-items:center;min-height:44px;background:none;border:0;padding:0;color:var(--teal);font-weight:600;cursor:pointer;text-decoration:none;font-size:15px}
.link--danger{color:var(--rust)}
main{padding:14px 14px 120px;max-width:760px;margin:0 auto}
.login{max-width:420px;margin:0 auto;min-height:100svh;padding:max(14vh,24px) 20px calc(24px + env(safe-area-inset-bottom));display:grid;gap:16px;align-content:start}
.login h1{font-size:34px}.login .lead{color:var(--ink);font-size:19px;line-height:1.4}
.btn--big{min-height:56px;font-size:17px;width:100%;margin-top:8px}
.hostkey{margin-top:18px;color:var(--soft)}.hostkey summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:15px;list-style:none}.hostkey summary::-webkit-details-marker{display:none}
.hostkey form{display:grid;gap:12px;margin-top:6px}
.me{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--card);border:1px solid var(--line);color:var(--ink);font-weight:700;text-decoration:none;flex:none}
.foot{margin-top:28px;color:var(--soft);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.soft{color:var(--soft);margin:0}
.keys{list-style:none;margin:0;padding:0;display:grid}
.keys li{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line)}
.keys li:first-child{border-top:0}.keys li>div{display:grid;gap:2px;min-width:0}.keys small{color:var(--soft);font-size:13px}
.person{display:grid;gap:4px;padding:12px 0;border-top:1px solid var(--line)}.person:first-of-type{border-top:0;padding-top:0}.person h3{margin:0;font-size:17px;flex:1}
.person .acts{display:flex;gap:18px}
.linkbox{display:grid;gap:8px;background:var(--paper);border-radius:10px;padding:12px}.linkbox code{font-size:13px;word-break:break-all}.linkbox small{color:var(--soft)}
.edacts{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.login p{margin:0;color:var(--soft)}
.fld{display:grid;gap:6px}
.fld>span{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.in{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
textarea.in{min-height:96px;resize:vertical;line-height:1.45}
.in:focus{outline:2px solid var(--teal);outline-offset:0;border-color:transparent}
.err{color:var(--rust);margin:0;font-size:15px}
.tabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 14px;padding-bottom:2px}
.tabs button{border:1px solid var(--line);background:var(--card);border-radius:999px;min-height:40px;padding:0 14px;font-size:14px;cursor:pointer;white-space:nowrap}
.tabs button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.list{display:grid;gap:10px;list-style:none;padding:0;margin:0}
.ev{display:grid;grid-template-columns:64px 1fr;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px}
.ev__img{width:64px;height:64px;border-radius:8px;background:#e9dfd1 center/cover;}
.ev h2{font-size:18px;line-height:1.2}
.ev .meta{font-size:14px;color:var(--soft);margin:2px 0 6px}
.ev .acts{display:flex;gap:16px;margin-top:4px}
.badges{display:flex;flex-wrap:wrap;gap:4px}
.b{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:999px;border:1px solid var(--line);color:var(--soft)}
.b--public{background:#e3efe9;border-color:#b9d4c8;color:#24544e}.b--private{background:#f6e2da;border-color:#e2b9a9;color:#8d3b26}
.b--unlisted{background:#e7ecf1;border-color:#c1ceda;color:#35546b}.b--draft{background:#efe8dc;border-style:dashed}
.b--site{border:0;padding-left:0;color:var(--soft)}
.sheet{position:fixed;inset:0;z-index:40;background:rgba(34,29,24,.45);display:flex;align-items:flex-end;justify-content:center}
.sheet__p{background:var(--paper);width:100%;max-width:560px;max-height:92svh;overflow:auto;border-radius:18px 18px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));display:grid;gap:14px}
.sheet__h{display:flex;justify-content:space-between;align-items:center}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.choice{display:grid;gap:2px;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:12px;cursor:pointer;min-height:56px}
.choice[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.choice small{color:var(--soft)}
/* editor */
.mode{display:flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--card)}
.mode button{border:0;background:none;border-radius:999px;min-height:34px;padding:0 14px;font-size:14px;font-weight:600;cursor:pointer}
.mode button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.ed{display:grid;gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:grid;gap:12px}
.card__h{display:flex;align-items:center;gap:6px}
.card__h h2{flex:1;font-size:18px}
.card__h .n{font:600 12px/1 system-ui;color:var(--soft);letter-spacing:.06em;text-transform:uppercase}
.row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.row2 .in{min-width:0}
@media (max-width:520px){.row2--dt{grid-template-columns:1fr}}
input[type="datetime-local"].in{-webkit-appearance:none;appearance:none;display:block}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{flex:1;border:1px solid var(--line);background:var(--paper);border-radius:10px;min-height:44px;padding:0 10px;font-weight:600;cursor:pointer;font-size:15px}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.chk{display:flex;align-items:center;gap:10px;min-height:44px}
.chk input{width:20px;height:20px;accent-color:var(--teal)}
.rows{display:grid;gap:8px}
.rowi{border:1px dashed var(--line);border-radius:10px;padding:10px;display:grid;gap:8px;position:relative}
.rowi__h{display:flex;justify-content:flex-end;gap:4px;margin:-4px -4px 0 0}
.imgf{display:flex;align-items:center;gap:10px}
.imgf .th{width:64px;height:64px;border-radius:8px;background:#e9dfd1 center/cover;flex:none;border:1px solid var(--line)}
.imgs{display:flex;flex-wrap:wrap;gap:8px}
.imgs .th{width:64px;height:64px;border-radius:8px;background:#e9dfd1 center/cover;position:relative}
.imgs .th button{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:50%;border:0;background:var(--ink);color:#fff;font-size:13px;cursor:pointer}
.lib{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.lib button{aspect-ratio:1;border:0;border-radius:8px;background:#e9dfd1 center/cover;cursor:pointer;padding:0}
.lib button[aria-pressed="true"]{outline:3px solid var(--teal);outline-offset:1px}
.focal{position:relative;border-radius:10px;overflow:hidden;cursor:crosshair}
.focal img{display:block;width:100%;height:auto}
.focal i{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px var(--ink);pointer-events:none}
.upl{display:flex;align-items:center;gap:10px;color:var(--soft);font-size:14px}
.code{font:600 18px/1 ui-monospace,monospace;letter-spacing:.12em}
.share{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:14px;color:var(--soft)}
.share code{background:var(--paper);padding:4px 8px;border-radius:6px;font-size:13px;word-break:break-all}
.add{display:flex;gap:8px}
.add select{flex:1}
.pv{display:none}
.pv iframe{width:100%;height:calc(100svh - 64px);border:0;background:#fff;display:block}
body.show-pv .ed{display:none}body.show-pv .pv{display:block;margin:-14px -14px 0}
.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:999px;font-size:14px;z-index:60}
.savebar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:rgba(245,239,230,.96);border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:flex;gap:10px;align-items:center}
.savebar .st{flex:1;font-size:14px;color:var(--soft)}
@media (min-width:1000px){
  main.wide{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) 410px;gap:24px;align-items:start}
  .mode{display:none}
  body.show-pv .ed{display:grid}
  .pv{display:block;position:sticky;top:76px}
  body.show-pv .pv{margin:0}
  .pv iframe{width:390px;height:calc(100vh - 100px);border:10px solid var(--ink);border-radius:34px}
}
/* Sign-up style + Sign-ups list */
/* "How do people sign up?": big cards, nothing picked until Mayi picks */
.choose h2{font-size:21px}
.choose__lead{font-size:16px}
.styles{display:grid;gap:10px}
.style{display:grid;grid-template-columns:28px 1fr 104px;gap:12px;align-items:center;text-align:left;width:100%;min-height:88px;padding:14px 12px;border:2px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.style:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.style__dot{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);background:#fff;display:grid;place-items:center}
.style__txt{display:grid;gap:3px}.style__txt b{font-size:18px;line-height:1.25}.style__txt span{font-size:15px;color:var(--soft);line-height:1.35}
.style[aria-checked="true"]{border-color:var(--teal);background:#eef5f2;box-shadow:0 0 0 1px var(--teal)}
.style[aria-checked="true"] .style__dot{border-color:var(--teal);background:var(--teal)}
.style[aria-checked="true"] .style__dot::after{content:"";width:8px;height:13px;border:solid #fff;border-width:0 3px 3px 0;transform:translateY(-2px) rotate(45deg)}
.mini{display:grid;gap:4px;padding:7px;border-radius:9px;background:var(--paper);border:1px solid var(--line);font-size:9.5px;line-height:1.2;align-self:center}
.mini small{font-size:8.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);font-weight:700}
.mini i{font-style:normal;display:block}
.mf{border:1px solid var(--line);background:#fff;border-radius:4px;padding:2px 4px;color:#a59a8d;min-height:13px}.mf--tall{min-height:22px}
.mb{background:var(--rust);color:#fff;border-radius:999px;padding:3px 4px;text-align:center;font-weight:700}
.mt{color:var(--ink)}.mt--links{color:var(--teal);font-weight:700;text-align:center}.mt--lock{font-weight:700}
.ml{height:5px;border-radius:3px;background:#d8cdbf}.ml--s{width:65%}
.nudge{margin:0;padding:12px 14px;border-radius:12px;background:#fbecc8;border:1px solid #e7cd8b;color:#5b400a;font-size:16px;font-weight:600;line-height:1.35}
.choose--need{border-color:#d9a640;box-shadow:0 0 0 2px #f1d58f}
.invhow{display:grid;gap:8px;padding-top:4px}.invhow__q{margin:0;font-weight:700;font-size:17px}
.seg--big button{flex:1 1 calc(50% - 6px);min-height:52px;font-size:16px;background:#fff}
.seg--big button[aria-checked="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.stylenow{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:16px}
@media (max-width:360px){.style{grid-template-columns:26px 1fr}.mini{display:none}}
.b--req{background:#fbecc8;border-color:#e7cd8b;color:#6f4f0c}
.guests{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.g{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:4px}
.g__h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.g__c{color:var(--soft);font-size:15px;word-break:break-all}.g__n{margin:4px 0 0;font-size:15px;white-space:pre-wrap}
.g__a{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px}.g__a .btn--sm{min-height:44px}.g__a .link{min-height:44px;display:inline-flex;align-items:center}
.b--g-going{background:#e3efe9;border-color:#b9d4c8;color:#24544e}.b--g-requested{background:#fbecc8;border-color:#e7cd8b;color:#6f4f0c}
.b--g-declined,.b--g-cancelled{border-style:dashed}
.hint{color:var(--soft);font-size:14px;margin:0}
