:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#29223a;background:#faf7f1;font-synthesis:none}
*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{margin:0;min-width:320px;min-height:100dvh;background:radial-gradient(circle at 4% 9%,#f2eaff 0,transparent 30%),radial-gradient(circle at 91% 55%,#e5f7ee 0,transparent 32%),#faf7f1}
button,input,select,textarea{font:inherit}
button{cursor:pointer;min-height:44px}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #7563b8;outline-offset:3px}
button:disabled{cursor:not-allowed;opacity:.62}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.045em}
h2{font-size:clamp(1.45rem,2.4vw,2rem);letter-spacing:-.035em;margin-bottom:.4rem}
h3{font-size:1.12rem;margin-bottom:.5rem}
p{line-height:1.5}
.site-header{max-width:1400px;margin:auto;padding:20px 32px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:inherit;font-weight:850;letter-spacing:.02em;font-size:1.55rem;line-height:1}
.brand small{display:block;font-size:.59rem;letter-spacing:.09em;margin-top:5px;font-weight:750;color:#777184}
.brand-mark{display:grid;place-items:center;width:41px;height:41px;color:#fff;background:#6f5ba9;border-radius:16px 16px 16px 5px;box-shadow:0 4px 12px #6f5ba94a}
.demo-pill{font-size:.68rem;font-weight:800;letter-spacing:.1em;background:#e7f5ec;color:#265f4a;padding:9px 12px;border-radius:100px;white-space:nowrap}
.notice{background:#ded3f4;color:#35234e;text-align:center;padding:9px 16px;font-size:.79rem;font-weight:750}
.top-nav{max-width:1400px;margin:auto;padding:12px 32px 0;display:flex;gap:6px;overflow:auto}
.top-nav button{border:0;background:transparent;padding:12px 18px;border-radius:14px 14px 0 0;color:#60596d;font-weight:750;white-space:nowrap}
.top-nav button.active{background:#fff;color:#584299;box-shadow:0 -4px 18px #5842990d}
.count{font-size:.77em;background:#eee9f7;border-radius:99px;padding:2px 7px;margin-left:4px}
main{max-width:1400px;margin:auto;padding:0 32px 38px}
.log-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px}
.map-panel,.form-panel,.history-panel,.account-panel{background:#fff;border:1px solid #e9e3ed;border-radius:0 26px 26px 26px;box-shadow:0 14px 38px #5643680c}
.map-panel{padding:26px 30px 24px;min-height:720px}
.form-panel{min-width:0;padding:26px 30px 30px;align-self:start;border-radius:26px}
.panel-heading p:last-child,.history-heading p:last-child{color:#6f6a78;margin-bottom:0}
.eyebrow{color:#6b549e;font-size:.7rem;font-weight:850;letter-spacing:.15em;margin:0 0 8px}
.subtle{font-size:.82rem;color:#77717f}
.avatar-controls{display:flex;justify-content:space-between;flex-wrap:wrap;gap:9px;margin:22px 0 8px}
.segmented{display:flex;background:#f5f1f8;padding:4px;border-radius:14px;gap:3px}
.segmented button{border:0;background:transparent;border-radius:10px;padding:7px 14px;font-size:.85rem;font-weight:740;color:#756f80}
.segmented button.active{color:#493a70;background:#fff;box-shadow:0 2px 8px #4838661b}
.figure-wrap{position:relative;width:min(100%,370px);margin:0 auto;padding:8px 23px 0;background:radial-gradient(ellipse at center,#efe8fa 0,#f6f1fa 56%,transparent 73%);border-radius:48%}
.body-stage{position:relative;width:min(100%,285px);aspect-ratio:2/3;margin:0 auto}
.character-art{display:block;width:100%;height:100%;object-fit:fill;filter:drop-shadow(0 16px 12px #614b702b)}
.body-svg{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:visible}
.body-svg .hit{fill:#6852a701;stroke:transparent;stroke-width:2;cursor:pointer;transition:fill .15s,stroke .15s}
.body-svg .hit:hover,.body-svg .hit:focus,.body-svg .hit.selected{fill:#6852a73d;stroke:#6045b7;stroke-width:3}
.side-label{position:absolute;bottom:45%;font-size:.58rem;color:#776b86;letter-spacing:.08em;font-weight:900}
.side-r{left:0}.side-l{right:0}
.map-shortcuts{display:flex;justify-content:center;gap:9px}
.map-shortcuts button,.region-choice,.suggestions button{border:1px solid #d8cce8;color:#574582;background:#f9f6ff;border-radius:13px;padding:7px 12px;font-size:.83rem;font-weight:700}
.map-shortcuts button:hover,.region-choice:hover,.suggestions button:hover{background:#eee5fb}
.region-list{margin:19px 0 0;border-top:1px solid #ede8f0;padding-top:16px}
.region-list summary{cursor:pointer;font-weight:750;color:#55427d;padding:4px 0}
.region-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px}
.region-choice{min-height:43px;text-align:left}
.region-choice.active{background:#6951a9;color:white}
.prototype-note{font-size:.73rem;color:#827b85;margin:18px 0 0;text-align:center}
.form-head{display:flex;justify-content:space-between;align-items:start}
.form-head .subtle{margin-bottom:16px}
.icon-button{border:0;background:#f5f1f8;border-radius:50%;font-size:1.3rem;width:40px;min-height:40px}
.close-sheet{display:none}
.sheet-backdrop{display:none}
form{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
form>*{min-width:0}
form label{display:block;font-size:.83rem;font-weight:750;color:#3c324b}
form input:not([type=checkbox]):not([type=radio]),form select,form textarea,.filters input,.filters select{display:block;width:100%;min-height:46px;border:1.5px solid #d9d4df;border-radius:12px;background:#fff;color:#282133;padding:10px 12px;margin-top:6px}
form textarea{resize:vertical;min-height:76px}
form input::placeholder,form textarea::placeholder{color:#9b94a2}
.required{color:#9f4c68}
.suggestions{display:flex;flex-wrap:wrap;gap:7px;margin-top:-7px}
.suggestions button{min-height:35px;padding:5px 10px}
fieldset{min-width:0;border:0;padding:0;margin:0}
legend{font-size:.83rem;font-weight:750;color:#3c324b;margin-bottom:6px}
.onset-mode>label,.time-choice label{display:flex;align-items:center;gap:8px;font-size:.83rem;font-weight:600;margin:4px 0}
.onset-mode input[type=checkbox],.time-choice input[type=radio]{accent-color:#6951a9;width:19px;height:19px}
.time-row{display:flex;gap:8px;align-items:end}
.time-row input{flex:1;min-width:0}
.time-row button{margin-bottom:1px}
.time-choice{border:1px solid #e6d7a3;background:#fffbec;border-radius:12px;padding:12px}
.form-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.form-two>*{min-width:0}
.privacy-note{margin:0;color:#797184;font-size:.75rem}
.primary{background:#6852a7;color:white;border:1px solid #6852a7;border-radius:13px;padding:11px 18px;font-weight:800;box-shadow:0 6px 13px #6852a72b}
.primary:hover{background:#584194}
.secondary{background:white;color:#594786;border:1px solid #cfc1e7;border-radius:12px;padding:9px 14px;font-weight:750}
.form-actions{display:flex;gap:9px;position:sticky;bottom:0;background:#fff;padding:12px 0 max(4px,env(safe-area-inset-bottom));z-index:2}
.form-actions .primary{flex:1}
.errors{padding:11px 13px;background:#fff0ef;border:1px solid #e9b5b0;border-radius:12px;margin-bottom:14px;color:#8a342c}
.errors p{font-size:.82rem;margin:2px 0}
.history-panel,.account-panel{padding:28px 32px;min-height:60vh}
.history-heading{display:flex;justify-content:space-between;gap:16px;align-items:start}
.export-actions{display:flex;gap:8px;flex-wrap:wrap}
.filters{display:flex;gap:12px;flex-wrap:wrap;background:#f6f3f9;border-radius:16px;padding:15px;margin:14px 0 20px}
.filters label{font-size:.79rem;font-weight:750;flex:1;min-width:175px}
.entry-card{display:flex;justify-content:space-between;gap:16px;padding:19px 21px;border:1px solid #e6dfeb;border-radius:18px;background:#fff;break-inside:avoid}
.entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.entry-region{font-size:.73rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:#7554a4;margin-bottom:5px}
.entry-card p{font-size:.85rem;margin-bottom:5px}
.entry-card .subtle{font-size:.73rem}
.entry-actions{display:flex;flex-direction:column;gap:6px}
.entry-actions button{min-height:36px;border:1px solid #ddd3e7;border-radius:9px;background:#faf8fc;padding:5px 9px;color:#534172;font-size:.76rem;font-weight:750}
.entry-actions button:first-child{font-size:1.2rem}
.history-table{overflow-x:auto}
.history-table table{width:100%;border-collapse:separate;border-spacing:0;min-width:820px;font-size:.82rem}
.history-table th{text-align:left;background:#f3eef9;color:#524471;padding:12px}
.history-table td{padding:13px 12px;border-bottom:1px solid #eee8f1;vertical-align:top}
.history-table th:first-child{border-radius:12px 0 0 0}.history-table th:last-child{border-radius:0 12px 0 0}
.history-table small{display:block;color:#746888}
.table-actions{display:flex;gap:4px;flex-wrap:wrap}
.table-actions button{min-height:36px;border:1px solid #ddd3e7;border-radius:8px;background:#faf8fc;padding:4px 7px;color:#534172;font-size:.75rem;font-weight:750}
.history-table+.entries{display:none}
.empty{grid-column:1/-1;background:#f7f2fc;border-radius:16px;padding:25px}
.csv-dialog{position:fixed;z-index:8;top:10%;left:50%;transform:translateX(-50%);width:min(700px,calc(100% - 24px));max-height:80dvh;overflow:auto;margin:0;padding:23px;border:1px solid #dad0e7;border-radius:20px;box-shadow:0 0 0 100vmax #23173575,0 20px 50px #23173538}
.dialog-head{display:flex;justify-content:space-between}
.csv-dialog textarea{display:block;width:100%;margin:10px 0 16px;white-space:pre;overflow:auto}
.planned-signin{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:550px;margin:22px 0 30px}
.planned-signin button{border:1px solid #dcd4e7;background:#f5f1f8;border-radius:12px;padding:9px;font-weight:750}
.backup-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:18px 0}
.file-label{display:flex;align-items:center;gap:8px;min-height:46px}
.file-label input{max-width:230px;font-size:.75rem}
.backup-preview{border:1px solid #c9b9e8;background:#f9f6ff;border-radius:16px;padding:18px;margin:20px 0}
.backup-preview p{font-size:.86rem}
.reset-box{max-width:550px;border-top:1px solid #e5dfe7;padding-top:20px}
.danger{background:#fff1ee;color:#8c302c;border:1px solid #e5b2aa;border-radius:12px;padding:9px 14px;font-weight:750}
footer{padding:20px;text-align:center;color:#807887;font-size:.75rem}
.storage-error{position:fixed;bottom:10px;left:10px;right:10px;background:#fff0ee;border:1px solid #d08b83;padding:12px;border-radius:12px;z-index:10}
@media(max-width:900px){.log-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.map-panel,.form-panel{padding:22px}.region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.history-table{display:none}.history-table+.entries{display:grid}.entries{grid-template-columns:1fr}}
@media(max-width:700px){.site-header{padding:13px 17px}.brand{font-size:1.32rem}.brand-mark{width:36px;height:36px}.top-nav{padding:10px 13px 0}.top-nav button{padding:10px 14px;font-size:.84rem}main{padding:0 11px 24px}.log-layout{display:block}.map-panel{border-radius:0 20px 20px 20px;padding:20px 16px;min-height:calc(100dvh - 177px)}.map-panel h2{font-size:1.54rem}.avatar-controls{margin:16px 0 4px}.figure-wrap{width:min(100%,330px)}.region-list{margin-top:13px}.sheet-backdrop{display:block;position:fixed;inset:0;z-index:4;background:#271b455c}.form-panel{display:none}.form-panel.open{display:block;position:fixed;z-index:5;left:0;right:0;bottom:0;top:auto;height:81dvh;max-height:81dvh;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;border-radius:24px 24px 0 0;box-shadow:0 -16px 50px #34234642;padding:10px 19px 0;background:#fff}.sheet-handle{width:44px;height:5px;background:#d6ccde;border-radius:99px;margin:0 auto 16px}.close-sheet{display:block}.form-actions{bottom:0;margin:0 -19px;padding:11px 19px calc(11px + env(safe-area-inset-bottom));box-shadow:0 -7px 20px #352a4511}.history-panel,.account-panel{padding:21px 16px;border-radius:0 20px 20px 20px}.history-heading{display:block}.export-actions{margin:15px 0}.entries{grid-template-columns:1fr}.entry-card{padding:15px}.demo-pill{font-size:.56rem;padding:7px}.notice{font-size:.68rem;padding:8px 12px}}
@media(min-width:701px) and (max-width:800px){main{padding:0 14px 28px}.top-nav{padding:12px 14px 0}.log-layout{gap:12px}.map-panel,.form-panel{padding:16px}.form-two{grid-template-columns:minmax(0,1fr)}.time-row{flex-wrap:wrap}.time-row input{flex-basis:100%}.time-row button{margin-left:auto}}
@media(max-width:380px){.segmented button{padding:6px 10px}.region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.side-label{font-size:.49rem}.form-two{grid-template-columns:1fr}}
@media(max-width:700px){.file-label{display:grid;justify-items:start;gap:6px}.file-label input{max-width:100%}}
@media print{body{background:white}.site-header,.top-nav,.notice,.export-actions,.filters,.entry-actions,footer,.csv-dialog{display:none!important}main{padding:0;max-width:none}.history-panel{border:0;box-shadow:none;padding:0}.entries{display:block}.entry-card{margin:0 0 12px;page-break-inside:avoid}}
