:root{--ink:#18211c;--muted:#66716b;--accent:#8b1e2d;--green:#194d3a;--cream:#f6f3ed;--card:rgba(255,255,255,.94);--line:rgba(24,33,28,.14);--shadow:0 18px 55px rgba(0,0,0,.18)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}
body.public{min-height:100vh;background:#173d30 url('/background') center/cover fixed no-repeat;padding:28px 16px 56px}.shade{position:fixed;inset:0;background:linear-gradient(180deg,rgba(8,27,21,.36),rgba(8,27,21,.22) 35%,rgba(14,21,18,.58));z-index:-1}.shell{max-width:820px;margin:0 auto}.brand{text-align:center;color:#fff;margin:16px auto 22px}.brand .strap{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;opacity:.78}.brand h1{font-family:Georgia,serif;font-size:clamp(2rem,7vw,3.2rem);margin:.35rem 0;text-shadow:0 3px 20px rgba(0,0,0,.3)}
.card{background:var(--card);border:1px solid rgba(255,255,255,.55);border-radius:20px;box-shadow:var(--shadow);padding:clamp(20px,5vw,36px);backdrop-filter:blur(9px)}.card h2{font-family:Georgia,serif;font-size:1.65rem;margin:0 0 .55rem}.lead{color:var(--muted);line-height:1.65;margin:0 0 1.5rem;white-space:pre-line}.field{margin-bottom:1.2rem}.field label,.label{display:block;font-weight:650;font-size:.9rem;margin-bottom:.45rem}.field input[type=text],.field input[type=email],.field input[type=password],textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:.8rem .9rem;font:inherit;background:#fff;color:var(--ink)}textarea{min-height:110px;resize:vertical}.check{display:flex;gap:.7rem;align-items:flex-start;border:1px solid var(--line);padding:.85rem;border-radius:10px;margin:.55rem 0;background:#fff}.check input{margin-top:.2rem;transform:scale(1.15)}.error{background:#fdebed;color:#7f1726;border:1px solid #efbdc5;padding:.8rem 1rem;border-radius:10px;margin-bottom:1rem}.notice{padding:.75rem 1rem;border-radius:10px;margin-bottom:1rem}.notice.success{background:#e9f5ee;color:#1c5c3f}.notice.warning{background:#fff3d8;color:#6a4b00}
.actions{display:flex;gap:.75rem;justify-content:space-between;margin-top:1.5rem}.btn{appearance:none;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:.78rem 1.05rem;font:inherit;font-weight:650;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.btn:hover{filter:brightness(.98)}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.danger{background:#8b1e2d;color:#fff;border-color:#8b1e2d}.btn.small{padding:.5rem .7rem;font-size:.88rem}.btn:disabled{opacity:.45;cursor:not-allowed}.progress{display:flex;gap:7px;margin:0 0 1.5rem}.progress span{height:6px;border-radius:99px;background:#d7ddd9;flex:1}.progress span.active,.progress span.done{background:var(--green)}.wizard-step{display:none}.wizard-step.active{display:block}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.availability{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--line);border-radius:12px}.availability th,.availability td{padding:.72rem;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.availability th:first-child,.availability td:first-child{text-align:left;font-weight:700}.availability tr:last-child td{border-bottom:0}.availability th:last-child,.availability td:last-child{border-right:0}.availability input{transform:scale(1.25)}.viz{height:70px;border:1px solid var(--line);border-radius:10px;background:#f3f4f1;overflow:hidden}.viz canvas{width:100%;height:70px}.timer{text-align:center;font-size:2rem;font-variant-numeric:tabular-nums;margin:1rem}.record-controls{display:flex;gap:.7rem}.record-controls .btn{flex:1}.recording{background:#fdebed!important;color:#8b1e2d!important;border-color:#e9aab4!important}.audio-preview audio{width:100%;margin-top:.8rem}.summary{background:#f6f7f5;border:1px solid var(--line);border-radius:12px;padding:1rem;margin:1rem 0}.summary p{margin:.35rem 0}.spinner{display:none;width:17px;height:17px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
body.admin{background:#f3f5f3;min-height:100vh}.admin-nav{background:#18362c;color:#fff;padding:12px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.admin-nav strong{margin-right:auto}.admin-nav a,.admin-nav button{color:#fff;background:none;border:0;font:inherit;text-decoration:none;cursor:pointer;opacity:.9}.admin-wrap{max-width:1150px;margin:28px auto;padding:0 18px}.admin-card{background:#fff;border:1px solid #dfe5e1;border-radius:14px;padding:20px;box-shadow:0 6px 24px rgba(28,48,38,.06);margin-bottom:18px}.admin-card h1,.admin-card h2{margin-top:0}.searchbar{display:flex;gap:8px}.searchbar input{flex:1;border:1px solid #ccd5d0;border-radius:9px;padding:.7rem .8rem;font:inherit}.table-wrap{overflow:auto}.records{width:100%;border-collapse:collapse;font-size:.92rem}.records th,.records td{text-align:left;padding:.75rem;border-bottom:1px solid #e4e9e6;vertical-align:top}.records th{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:#65716a}.records tr:hover td{background:#fafcfa}.kv{display:grid;grid-template-columns:180px 1fr;gap:.45rem .9rem}.kv dt{font-weight:700;color:#59665f}.kv dd{margin:0}.admin-audio audio{width:100%;max-width:620px}.content-row{border-bottom:1px solid #e3e8e5;padding:14px 0}.content-row:last-child{border-bottom:0}.content-row label{font-weight:700;display:block;margin-bottom:6px}.content-row textarea{min-height:78px}.background-preview{min-height:360px;border-radius:15px;background-position:center;background-size:cover;position:relative;overflow:hidden;border:1px solid #d6ddd9}.background-preview:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,27,21,.18),rgba(8,27,21,.5))}.background-preview .sample{position:relative;z-index:1;width:min(520px,90%);margin:60px auto;background:rgba(255,255,255,.94);padding:24px;border-radius:16px;text-align:center}.muted{color:#6c7871}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:720px){.option-grid,.split{grid-template-columns:1fr}.availability th,.availability td{padding:.52rem .3rem;font-size:.83rem}.actions{flex-wrap:wrap}.actions .btn{flex:1}.kv{grid-template-columns:1fr}.admin-nav strong{width:100%}}
.login-card{max-width:540px;margin:auto}.full{width:100%}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.hint{color:var(--muted);font-size:.83rem;margin-top:.35rem;line-height:1.45}.field select,.field input[type=file],.field input[type=number],select{width:100%;border:1px solid var(--line);border-radius:10px;padding:.8rem .9rem;font:inherit;background:#fff;color:var(--ink)}.table-scroll{overflow-x:auto}.public-summary{display:grid;grid-template-columns:minmax(170px,220px) 1fr;gap:.65rem 1rem;margin:1.2rem 0}.public-summary dt{font-weight:750}.public-summary dd{margin:0}.admin-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.pill{display:inline-block;padding:.22rem .5rem;border-radius:999px;background:#eef1ef;font-size:.78rem;font-weight:700}.pill.done{background:#e1f2e8;color:#155b39}.pill.blocked{background:#fdebed;color:#8b1e2d}.text-danger{color:#8b1e2d}.text-warning{color:#855e00}.audio-block{padding:10px 0;border-bottom:1px solid #e5e9e6}.audio-block:last-child{border-bottom:0}.audio-block audio{width:100%;max-width:620px}.content-group{border-top:2px solid #edf1ee;padding-top:10px;margin-top:22px}.content-group:first-of-type{border-top:0;margin-top:0}.order-input{width:90px;border:1px solid #ccd5d0;border-radius:8px;padding:.55rem;font:inherit}
.transition-layer{display:none;position:fixed;inset:0;z-index:50;pointer-events:none;overflow:hidden}.transition-layer.active{display:block;background:rgba(10,25,19,.08);backdrop-filter:blur(1px)}
.sleigh{position:absolute;top:22%;font-size:58px;white-space:nowrap;filter:drop-shadow(0 6px 6px rgba(0,0,0,.25))}.sleigh-right{left:-360px;animation:sleighRight .82s ease-in-out forwards}.sleigh-left{right:-360px;animation:sleighLeft .82s ease-in-out forwards}@keyframes sleighRight{to{left:calc(100% + 40px);transform:translateY(-34px)}}@keyframes sleighLeft{to{right:calc(100% + 40px);transform:translateY(-22px)}}
.carolers{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%) scale(.65);opacity:0;animation:carolPop .86s ease both;text-align:center;filter:drop-shadow(0 8px 8px rgba(0,0,0,.18))}.singer-row{display:flex;gap:9px;font-size:56px}.notes{position:absolute;color:#18362c;font-family:Georgia,serif;font-size:28px;font-weight:800;letter-spacing:6px;animation:notesFloat .8s ease-out forwards}.notes-a{left:-38px;top:-24px}.notes-b{right:-52px;top:4px;animation-delay:.08s}@keyframes carolPop{0%{opacity:0;transform:translate(-50%,-35%) scale(.55)}45%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes notesFloat{0%{opacity:0;transform:translateY(18px) scale(.7)}55%{opacity:1}100%{opacity:.15;transform:translateY(-36px) translateX(12px) scale(1.1)}}
.chimney-scene{position:absolute;left:50%;bottom:17%;width:126px;height:150px;transform:translateX(-50%);filter:drop-shadow(0 10px 10px rgba(0,0,0,.24))}.chimney-stack{position:absolute;left:20px;right:20px;bottom:0;height:83px;background:repeating-linear-gradient(0deg,#9b3f31 0 18px,#702a23 18px 21px);border:4px solid #5d251f;border-radius:4px}.chimney-top{position:absolute;left:10px;right:10px;bottom:76px;height:18px;background:#6f2c25;border:4px solid #51201b;border-radius:4px;z-index:3}.santa-climb{position:absolute;left:31px;bottom:52px;font-size:62px;z-index:2;animation:santaClimb .88s ease-in-out forwards}@keyframes santaClimb{0%{transform:translateY(58px) rotate(5deg);opacity:.2}48%{transform:translateY(-3px) rotate(-5deg);opacity:1}72%{transform:translateY(-17px) rotate(3deg)}100%{transform:translateY(-7px) rotate(0)}}
.tree-twinkle{position:absolute;left:50%;top:50%;font-size:100px;transform:translate(-50%,-50%);animation:treeGlow .72s ease-in-out infinite alternate;filter:drop-shadow(0 0 5px #fff)}@keyframes treeGlow{from{filter:drop-shadow(0 0 3px #fff) brightness(.9);transform:translate(-50%,-50%) scale(.9)}to{filter:drop-shadow(0 0 20px #ffd65a) brightness(1.2);transform:translate(-50%,-50%) scale(1.05)}}.skaters{position:absolute;bottom:18%;left:-180px;font-size:54px;white-space:nowrap;animation:skateAcross .82s ease-out forwards}@keyframes skateAcross{to{left:calc(100% + 20px);transform:rotate(-4deg)}}.snowflake{position:absolute;top:-40px;font-size:28px;animation:snowFall .8s linear forwards;opacity:.9}@keyframes snowFall{to{transform:translateY(110vh) rotate(180deg);opacity:.2}}
.report-filters{display:grid;grid-template-columns:2fr repeat(5,minmax(130px,1fr));gap:10px;align-items:end}.report-filters .field{margin:0}.report-actions{display:flex;gap:8px;align-items:end}.report-stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.stat-chip{background:#f2f5f3;border:1px solid #dfe5e1;border-radius:999px;padding:.4rem .72rem;font-size:.85rem}.sort-note{white-space:nowrap}
@media(max-width:980px){.report-filters{grid-template-columns:1fr 1fr 1fr}.report-filters .wide{grid-column:span 3}}
@media(max-width:720px){.two-col{grid-template-columns:1fr}.public-summary{grid-template-columns:1fr}.transition-layer .sleigh{font-size:40px}.singer-row{font-size:42px}.carolers{transform:translate(-50%,-50%) scale(.85)}.chimney-scene{transform:translateX(-50%) scale(.82)}.report-filters{grid-template-columns:1fr}.report-filters .wide{grid-column:auto}.report-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.transition-layer{display:none!important}}
.danger-zone{border-color:#e2b2b8}.danger-zone h1,.danger-zone h2{color:#7b1725}.danger-check{border-color:#e6c2c7;background:#fff8f8}
.mail-config{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 18px}.mail-config span{background:#f4f6f4;border:1px solid #dfe5e1;border-radius:9px;padding:.5rem .7rem;font-size:.86rem}.recipient-modes{display:flex;gap:10px;flex-wrap:wrap}.choice-card{border:1px solid #ccd5d0;border-radius:10px;padding:.72rem .85rem;background:#fafbfa;cursor:pointer}.choice-card:has(input:checked){border-color:#1d6a4b;background:#edf6f1}.mail-body{min-height:300px!important;font-family:inherit;line-height:1.55}.mail-actions{justify-content:flex-end;flex-wrap:wrap}.email-preview-frame{width:100%;height:660px;border:1px solid #dfe5e1;border-radius:12px;background:#f3f1ec}.recipient-preview{max-height:660px;overflow:auto}.error-log{white-space:pre-wrap;word-break:break-word;background:#fff8f8;border:1px solid #e6c2c7;padding:12px;border-radius:10px;color:#6f1c28}.checkline{display:flex;gap:.65rem;align-items:flex-start;border:1px solid #dfe5e1;border-radius:10px;padding:.8rem;margin:1rem 0;background:#fafbfa}.checkline input{margin-top:.2rem}

