*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#0a1114;color:#e8ede7}button,input,textarea,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #d6b777;outline-offset:2px}.app-shell{position:relative;margin:0 auto;max-width:520px;height:100vh;height:100dvh;overflow:hidden;background:#10191d;box-shadow:0 0 60px #0008;display:flex;flex-direction:column}.topbar{min-height:73px;padding:15px 17px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;border-bottom:1px solid #243338}.titlegroup{min-width:0}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#c3ac79;font-weight:700}.dot{color:#718383}h1{font-family:Georgia,"Times New Roman",serif;font-size:22px;font-weight:500;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:5px 0 0}.top-actions{display:flex;gap:7px;align-items:center;flex-shrink:0}#gameClock{color:#e5c48a;font-size:15px;font-variant-numeric:tabular-nums;font-weight:700}.icon-btn{width:30px;height:32px;background:transparent;color:#bac9c7;border:1px solid #304147;border-radius:8px;display:grid;place-items:center;padding:0}.subbar{padding:7px 18px 9px;color:#8faaa9;font-size:11px;flex-shrink:0;min-height:32px}.subbar span{color:#c9ad75;padding:0 3px}.stage{overflow:auto;flex:1;min-height:0;scrollbar-width:thin;overscroll-behavior:contain;padding:6px 14px 90px;touch-action:pan-y}.bottom-nav{height:65px;padding:6px 8px max(6px,env(safe-area-inset-bottom));min-height:65px;background:#142025;border-top:1px solid #304047;display:flex;align-items:center;justify-content:space-around;flex-shrink:0;z-index:12}.nav-btn{background:transparent;border:0;color:#819b9d;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;flex:1;min-width:0;font-size:10px;padding:5px 1px;border-radius:9px}.nav-btn.active{color:#e6c58d;background:#243136}.nav-icon{font-size:20px;line-height:1}.nav-notification{position:absolute;margin-left:24px;margin-top:-19px;border-radius:50%;background:#c28c70;width:7px;height:7px}.gm-bubble{position:absolute;right:18px;bottom:calc(77px + env(safe-area-inset-bottom));border:1px solid #cda96e;background:#d5ba83;color:#172126;border-radius:50%;width:51px;height:51px;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 25px #0009;font-size:24px;z-index:8}.gm-label{position:absolute;bottom:6px;right:6px;font-size:8px;font-weight:900}.card{background:#18262a;border:1px solid #304246;border-radius:13px;padding:13px;margin-bottom:12px}.card.soft{background:#172227;border-color:#24353a}.card-header,.flex-between{display:flex;align-items:center;justify-content:space-between;gap:10px}.smallcap{font-size:10px;letter-spacing:1.1px;color:#b9a174;text-transform:uppercase;font-weight:700}.muted{color:#99acae}.small{font-size:12px;line-height:1.5}.tiny{font-size:11px}.page-summary{font-size:13px;color:#b5c5c5;line-height:1.5;margin:3px 1px 12px}.section-title{font-family:Georgia,serif;font-size:20px;font-weight:normal;margin:0 0 9px}.map-wrap{overflow:hidden;background:#263335;border:1px solid #54635d;border-radius:9px}.map-wrap svg{width:100%;height:auto;display:block}.map-wrap .furniture{transition:stroke .15s,filter .15s}.map-wrap .furniture.active{stroke:#e9c680!important;stroke-width:3!important;filter:drop-shadow(0 0 4px #d9b066)}.map-wrap .furniture[role=button],.map-wrap .person-marker[role=button],.map-wrap .floor-room[role=button]{cursor:pointer}.room-card{padding:11px}.room-map{height:clamp(220px,37dvh,325px);transition:height .23s ease;display:flex;align-items:center;justify-content:center}.room-map.compact{height:clamp(124px,22dvh,175px)}.room-map svg{max-height:100%;width:100%;height:100%}.room-map.unknown{height:clamp(205px,34dvh,270px)}.room-status{font-size:11px;color:#a4babc;display:flex;align-items:center;justify-content:space-between;gap:9px;margin:8px 2px}.status{font-size:10px;padding:4px 8px;border-radius:99px;border:1px solid #566461;color:#afc0bd}.status.here{border-color:#779d80;color:#b3d1a8}.actions-panel{min-height:125px}.entry-list{display:flex;flex-direction:column;gap:8px}.entry{display:flex;align-items:center;gap:10px;border:1px solid #334448;border-radius:9px;padding:10px;text-align:left;color:#e8ede7;background:#202f32;width:100%}.entry:hover,.entry.active{border-color:#ae9567}.entry-sub{display:block;font-size:11px;color:#a8babc;margin-top:3px}.roundel{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#445258;color:#eac88c;flex-shrink:0;font-size:13px}.flex1{flex:1;min-width:0}.chev{color:#8fa5a5;font-size:18px}.btn{border:1px solid #8e7759;border-radius:9px;background:#d8bb84;color:#172124;padding:10px 13px;font-weight:700;font-size:13px;line-height:1.2;min-height:40px}.btn.secondary{background:#243337;color:#e6ebe6;border-color:#415356;font-weight:500}.btn.ghost{background:transparent;color:#c3d0cf;border-color:#405054}.btn.slim{padding:7px 10px;min-height:32px;font-size:12px}.btn.full{width:100%}.button-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.button-stack{display:grid;gap:7px}.detail-panel{padding-top:12px;border-top:1px solid #314246;margin-top:11px}.detail-top{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:9px}.speech{padding:10px 11px;border-radius:9px;background:#233238;color:#ecede7;font-size:13px;line-height:1.5;margin:7px 0}.speech.player{margin-left:18px;background:#383e36;color:#efe7d3}.speech .speaker{font-size:10px;color:#c8ad76;display:block;margin-bottom:4px;font-weight:700}.log-scroll{max-height:190px;overflow:auto;overscroll-behavior:contain}.input-row{display:flex;gap:7px;align-items:center}input,textarea,select{width:100%;background:#0e1b20;border:1px solid #435358;border-radius:8px;padding:11px 12px;color:#f1f1ec;font-size:13px;min-width:0}input::placeholder,textarea::placeholder{color:#788e91}textarea{resize:vertical;min-height:68px}.send-btn{height:41px;width:43px;border:0;border-radius:8px;background:#d8bb84;color:#192429;flex-shrink:0;font-size:19px}.stack{display:grid;gap:10px}.split{display:grid;grid-template-columns:1fr 1fr;gap:9px}.stat{padding:13px 12px;background:#1b292d;border:1px solid #354449;border-radius:11px;text-align:left;color:#e8ede7}.stat strong{display:block;margin:4px 0;font-size:14px;font-weight:700}.stat span{font-size:12px;color:#91a9a9}.stat .stat-icon{font-size:21px;color:#d2b582}.section-space{margin:17px 0 10px}.list-row{border:1px solid #33444a;background:#1b292e;color:#ecf0e9;border-radius:10px;padding:13px;text-align:left;width:100%}.list-row .meta{font-size:11px;color:#aabdbc;margin-top:5px}.tag{font-size:10px;color:#d7c290;border:1px solid #77684c;padding:3px 7px;border-radius:40px;display:inline-block}.filter-row{display:flex;gap:6px;overflow:auto;margin:9px 0 14px;padding-bottom:3px}.filter-btn{white-space:nowrap;color:#a7b7b7;border:1px solid #38484c;background:#1b292c;padding:7px 9px;font-size:11px;border-radius:99px}.filter-btn.active{color:#211e18;background:#d9bd8a;border-color:#d9bd8a}.empty{padding:28px 18px;text-align:center;color:#93a9a9;border:1px dashed #344449;border-radius:12px;line-height:1.6;font-size:13px}.journal-item{padding:12px;border-left:2px solid #7e8e89;background:#19262a;margin-bottom:8px;border-radius:0 8px 8px 0}.journal-item.testimony{border-color:#b4a06e}.journal-item.note{border-color:#6e9c9d}.journal-item.clue{border-color:#be9b6c}.journal-item .when{font-size:10px;color:#aab8b9;margin-bottom:6px}.journal-item h3{margin:0 0 5px;font-size:13px}.journal-item p{font-size:12px;line-height:1.55;margin:0;color:#c5d1cf}.form-label{font-size:12px;color:#bccdca;margin:0 0 5px;display:block}.save-feedback{font-size:11px;color:#b4c8be}.sheet-backdrop{position:absolute;inset:0;background:#0610139c;z-index:20}.gm-sheet{position:absolute;bottom:0;left:0;right:0;height:min(77dvh,680px);background:#19272b;border:1px solid #68726a;border-radius:20px 20px 0 0;z-index:21;padding:8px 14px max(13px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:9px;box-shadow:0 -12px 40px #0009}.gm-sheet[hidden],.sheet-backdrop[hidden],.modal-layer[hidden]{display:none!important}.sheet-handle{height:4px;width:42px;border-radius:99px;background:#8a9996;margin:0 auto 3px}.sheet-title{display:flex;align-items:center;justify-content:space-between}.sheet-tabs{display:flex;gap:8px}.sheet-tabs button{border:1px solid #4d5a58;background:transparent;color:#a2b7b3;border-radius:8px;padding:8px 10px;flex:1;font-size:12px}.sheet-tabs button.active{background:#d5b77d;color:#172126;border-color:#d5b77d;font-weight:700}.gm-transcript{overflow:auto;flex:1;display:flex;flex-direction:column;gap:8px;padding:6px 1px}.msg{border-radius:12px;background:#28383c;padding:11px 12px;line-height:1.5;font-size:13px;align-self:flex-start;max-width:94%}.msg.me{background:#4d483b;align-self:flex-end}.msg .msg-from{color:#d6bd8d;display:block;font-size:10px;margin-bottom:4px}.toast{position:absolute;z-index:40;bottom:calc(146px + env(safe-area-inset-bottom));left:20px;right:20px;background:#e0c38c;color:#1d2b2e;padding:11px 13px;border-radius:9px;box-shadow:0 10px 25px #0008;font-size:12px;line-height:1.4;display:none}.toast.show{display:block}.modal-layer{position:absolute;inset:0;background:#040a0dc4;z-index:50;display:flex;align-items:center;justify-content:center;padding:18px}.modal-card{background:#19292d;border:1px solid #6a7167;border-radius:16px;padding:20px;width:100%;max-width:400px}.modal-card h2{margin:0 0 10px;font:normal 22px Georgia,serif}.modal-card p{line-height:1.5;color:#c1d0ce;font-size:13px}.modal-buttons{display:flex;gap:9px;justify-content:flex-end;margin-top:17px}.location-pill{display:inline-flex;align-items:center;gap:6px;color:#c8d9d5;font-size:12px;margin:0 0 8px}.location-pill strong{color:#d9ba86}.room-legend{display:flex;gap:9px;font-size:10px;color:#a8b9b6;padding:8px 0 1px}.room-legend b{color:#dfc58b}.overview-map .floor-room{transition:fill .15s}.overview-map .floor-room:hover,.overview-map .floor-room:focus{fill:#627274}.last-visit{color:#9eb1b0;font-size:11px}.footer-note{color:#809899;font-size:11px;line-height:1.6;margin:13px 3px 24px}.sticky-help{position:sticky;bottom:2px}.person-header{display:flex;gap:11px;align-items:center}.avatar{width:45px;height:45px;display:grid;place-items:center;background:#2e4146;border-radius:50%;border:1px solid #53665f;font-size:23px;color:#e4c588}.history{max-height:200px;overflow:auto}.mini-label{font-size:10px;letter-spacing:1px;color:#b9a87f;margin:4px 0 9px}.event-status{font-size:11px;color:#d8ba83;margin-top:6px}.progress-track{height:5px;background:#39484b;border-radius:99px;overflow:hidden;margin-top:9px}.progress-track i{height:100%;background:#c6a671;display:block}.link-pair{display:flex;align-items:center;gap:8px;font-size:12px}.link-pair strong{flex:1;min-width:0}.map-hint{font-size:10px;color:#96aca9;padding-top:8px}.map-pulse{fill:#dfc18d;stroke:#192c2c;stroke-width:2}.hot{fill:#cbb783;stroke:#233136;stroke-width:2}.room-swatch{font-size:10px;fill:#e7e9dc;pointer-events:none}.map-grid{stroke:#667571;stroke-opacity:.22;stroke-width:1}.pill-action{border:1px solid #465b5b;border-radius:8px;background:#1e3032;color:#cbd6d2;padding:7px 10px;font-size:11px}.inline-notice{background:#394034;color:#e2d4a9;padding:10px;border-radius:8px;font-size:12px;line-height:1.4}.collapsed-note{font-size:12px;color:#8ea6a5;padding:5px 0}@media(min-width:700px){.app-shell{border-left:1px solid #344248;border-right:1px solid #344248}.stage{padding-left:20px;padding-right:20px}}@media(max-height:650px){.topbar{min-height:62px;padding-top:9px}.subbar{min-height:25px;padding-top:4px;padding-bottom:5px}.room-map{height:210px}.room-map.compact{height:110px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}