:root{--bg:#140b08;--bg-2:#22140f;--paper:#f3e6c8;--ink:#2a1a12;--gold:#e0c36a;--gold-dim:#a8843a;--vermilion:#c44536;--cream:#efe2c4;--muted:#cbbba0;--nav:#1a0e0a;--nav-h:calc(82px + env(safe-area-inset-bottom,0px));--serif:"Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif;--sans:"Zen Kaku Gothic New", "Hiragino Sans", sans-serif}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);max-width:100%;min-height:100%;color:var(--cream);font-family:var(--sans);margin:0;overflow-x:hidden}#root{max-width:100%;min-height:100svh;overflow-x:hidden}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{background:radial-gradient(1200px 400px at 50% -80px,#c4453647,#0000 55%),linear-gradient(#1c100c 0%,#120a07 48%,#0d0705 100%);width:100%;min-width:0;max-width:430px;min-height:100svh;margin:0 auto;position:relative;overflow-x:hidden}.glow{pointer-events:none;background-image:radial-gradient(circle at 20% 12%,#e0c36a29,#0000 22%),radial-gradient(circle at 80% 18%,#e0c36a1f,#0000 18%);position:absolute;inset:0}main{z-index:1;padding:28px 20px 108px;position:relative;overflow-x:hidden}.page{min-width:0;max-width:100%}.page h1{font-family:var(--serif);letter-spacing:.12em;margin:0 0 8px;font-size:34px;font-weight:600}.profile-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.profile-head h1{margin-bottom:0}.profile-head .text-btn{padding-top:2px}.page h2{font-family:var(--serif);margin:28px 0 10px;font-size:18px}.kicker{color:var(--gold);letter-spacing:.42em;margin:0 0 6px;font-size:11px}.lead{color:var(--muted);margin:0 0 22px;line-height:1.7}.btn{width:100%;min-height:48px;font-family:var(--serif);letter-spacing:.18em;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;font-size:16px;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{color:#fff7ea;background:linear-gradient(#d25545,#a83328);box-shadow:0 10px 24px #c4453647}.btn.ghost{color:var(--gold);background:0 0;border-color:#e0c36a73;margin-top:10px}.text-btn{color:var(--gold);font-family:var(--serif);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.home{text-align:center;padding-top:12px}.home-torii{filter:drop-shadow(0 8px 18px #c4453659);width:168px;height:auto;margin:8px auto 10px}.lanterns{justify-content:space-between;padding:0 18px;display:flex}.lantern{background:linear-gradient(#f3d48a,#c44536 70%);border-radius:6px 6px 10px 10px;width:22px;height:34px;animation:2.8s ease-in-out infinite pulse;box-shadow:0 0 18px #e0c36a73}.lantern:last-child{animation-delay:.8s}.today-chip{border:1px solid #e0c36a59;border-radius:999px;margin:0 0 22px;padding:8px 14px;font-size:13px;display:inline-block}.today-chip.muted{color:var(--muted)}.home-actions{gap:4px;display:grid}.altar{place-items:center;min-height:280px;margin:8px 0 22px;display:grid}.omikuji-box{width:132px;position:relative}.box-top{background:#7a3a22;border:2px solid #d4a017;border-radius:6px 6px 0 0;height:22px}.sticks{background:repeating-linear-gradient(90deg,#efe2c4 0 10px,#d7c39a 10px 12px);border-inline:10px solid #6b311c;height:78px}.box-body{border:2px solid #d4a017;background:#5a2716;border-top:0;border-radius:0 0 10px 10px;height:28px}.omikuji-box.is-shake{animation:.18s linear 5 shake}.slip{cursor:pointer;border:0;width:min(100%,340px)}.slip.sealed{color:#6a4e2a;width:84px;height:168px;font-family:var(--serif);background:#ead7a8;place-items:center;animation:.7s ease-out fall;display:grid;box-shadow:0 12px 20px #00000059}.slip.sealed span{writing-mode:vertical-rl;letter-spacing:.4em}.slip.open{cursor:default;color:var(--ink);text-align:left;background:linear-gradient(#f7edd4,#ead6ae);padding:22px 18px 18px;animation:.45s open;box-shadow:0 16px 32px #00000059}.slip .rank{font-family:var(--serif);text-align:center;letter-spacing:.2em;margin:0 0 12px;font-size:42px}.rank-daikichi .rank{color:#9a3b16}.rank-chukichi .rank{color:#b15a1a}.rank-kyo .rank{color:#3d4a6b}.slip dl{gap:12px;margin:0;display:grid}.slip dt{font-family:var(--serif);color:var(--vermilion);letter-spacing:.2em;font-size:13px}.slip dd{margin:4px 0 0;font-size:14px;line-height:1.7}.advice{border-top:1px solid #7a3a2240;margin:16px 0 0;padding-top:12px;font-size:14px;line-height:1.7}.chat{flex-direction:column;min-height:calc(100svh - 140px);display:flex}.shell.is-chat{height:100svh;overflow:hidden}.shell.is-chat main{flex-direction:column;height:100%;min-height:0;padding:16px 12px 0;display:flex;overflow:hidden}.shell.is-chat .chat{min-height:0;padding-bottom:var(--nav-h);flex:1}.shell.is-chat .transcript{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#e0c36a66 transparent;min-height:0;padding:8px 10px 16px 0;overflow-y:auto}.transcript::-webkit-scrollbar{width:8px}.transcript::-webkit-scrollbar-track{background:0 0}.transcript::-webkit-scrollbar-thumb{background:#e0c36a59;border-radius:999px}.chat-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:8px;display:flex}.chat-head h1{margin-bottom:0}.chat-head-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px 10px;display:flex}.chat-head-actions .text-btn.is-on{color:var(--cream)}.notice{color:var(--muted);border:1px solid #e0c36a4d;margin:0 0 12px;padding:10px 12px;font-size:12px;line-height:1.6}.notice code{color:var(--gold);font-size:12px}.notice.warn{color:#f3c7c0;border-color:#c445368c}.muted{color:var(--muted);font-size:13px}.muted a{color:var(--gold);word-break:break-all}.transcript{flex-direction:column;flex:1;gap:10px;padding:8px 0 16px;display:flex}.bubble{max-width:88%;margin:0;padding:8px 12px;font-size:14px;line-height:1.7}.bubble p{white-space:pre-wrap;margin:0}.bubble-photo{object-fit:cover;border-radius:12px;width:min(220px,100%);max-height:240px;margin-bottom:6px;display:block}.bubble.assistant{background:#f3e6c81a;border:1px solid #e0c36a38;border-radius:4px 16px 16px;align-self:flex-start}.bubble.user{background:#c4453638;border:1px solid #c4453659;border-radius:16px 4px 16px 16px;align-self:flex-end;margin-right:2px}.bubble.typing{gap:6px;width:58px;display:flex}.bubble.typing span{background:var(--gold);border-radius:50%;width:7px;height:7px;animation:1.1s infinite blink}.bubble.typing span:nth-child(2){animation-delay:.15s}.bubble.typing span:nth-child(3){animation-delay:.3s}.composer-dock{background:#120a07;border-top:1px solid #e0c36a29;flex-shrink:0;margin:auto -12px 0;padding:8px 10px 10px}.composer-preview{border:1px solid #e0c36a40;border-radius:12px;align-items:flex-end;gap:10px;margin:0 0 8px;padding:8px;display:flex}.composer-preview img{object-fit:cover;border-radius:10px;width:72px;height:72px}.composer{align-items:flex-end;gap:6px;display:flex}.composer textarea{min-width:0;min-height:36px;max-height:120px;color:var(--cream);font-family:var(--sans);resize:none;background:#f3e6c81a;border:0;border-radius:18px;flex:1;margin:0;padding:8px 14px;font-size:15px;line-height:1.4;overflow-y:auto}.composer textarea:focus{outline:1px solid #e0c36a73}.composer-icon,.composer-send{width:36px;height:36px;color:var(--gold);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:0 0 36px;place-items:center;display:grid}.composer-icon:disabled,.composer-send:disabled{opacity:.35;cursor:default}.composer-icon.is-listening{color:var(--cream);background:#c4453666;animation:1.2s ease-in-out infinite mic-pulse}.composer-send{background:var(--vermilion);color:var(--cream)}.composer-send:disabled{background:#c4453647}@keyframes mic-pulse{0%{box-shadow:0 0 #c4453673}to{box-shadow:0 0 0 10px #c4453600}}.fortune-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.fortune-list button{text-align:left;width:100%;color:var(--cream);cursor:pointer;background:#f3e6c814;border:1px solid #e0c36a33;gap:12px;padding:12px;display:flex}.fortune-list strong{font-family:var(--serif);display:block}.fortune-list em{color:var(--muted);white-space:pre-wrap;margin-top:4px;font-size:13px;font-style:normal;line-height:1.6;display:block}.mini-rank{height:52px;font-family:var(--serif);background:var(--paper);color:#9a3b16;flex:0 0 52px;place-items:center;display:grid}.mini-rank.is-wide{text-align:center;flex:none;min-width:52px;max-width:88px;padding:0 6px;font-size:13px;line-height:1.25}.chat-preview{color:var(--muted);line-height:1.7}.chat-preview .text-btn{margin-top:8px;display:block}.history-day{margin:0 0 18px}.history-day h3{font-family:var(--serif);color:var(--gold);letter-spacing:.08em;margin:0 0 8px;font-size:15px;font-weight:600}.history-chat-photo{object-fit:cover;border-radius:10px;width:min(160px,100%);max-height:120px;margin:8px 0 0;display:block}.empty{color:var(--muted)}.nav{width:min(430px,100%);padding:4px 6px calc(8px + env(safe-area-inset-bottom));z-index:5;background:#100806f0;border-top:1px solid #e0c36a38;flex-direction:column;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-sound{justify-content:flex-end;padding:0 8px 2px;display:flex}.sound-toggle{color:var(--muted);font-family:var(--serif);letter-spacing:.12em;cursor:pointer;background:0 0;border:0;min-height:28px;font-size:12px}.sound-toggle.is-on{color:var(--gold)}.nav-items{grid-template-columns:repeat(4,1fr);display:grid}.nav-items button,.nav-items a{color:var(--muted);font-family:var(--serif);letter-spacing:.12em;cursor:pointer;background:0 0;border:0;place-items:center;min-height:44px;font-size:13px;text-decoration:none;display:grid}.nav-items button.is-active,.nav-items a.is-active{color:var(--gold)}@keyframes shake{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}@keyframes fall{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}@keyframes open{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{filter:brightness()}50%{filter:brightness(1.25)}}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}@media (width>=431px){.shell{box-shadow:0 0 80px #00000073}}.menu-grid{text-align:left;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.menu-tile{min-height:76px;color:var(--cream);text-align:left;cursor:pointer;font-family:var(--serif);background:#f3e6c80f;border:1px solid #e0c36a47;padding:12px 14px}.menu-tile strong{letter-spacing:.12em;font-size:16px;display:block}.menu-tile-meta{color:var(--muted);font-family:var(--sans);justify-content:space-between;align-items:center;gap:8px;margin-top:6px;font-size:12px;display:flex}.cost-mark{color:var(--gold);font-family:var(--serif);letter-spacing:.08em;white-space:nowrap;flex:none;align-items:baseline;gap:4px;display:inline-flex}.cost-mark-num{font-variant-numeric:tabular-nums;border-bottom:1px solid var(--gold);padding:0 1px;line-height:1.2}.menu-tile-chat{background:#c445362e;border-color:#e8a88c80}.menu-tile-chat strong{color:#f3cfc0}.form{gap:12px;min-width:0;max-width:100%;display:grid}.form label{min-width:0;color:var(--gold);letter-spacing:.12em;font-size:13px;font-family:var(--serif);gap:6px;display:grid}.form input,.form select{width:100%;min-width:0;max-width:100%;min-height:44px;color:var(--cream);font-family:var(--sans);background:#140b08cc;border:1px solid #e0c36a59;border-radius:10px;padding:0 12px;font-size:15px}.password-field{min-width:0;display:block;position:relative}.password-field input{padding-right:48px}.password-toggle{width:40px;height:40px;color:var(--gold);cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.forgot-link{justify-self:start;margin-top:-4px}.date-fields{grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr) minmax(0,.9fr);gap:8px;min-width:0;display:grid}.name-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;min-width:0;display:grid}.field-legend{color:var(--gold);font-family:var(--serif);letter-spacing:.12em;margin:6px 0 -4px;font-size:13px}.love-partner{margin:14px 0 18px}.date-fields select{padding:0 8px}.photo-row{grid-template-columns:1fr 1fr;gap:10px;min-width:0;display:grid}@media (width<=360px){.photo-row{grid-template-columns:1fr}}.photo-slot{min-width:0;min-height:140px;color:var(--muted);cursor:pointer;border:1px dashed #e0c36a59;gap:8px;padding:10px;font-size:13px;display:grid;position:relative;overflow:hidden}.photo-slot.wide{margin-bottom:14px}.photo-slot img{object-fit:cover;width:100%;height:120px}.photo-slot.face img{border-radius:50%;width:120px;height:120px;margin:0 auto}.photo-slot.wide img{height:180px}.photo-slot.wide.face img{border-radius:50%;width:160px;height:160px;margin:0 auto}.photo-btn{width:100%;min-height:36px;color:var(--gold);font-family:var(--serif);letter-spacing:.08em;box-sizing:border-box;border:1px solid #e0c36a66;border-radius:999px;justify-content:center;align-items:center;padding:0 8px;display:inline-flex}.photo-slot input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;font-size:0;position:absolute;inset:0}.crop-overlay{z-index:50;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#080403c7;place-items:end center;display:grid;position:fixed;inset:0}.crop-sheet{background:#1a0e0a;border:1px solid #e0c36a59;border-radius:16px;width:min(100%,380px);max-height:calc(100svh - 32px);padding:16px 0 14px;overflow-y:auto}.crop-sheet h2{margin:0 16px 8px;font-size:20px}.crop-hint{color:var(--muted);margin:0 16px 12px;font-size:13px;line-height:1.5}.crop-stage{touch-action:none;-webkit-user-select:none;user-select:none;background:#0b0706;width:min(72vw,280px);height:min(72vw,280px);margin:0 auto 14px;position:relative;overflow:hidden}.crop-img{pointer-events:none;transform-origin:50%;max-width:none;max-height:none;position:absolute;top:50%;left:50%}.crop-ring{pointer-events:none;border:2px solid #f3e6c8e6;border-radius:50%;width:min(66vw,260px);height:min(66vw,260px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #00000094}.crop-zoom{color:var(--muted);gap:6px;padding:0 16px 12px;font-size:12px;display:grid}.crop-zoom input[type=range]{width:100%;accent-color:var(--gold)}.crop-rotate-row{align-items:center;gap:8px;display:flex}.crop-rotate-row input[type=range]{flex:1;min-width:0}.crop-deg{color:var(--cream);cursor:pointer;background:0 0;border:1px solid #e0c36a59;border-radius:8px;flex:none;margin:0;padding:6px 8px;font-size:12px}.crop-actions{grid-template-columns:1fr 1fr;gap:8px;padding:0 16px;display:grid}.crop-actions .btn{margin:0}.paper{color:var(--ink);background:linear-gradient(#f7edd4,#ead6ae);margin-bottom:16px;padding:22px 18px 18px;box-shadow:0 16px 32px #00000059}.paper .rank{font-family:var(--serif);text-align:center;margin:0 0 8px;font-size:36px}.paper .element{text-align:center;color:var(--vermilion);font-family:var(--serif);margin:0 0 14px}.paper dl{gap:12px;margin:0;display:grid}.paper dt{font-family:var(--serif);color:var(--vermilion);letter-spacing:.2em;font-size:13px}.paper dd{margin:4px 0 0;font-size:14px;line-height:1.7}.reading{color:var(--cream);margin:0 0 16px;line-height:1.75}.place-note{border-top:1px solid #7a3a2240;margin:16px 0 0;padding-top:12px;font-size:13px;line-height:1.7}.animal-open,.reading-open{margin:0 0 8px}.reading-close{margin:0 0 10px auto;font-size:15px;display:block}.animal-year-nav{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:0 0 16px;display:grid}.animal-year-nav p{text-align:center;font-family:var(--serif);margin:0;font-size:18px}.animal-strip{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#e0c36a59 transparent;gap:14px;margin:0 -20px 24px;padding:0 20px 14px;display:flex;overflow:auto hidden}.animal-strip::-webkit-scrollbar{height:4px}.animal-strip::-webkit-scrollbar-thumb{background:#e0c36a59;border-radius:4px}.animal-strip>*{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 82%;min-width:0}.animal-year>*{flex-basis:58%}.animal-month{background:#f3e6c80f;border:1px solid #e0c36a33;padding:12px 10px 10px}.animal-month h3{font-family:var(--serif);margin:0 0 8px;font-size:16px;font-weight:500}.animal-weekdays,.animal-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.animal-weekdays span{text-align:center;color:var(--gold);font-size:11px}.animal-days button{min-height:46px;color:var(--cream);cursor:pointer;background:#f3e6c814;border:1px solid #e0c36a2e;gap:2px;padding:4px 2px;display:grid}.animal-days button.is-on{color:#9a3b16;background:var(--paper);border-color:#e0c36a8c}.animal-days strong{font-size:11px;font-weight:500}.animal-days span{font-size:10px;line-height:1.2}.animal-card{text-align:left;color:var(--cream);background:#f3e6c814;border:1px solid #e0c36a33;margin:0;padding:16px 14px}.animal-card.is-on{color:#9a3b16;background:var(--paper);border-color:#e0c36a8c}.animal-card-no{color:var(--gold);font-family:var(--serif);margin-bottom:4px;font-size:13px;display:block}.animal-card strong{font-family:var(--serif);font-size:18px;display:block}.animal-card span{color:var(--gold);margin-top:4px;font-size:12px;display:block}.animal-card em{color:var(--muted);margin-top:8px;font-size:13px;font-style:normal;line-height:1.6;display:block}.animal-card.is-on span,.animal-card.is-on em,.animal-card.is-on .animal-card-no{color:#7a3b16}.name-try{color:var(--gold);letter-spacing:.12em;font-size:13px;font-family:var(--serif);gap:6px;margin-bottom:16px;display:grid}.name-try input{width:100%;min-width:0;max-width:100%;min-height:44px;color:var(--cream);font-family:var(--sans);background:#140b08cc;border:1px solid #e0c36a59;border-radius:10px;padding:0 12px;font-size:15px}.stroke-chips{flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.stroke-chips li{background:#ffffff59;border:1px solid #2a1a122e;justify-items:center;min-width:44px;padding:6px 8px;display:grid}.stroke-chips b{font-family:var(--serif);font-size:18px}.stroke-chips span{font-size:11px}.gate{gap:14px;display:grid}.tarot-stage{place-items:center;min-height:300px;display:grid}.tarot-card{perspective:900px;cursor:pointer;background:0 0;border:0;width:156px;height:250px;padding:0}.tarot-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s;display:block;position:relative}.tarot-card.is-flip .tarot-inner{transform:rotateY(180deg)}.tarot-face{backface-visibility:hidden;font-family:var(--serif);border-radius:12px;place-items:center;display:grid;position:absolute;inset:0}.tarot-face.back{color:var(--gold);letter-spacing:.4em;background:repeating-linear-gradient(45deg,#7a1f1a 0 8px,#9a2d24 8px 16px);font-size:28px;box-shadow:0 12px 24px #0006}.tarot-face.front{color:var(--ink);background:linear-gradient(#f7edd4,#ead6ae);transform:rotateY(180deg)}.tarot-face.front b{letter-spacing:.12em;font-size:28px}.tarot-face.front small{letter-spacing:.2em;position:absolute;bottom:18px}.admin-shell{background:radial-gradient(900px 280px at 50% -40px,#c4453633,#0000 55%),linear-gradient(#1c100c 0%,#120a07 100%);max-width:920px}.admin-main{padding:28px 20px 48px}.admin-page h1{font-size:30px}.admin-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.admin-head-actions{gap:16px;padding-top:8px;display:flex}.admin-back{margin-top:18px;display:block}.admin-tabs{flex-wrap:nowrap;gap:6px;margin:8px 0 18px;display:flex}.admin-tabs button{min-width:0;min-height:44px;color:var(--muted);font-family:var(--serif);letter-spacing:.06em;white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #e0c36a59;flex:1 1 0;padding:0 4px;font-size:13px}.admin-tabs button.is-active{color:var(--gold);border-color:var(--gold);background:#e0c36a14}.admin-search{color:var(--gold);font-family:var(--serif);letter-spacing:.12em;gap:6px;margin-bottom:10px;font-size:13px;display:grid}.admin-search input{width:100%;max-width:100%;min-height:44px;color:var(--cream);font-family:var(--sans);background:#140b08cc;border:1px solid #e0c36a59;border-radius:10px;padding:0 12px;font-size:15px}.admin-table-wrap{border:1px solid #e0c36a38;max-width:100%;margin-top:10px;overflow-x:auto}.member-map{margin:4px 0 18px}.inspect-map-tools{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;display:flex}.inspect-map-mode{color:var(--cream);font-family:var(--serif);cursor:pointer;background:#f3e6c80f;border:1px solid #e0c36a59;border-radius:999px;margin:0;padding:6px 12px;font-size:13px}.inspect-map-mode.is-active{background:var(--gold);color:var(--ink);border-color:var(--gold)}.inspect-map-link{color:var(--gold);margin-left:auto;font-size:13px}.inspect-map{background:#140b08;border:1px solid #e0c36a59;border-radius:12px;height:380px;overflow:hidden}.member-map.is-compact .inspect-map{height:280px}.inspect-map .leaflet-container{width:100%;height:100%;font:inherit;background:#140b08}.map-person-wrap,.leaflet-div-icon.map-person-wrap{background:0 0!important;border:0!important}.map-person-icon{box-sizing:border-box;color:#fff;background-color:#c44536;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;font-size:14px;font-weight:700;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 2px #e25b43,0 2px 8px #00000073}.map-person-icon img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.live-badge{letter-spacing:.08em;vertical-align:middle;color:#e8f6ee;background:#2f6f4e;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}.map-person-icon.is-live{box-shadow:0 0 0 2px #3dba7a,0 2px 8px #00000073}.map-person-icon.is-live.is-selected{box-shadow:0 0 0 3px var(--gold), 0 0 0 5px #3dba7a, 0 2px 8px #00000073}.map-person-icon.has-photo .map-person-letter{opacity:0}.map-person-icon:has(img) .map-person-letter{opacity:0}.map-empty,.map-caption{margin:8px 0 0}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th,.admin-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #e0c36a2e;padding:10px 8px}.admin-table th{color:var(--gold);font-weight:500;font-family:var(--serif);padding:0}.admin-table .sort-th{width:100%;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin:0;padding:10px 8px;display:inline-flex}.admin-table .sort-th:hover,.admin-table .sort-th.is-active{background:#e0c36a1a}.admin-table .sort-mark{color:var(--gold-dim);font-size:10px}.admin-table .sort-th.is-active .sort-mark{color:var(--gold)}.admin-table td.wrap{white-space:normal;min-width:140px;max-width:220px}.text-btn.danger{color:#e08a7c}.ad-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px;display:grid}.ad-stat-card{text-align:center;border:1px solid #e0c36a38;padding:10px 8px}.ad-stat-card span{color:var(--muted);font-size:11px;display:block}.ad-stat-card strong{font-family:var(--serif);color:var(--gold);margin-top:4px;font-size:18px;display:block}.ad-check{color:var(--cream);letter-spacing:0;flex-direction:row;align-items:center;gap:10px;display:flex!important}.ad-check input{width:18px;min-width:18px;min-height:18px}.ad-fieldset{border:1px solid #e0c36a40;gap:8px;padding:12px;display:grid}.ad-fieldset legend{color:var(--gold);padding:0 6px}.ad-html{width:100%;min-height:140px;color:var(--cream);font-family:var(--sans);resize:vertical;background:#140b08cc;border:1px solid #e0c36a59;border-radius:10px;padding:10px 12px;font-size:14px}.site-ad{text-align:left;background:#f3e6c80f;border:1px solid #e0c36a47;margin:22px 0 4px;padding:12px}.site-ad-link{color:var(--cream);line-height:1.6;display:block}.site-ad-html,.site-ad-video{border:0;width:100%;min-height:90px}.site-ad-video-wrap{display:block}@media (width<=640px){.ad-stats-grid{grid-template-columns:1fr 1fr}}.pay-cost{color:var(--gold);letter-spacing:.08em}.home-offer-row{text-align:left;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;display:flex}.home-offer-row .text-btn,.home-offer-row .member-points{font-size:16px;font-family:var(--serif);letter-spacing:.08em;color:var(--gold);line-height:1.4}.home-offer-row .member-points{text-align:right;white-space:nowrap;margin-left:auto}.home-offer-actions{align-items:center;gap:12px;display:flex}.member-chip-row{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:16px;display:flex}.member-chip-row .today-chip{margin:0}.member-points{color:var(--gold);font-family:var(--serif);letter-spacing:.08em;flex:none;margin:0}.member-chip-actions{align-items:center;gap:12px;margin-left:auto;display:flex}.pack-grid{gap:10px;margin:12px 0 18px;display:grid}.pack-card{text-align:left;color:var(--cream);font-family:var(--serif);cursor:pointer;background:#f3e6c80f;border:1px solid #e0c36a59;gap:4px;padding:14px 14px 12px;display:grid}.pack-card strong{color:var(--gold);letter-spacing:.16em}.pack-card span,.pack-card em,.pack-card small{font-style:normal;font-family:var(--sans)}.pack-card em{color:var(--gold)}.pack-card small{color:var(--muted);letter-spacing:.12em}.admin-tabs-3,.admin-tabs-4,.admin-tabs-5{display:flex}.admin-table tr.is-selected td{background:#e0c36a14}.admin-detail{border-top:1px solid #e0c36a38;margin-top:22px;padding-top:8px}.admin-detail h2,.admin-detail h3{font-family:var(--serif);color:var(--gold);font-weight:500}.admin-detail h3{margin-top:18px;font-size:16px}.grant-form{grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;margin:12px 0 8px;display:grid}.grant-form label{color:var(--gold);gap:6px;font-size:13px;display:grid}.grant-form input{min-height:44px;color:var(--cream);background:#140b08cc;border:1px solid #e0c36a59;border-radius:10px;padding:0 12px}.pack-edit-row{grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,.8fr) auto;align-items:end;gap:8px;display:grid}.point-settings-split{grid-template-columns:minmax(220px,.9fr) minmax(280px,1.2fr);align-items:start;gap:28px 32px;display:grid}.point-cost-pane,.point-offer-pane{gap:12px;min-width:0;display:grid}.point-cost-pane h2{font-family:var(--serif);color:var(--gold);margin:0;font-size:18px;font-weight:500}.point-cost-grid{grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.admin-photos{grid-template-columns:1fr 1fr;gap:12px;display:grid}.admin-photos figure{border:1px solid #e0c36a38;place-items:center;min-height:140px;margin:0;display:grid;overflow:hidden}.admin-photos img{object-fit:cover;width:100%;height:220px}.admin-photos figcaption,.admin-photos span{color:var(--muted);padding:8px}.admin-log{gap:10px;margin:0;padding:0;list-style:none;display:grid}.admin-log li{border-bottom:1px solid #e0c36a2e;gap:4px;padding:10px 0;display:grid}.admin-log span{color:var(--muted);white-space:normal;font-size:13px}.admin-chat-photo{object-fit:cover;border-radius:8px;width:96px;height:96px}.key-preferred{border:1px solid #e0c36a38;border-radius:12px;margin:4px 0 8px;padding:12px 14px 8px}.key-preferred legend{color:var(--gold);font-family:var(--serif);letter-spacing:.16em;padding:0 8px;font-size:13px}.preferred-row{flex-wrap:wrap;gap:8px 18px;padding:6px 0 8px;display:flex}.preferred-row label{letter-spacing:.08em;cursor:pointer;flex-direction:row;align-items:center;gap:8px;display:flex}.preferred-row input{width:auto;min-width:18px;min-height:18px}.key-card{border-top:1px solid #e0c36a38;gap:12px;padding:16px 0 8px;display:grid}.key-card-head{gap:6px;display:grid}.key-card-head h2{font-family:var(--serif);color:var(--gold);margin:0;font-size:18px;font-weight:500}.key-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}@media (width<=720px){.grant-form{grid-template-columns:1fr}.pack-edit-row{grid-template-columns:1fr 1fr}.point-settings-split,.point-cost-grid{grid-template-columns:1fr}}
