.web-room{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#223933;background:#f8f9f6;font-synthesis:none;font-size:14px;--green: #35624e;--green-dark: #264a3b;--sage: #e9f0e7;--border: #e5e8e1;--muted: #76817b;--purple: #7955a4}.web-room *{box-sizing:border-box}.web-room{margin:0}.web-room button,.web-room input,.web-room textarea,.web-room select{font:inherit;color:inherit}.web-room button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:transparent;transition:background .15s,box-shadow .15s,color .15s}.web-room button:disabled{opacity:.4;cursor:not-allowed}.web-room button:not(:disabled):hover{background:#edf1ea}.web-room button:focus-visible,.web-room input:focus-visible,.web-room textarea:focus-visible,.web-room select:focus-visible,.web-room canvas:focus-visible{outline:2px solid #669880;outline-offset:3px}.web-room input,.web-room textarea,.web-room select{border:1px solid var(--border);border-radius:7px;background:#fff;padding:11px 13px;min-width:0}.web-room input::placeholder,.web-room textarea::placeholder{color:#9aa19b}.web-room textarea{resize:none;line-height:1.6}.web-room h1,.web-room h2,.web-room h3,.web-room p{margin:0}.web-room h1{font-size:23px;letter-spacing:.03em;font-weight:650}.web-room h2{font-size:18px;font-weight:650;letter-spacing:.02em}.web-room h3{font-size:15px;font-weight:600}.web-room time,.web-room .micro,.web-room .muted{color:var(--muted)}.web-room time{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.web-room .muted{font-size:12px}.web-room .micro{font-size:11px;line-height:1.7}.web-room .app-shell{height:100dvh;min-height:690px;display:flex;flex-direction:column}.web-room .site-header{height:61px;flex:none;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:#fcfcf9}.web-room .brand{display:flex;align-items:center;gap:17px;font-size:17px}.web-room .brand>svg{color:var(--green)}.web-room .brand strong{font-size:23px;letter-spacing:.12em}.web-room .site-divider{width:1px;height:21px;background:#dce2d9;margin:0 4px}.web-room .account{display:flex;gap:25px;align-items:center}.web-room .prototype-label{color:#8a938c;font-size:11px;letter-spacing:.03em}.web-room .account-button{gap:12px;border-radius:7px;padding:5px}.web-room .account-button .avatar{width:32px;height:32px;border-radius:50%}.web-room .room-grid{padding:16px 24px 20px;gap:16px;flex:1;min-height:0;display:grid;grid-template-columns:minmax(320px,31%) minmax(0,1fr);grid-template-rows:minmax(300px,55fr) minmax(280px,45fr)}.web-room .panel{background:#fefefb;border:1px solid var(--border);border-radius:12px;min-height:0;min-width:0;overflow:hidden}.web-room .section-head{padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}.web-room .section-head h2{display:flex;gap:10px;align-items:center}.web-room .roster-count{font-size:13px}.web-room .text-button{font-size:13px;border-radius:5px;padding:5px 6px;color:#3a5c4c}.web-room .squad{display:flex;flex-direction:column}.web-room .roster{padding:0 10px;flex:1;overflow:auto}.web-room .character-row{width:100%;display:flex;justify-content:flex-start;text-align:left;gap:13px;padding:10px 13px;margin-bottom:3px;border-radius:9px;border-left:3px solid transparent;position:relative}.web-room .character-row.selected{border-left-color:#3b8664;background:#e8f0e6}.web-room .character-row:not(.selected):hover{background:#f0f3eb}.web-room .avatar{width:60px;height:67px;object-fit:cover;object-position:center 35%;border-radius:8px;background:#eeeee7;flex:none}.web-room .character-row-info{flex:1;min-width:0}.web-room .character-row-title{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:7px}.web-room .character-row-title b{font-size:17px;letter-spacing:.035em}.web-room .selected-label{display:flex;align-items:center;gap:4px;color:#388062;font-size:11px}.web-room .vitals{display:flex;flex-direction:column;gap:5px}.web-room .vital{display:grid;grid-template-columns:22px minmax(50px,1fr) 45px;align-items:center;gap:9px;font-size:11px;max-width:255px}.web-room .vital>span:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.web-room .vital i{font-style:normal;color:#87918b}.web-room meter{width:100%;height:8px;appearance:none;border:0;background:#dce3dc;border-radius:3px;overflow:hidden}.web-room meter::-webkit-meter-bar{background:#dce3dc;border:0;height:8px}.web-room meter::-webkit-meter-optimum-value{background:#6ba683}.web-room .me meter::-webkit-meter-optimum-value{background:#70a5ab}.web-room meter::-moz-meter-bar{background:#6ba683}.web-room .me meter::-moz-meter-bar{background:#70a5ab}.web-room .squad-footer{padding:13px 22px;color:#819087;font-size:11px;display:flex;align-items:center;gap:6px}.web-room .squad-footer>span:last-child{margin-left:auto;color:#98a099}.web-room .online-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#559474;flex:none}.web-room .upper-right{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0}.web-room .room-header{height:59px;flex:none;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.web-room .room-heading{display:flex;gap:20px;align-items:center;min-width:0}.web-room .room-heading h1{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.web-room .room-status{font-size:12px;color:#468563;display:flex;gap:7px;align-items:center;white-space:nowrap}.web-room .header-divider{width:1px;background:#dce2d9;height:20px}.web-room .room-code{color:#7c8880;font-size:12px;gap:9px;padding:5px 0;white-space:nowrap}.web-room .room-code b{color:#344c40;font-weight:600}.web-room .secondary{border:1px solid #dfe4db;border-radius:7px;padding:10px 12px;font-size:12px;background:#fbfcf9;white-space:nowrap}.web-room .whiteboard{flex:1;display:flex;flex-direction:column}.web-room .heading-inline{display:flex;align-items:center;gap:13px}.web-room .board-head{padding-bottom:9px;flex-wrap:wrap}.web-room .board-tools{display:flex;gap:3px;align-items:center;background:#fafbf7;border:1px solid #e9ece5;border-radius:8px;padding:3px}.web-room .icon-button{padding:7px;border-radius:5px}.web-room .icon-button.active{color:#35624e;background:#e5ede3}.web-room .tool-divider{height:21px;width:1px;margin:0 4px;background:#e1e5dd}.web-room .color-button{width:21px;height:21px;border-radius:50%;margin:0 5px;outline:2px solid transparent;outline-offset:3px}.web-room .color-button.chosen{outline-color:#a6b6a9}.web-room .color-button:not(:disabled):hover{filter:brightness(1.15);background:var(--green)}.web-room .clear-board{color:#90998f}.web-room .board-surface{position:relative;flex:1;min-height:0;margin:0 15px 10px;overflow:hidden}.web-room .board-surface canvas{width:100%;height:100%;display:block;touch-action:none;cursor:default}.web-room .tool-pen canvas{cursor:crosshair}.web-room .tool-text canvas{cursor:text}.web-room .tool-erase canvas{cursor:crosshair}.web-room .board-hint{position:absolute;right:9px;bottom:8px;color:#9ba79e;font-size:10px;pointer-events:none;background:#fefefbe0;padding:2px 5px;border-radius:3px}.web-room .board-text-entry{position:absolute;left:15%;right:15%;top:45%;display:flex;gap:4px;padding:6px;border:1px solid #c9d6c8;background:#fff;border-radius:8px;box-shadow:0 6px 20px #243d3315}.web-room .board-text-entry input{width:100%;border:0;padding:7px}.web-room .chat-panel,.web-room .journal-panel{display:flex;flex-direction:column;position:relative}.web-room .chat-panel .section-head{border-bottom:1px solid #edf0e8;padding-top:13px;padding-bottom:13px}.web-room .dice-trigger{padding:8px 13px;color:var(--green);border:1px solid #c9d6c8;border-radius:7px;font-size:13px}.web-room .dice-trigger.active{background:var(--green);color:#fff;border-color:var(--green)}.web-room .dice-trigger.active:hover{background:var(--green-dark)}.web-room .chat-scroll{flex:1;overflow:auto;padding:17px 18px 2px;min-height:0}.web-room .chat-message{display:grid;grid-template-columns:38px 33px 1fr;align-items:start;gap:10px;margin-bottom:17px}.web-room .chat-message time{padding-top:8px;font-size:11px}.web-room .chat-message .avatar{width:33px;height:36px;border-radius:50%}.web-room .chat-message>div{display:flex;flex-wrap:wrap;gap:4px 9px;align-items:baseline;padding-top:6px;min-width:0}.web-room .chat-message b{font-size:12px;white-space:nowrap}.web-room .chat-message p{font-size:13px;line-height:1.65;overflow-wrap:anywhere;white-space:pre-wrap}.web-room .chat-composer{display:flex;gap:9px;padding:12px 17px 16px}.web-room .chat-composer input{width:100%;min-width:0}.web-room .primary{background:var(--green);color:#fff;border-radius:7px;padding:12px 16px;font-size:13px;white-space:nowrap}.web-room .primary:not(:disabled):hover{background:var(--green-dark)}.web-room .primary:disabled{opacity:.55}.web-room .chat-composer .primary{padding:11px 13px}.web-room .journal-panel>.section-head{padding-bottom:12px}.web-room .journal-scroll{min-height:0;flex:1;overflow:auto;padding:1px 19px 9px}.web-room .log-row{display:grid;grid-template-columns:37px 33px minmax(0,1fr);gap:11px;align-items:start;margin:0 0 13px}.web-room .log-row>time{padding-top:17px;font-size:11px}.web-room .log-row>.avatar{width:33px;height:36px;border-radius:50%;margin-top:9px}.web-room .log-card{border:1px solid #ece5d9;background:#fcfaf3;padding:13px 16px;border-radius:10px;min-width:0}.web-room .log-card b{font-size:13px;font-weight:600}.web-room .log-card p{margin-top:7px;font-size:13px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.web-room .log-card b>.micro{margin-left:6px;font-size:10px;color:#9c9986}.web-room .dice .log-card{background:#f4f0fa;border-color:#eee7f8;color:#69489b}.web-room .log-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.web-room .log-card-head>span{font-size:11px;white-space:nowrap}.web-room .roll-result{display:flex;align-items:center;gap:13px;margin-top:12px;flex-wrap:wrap}.web-room .roll-result>svg{color:#8764b9}.web-room .roll-equation{font-size:21px;font-family:Georgia,Songti SC,serif;color:#2c3931;overflow-wrap:anywhere}.web-room .roll-equation strong{color:#398160;font-size:25px}.web-room .result-badge{display:flex;align-items:center;gap:5px;margin-left:auto;font-size:11px;color:#33724f;background:#e4efdf;border-radius:15px;padding:5px 9px}.web-room .result-badge.failure{background:#ede7e2;color:#876956}.web-room .result-detail{font-size:10px;color:#9b85b8;margin-top:8px;padding:0;gap:3px}.web-room .roll-detail{border-top:1px solid #e5daef;margin-top:8px;padding-top:3px}.web-room .roll-detail p{font-size:11px}.web-room .discarded{opacity:.5;text-decoration:line-through}.web-room .narration-composer{border-top:1px solid var(--border);padding:11px 19px 15px;background:#fdfefb;flex:none}.web-room .narration-composer label{font-size:12px;font-weight:600;display:block;margin-bottom:6px}.web-room .narration-composer>div{display:flex;gap:11px}.web-room .narration-composer textarea{flex:1;height:59px;font-size:12px;padding:9px 12px}.web-room .narration-composer button{padding:10px 15px}.web-room .new-messages{position:absolute;bottom:90px;left:50%;transform:translate(-50%);padding:7px 12px;border-radius:15px;box-shadow:0 2px 12px #264a3b20;background:#e4eee0;color:var(--green);font-size:11px;white-space:nowrap}.web-room .journal-panel>.new-messages{bottom:115px}.web-room .hover-card{position:fixed;z-index:40;width:340px;padding:21px 22px 0;border:1px solid #dce2d9;background:#fffffc;border-radius:10px;box-shadow:0 10px 35px #1b372326;max-height:calc(100dvh - 30px);overflow:auto}.web-room .character-card-top{display:flex;gap:16px;align-items:center}.web-room .character-card-top>.avatar{width:83px;height:105px}.web-room .character-card-top>div{flex:1;min-width:0}.web-room .character-card-top h2{font-size:25px;margin-bottom:7px}.web-room .character-card-top p{font-size:12px;color:#737e72;margin-bottom:13px}.web-room .character-card-top .vital{font-size:10px;gap:5px;grid-template-columns:21px 1fr 42px}.web-room .stat-grid{display:grid;grid-template-columns:repeat(3,1fr);row-gap:20px;padding:23px 0;margin-top:21px;border-top:1px solid #e3e8df;border-bottom:1px solid #e3e8df}.web-room .stat-grid>div{text-align:center;border-right:1px solid #e3e8df;display:flex;flex-direction:column;gap:5px}.web-room .stat-grid>div:nth-child(3n){border:0}.web-room .stat-grid span{font-size:12px;color:#738273}.web-room .stat-grid strong{font-size:24px;font-weight:500;font-family:Georgia,serif}.web-room .skill-list{padding:18px 0}.web-room .skill-list h3,.web-room .character-story h3{font-size:13px;margin-bottom:8px}.web-room .skill-list p,.web-room .character-story p{font-size:12px;line-height:1.9}.web-room .full-card-link{border-top:1px solid #e3e8df;padding:14px 0;justify-content:flex-end;width:100%;font-size:12px}.web-room .private-card{padding-bottom:22px}.web-room .private-card .avatar{width:65px;height:70px}.web-room .private-card h2{margin:12px 0}.web-room .private-card p{font-size:12px;line-height:1.8}.web-room .dice-popover{position:fixed;z-index:50;width:min(780px,calc(100vw - 32px));padding:19px 22px 16px;border:1px solid #dce1d7;border-radius:12px;box-shadow:0 8px 32px #27362e25;background:#fffffc;outline:none;max-height:calc(100dvh - 30px);overflow:auto}.web-room .dice-head{display:flex;align-items:center;gap:20px;padding-bottom:15px;border-bottom:1px solid var(--border)}.web-room .dice-head h2{display:flex;gap:9px;align-items:center;font-size:17px;white-space:nowrap}.web-room .dice-head>.icon-button{margin-left:auto}.web-room .effect-switch{display:flex;gap:1px;padding:2px;border:1px solid #e6e8e1;border-radius:6px;margin-left:auto;background:#fafbf7}.web-room .effect-switch button{font-size:11px;padding:6px 12px;border-radius:4px}.web-room .effect-switch .active{background:var(--green);color:#fff}.web-room .dice-columns{display:grid;grid-template-columns:1.1fr 1fr;gap:23px;padding-top:17px}.web-room .dice-columns h3{margin-bottom:13px;font-size:15px}.web-room .attribute-dice{border-left:1px solid var(--border);padding-left:23px}.web-room .attribute-dice>.effect-switch{width:fit-content;max-width:100%;margin:0 0 12px}.web-room .attribute-dice>.effect-switch .active:not(:disabled):hover{background:var(--green-dark);color:#fff}.web-room .die-types{display:flex;gap:5px;margin:21px 0 22px}.web-room .die-types button{flex:1;min-width:0;padding:13px 0;background:#f8f9f4;border:1px solid #e2e6dc;border-radius:6px;font-size:12px}.web-room .die-types .chosen{background:var(--green);color:#fff;border-color:var(--green)}.web-room .dice-fields{display:flex;gap:13px;justify-content:space-between}.web-room .dice-fields label{display:flex;gap:8px;align-items:center;font-size:11px}.web-room .stepper{display:flex;border:1px solid #e1e5dc;border-radius:6px;overflow:hidden;min-width:0}.web-room .stepper button{padding:7px 6px;background:#fafbf7}.web-room .stepper input{appearance:textfield;-moz-appearance:textfield;width:41px;padding:5px 2px;border:0;border-radius:0;text-align:center;font-size:13px}.web-room .stepper input::-webkit-inner-spin-button{appearance:none}.web-room .stepper input::-webkit-outer-spin-button{appearance:none}.web-room .roll-action{margin:16px 0 5px;width:100%}.web-room .free-dice>.micro{text-align:center;font-size:10px}.web-room .dice-target{display:flex;gap:8px;align-items:center;margin-bottom:12px;height:35px}.web-room .dice-target .avatar{width:31px;height:34px;border-radius:50%}.web-room .dice-target b{font-size:13px}.web-room .dice-target span{font-size:11px;color:#678f73}.web-room .attribute-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.web-room .attribute-buttons button{display:flex;flex-direction:column;gap:3px;background:#f7f9f3;border:1px solid #e4e9de;border-radius:7px;padding:8px 4px}.web-room .attribute-buttons button:not(:disabled):hover{border-color:#91b397;background:#e5efe0}.web-room .attribute-buttons span{font-size:11px}.web-room .attribute-buttons strong{font-size:19px;font-weight:500}.web-room .attribute-dice>.micro{margin-top:10px;font-size:10px}.web-room .disabled-panel .dice-target span{color:#969e94}.web-room .spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.web-room .toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);padding:12px 19px;border:1px solid #c9dbcb;border-radius:9px;box-shadow:0 4px 20px #1834261a;background:#f5faf0;color:#35624e;z-index:100;font-size:13px;display:flex;align-items:center;gap:8px}.web-room .modal{width:min(480px,calc(100vw - 32px));border:1px solid #dfe4d9;border-radius:13px;padding:23px 26px;background:#fffffc;color:#263e32;box-shadow:0 15px 60px #1e312a29;max-height:calc(100dvh - 50px);overflow:auto}.web-room .modal::backdrop{background:#18342738;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.web-room .modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.web-room .modal-description{font-size:12px;line-height:1.8;color:#7b867a;margin-bottom:16px}.web-room .demo-note{font-size:11px;line-height:1.8;background:#f3f5ef;border-radius:6px;padding:10px 12px;color:#7e8878;margin:12px 0}.web-room .modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.web-room .form-field{display:flex;flex-direction:column;gap:8px;margin:16px 0;font-size:13px}.web-room .import-option{width:100%;justify-content:flex-start;gap:15px;text-align:left;border:1px solid #e1e7dc;border-radius:8px;padding:12px;margin-top:16px}.web-room .import-option.selected{background:#e8f0e2;border-color:#8da789}.web-room .import-option small{display:block;color:#84907f;margin-top:6px;font-size:11px}.web-room .import-state{margin-left:auto;font-size:12px}.web-room .character-story{padding:8px 0 10px}.web-room .character-story>.muted{display:block;margin-top:15px}.web-room ::-webkit-scrollbar{width:5px;height:5px}.web-room ::-webkit-scrollbar-thumb{background:#d9e1d5;border-radius:5px}@media(min-width:1450px){.web-room .room-grid{gap:17px;padding:17px 28px 21px;grid-template-columns:30% 1fr}.web-room .site-header{height:64px}.web-room .section-head{padding:21px 23px}.web-room h2{font-size:20px}.web-room .character-row{padding:12px 14px;gap:17px}.web-room .character-row .avatar{width:72px;height:79px}.web-room .character-row-title b{font-size:19px}.web-room .vital{font-size:13px;gap:11px;grid-template-columns:25px 1fr 51px;max-width:300px}.web-room .selected-label{font-size:12px}.web-room .character-row-title{margin-bottom:9px}.web-room .vitals{gap:7px}.web-room .chat-message{margin-bottom:23px;gap:13px;grid-template-columns:40px 39px 1fr}.web-room .chat-message .avatar,.web-room .log-row>.avatar{width:39px;height:42px}.web-room .chat-message b,.web-room .chat-message p,.web-room .log-card p{font-size:14px}.web-room .log-row{grid-template-columns:40px 39px minmax(0,1fr);gap:13px}.web-room .log-card{padding:16px 18px}.web-room .journal-scroll{padding:1px 22px 12px}.web-room .narration-composer{padding:13px 22px 17px}.web-room .narration-composer textarea{height:65px}.web-room .board-subtitle{font-size:13px}.web-room .room-header{height:63px}.web-room .dice-popover{width:840px}.web-room .dice-columns{gap:27px}.web-room .attribute-dice{padding-left:27px}.web-room .die-types button{padding:15px 0}.web-room .dice-head h2{font-size:19px}.web-room .dice-columns h3{font-size:17px}.web-room .attribute-buttons strong{font-size:21px}.web-room .dice-target{height:39px}.web-room .dice-target .avatar{height:39px;width:37px}.web-room .stepper input{width:48px}.web-room .free-dice .roll-action{padding:14px}}@media(max-width:1120px){.web-room .room-grid{padding:12px;gap:12px;grid-template-columns:32% 1fr}.web-room .section-head{padding:14px}.web-room .character-row{padding:10px 7px;gap:9px}.web-room .character-row .avatar{width:46px;height:57px}.web-room .selected-label{font-size:0;gap:0}.web-room .vital{grid-template-columns:18px 1fr 38px;gap:5px;font-size:10px}.web-room .room-heading{gap:12px}.web-room .room-heading h1{font-size:20px}.web-room .header-divider{display:none}.web-room .room-code{font-size:0;gap:6px}.web-room .room-code b{font-size:12px}.web-room .board-head{gap:8px}.web-room .board-subtitle{display:none}.web-room .board-tools{gap:0}.web-room .icon-button{padding:6px}.web-room .color-button{width:17px;height:17px;margin:0 4px}.web-room .clear-board{display:none}.web-room .chat-message{grid-template-columns:29px 26px 1fr;gap:7px}.web-room .chat-message .avatar{width:26px;height:30px}.web-room .chat-message time{font-size:9px}.web-room .chat-message b,.web-room .chat-message p{font-size:12px}.web-room .chat-composer .primary span{display:none}.web-room .log-row{grid-template-columns:31px 28px minmax(0,1fr);gap:7px}.web-room .log-row>.avatar{width:28px;height:31px}.web-room .log-card{padding:11px}.web-room .journal-scroll{padding:0 13px 9px}.web-room .journal-hint,.web-room .squad-footer>span:last-child{display:none}.web-room .roll-equation{font-size:18px}.web-room .roll-equation strong{font-size:22px}.web-room .narration-composer{padding:10px 13px 13px}.web-room .narration-composer button{padding:10px;font-size:12px}.web-room .prototype-label{font-size:10px}}@media(max-width:760px){.web-room .app-shell{height:auto;min-height:100dvh}.web-room .site-header{padding:0 15px;height:56px}.web-room .brand{gap:10px;font-size:13px}.web-room .brand strong{font-size:20px}.web-room .brand>svg{width:22px}.web-room .account{gap:0}.web-room .prototype-label{display:none}.web-room .room-grid{display:flex;flex-direction:column;padding:10px;gap:11px}.web-room .upper-right{display:contents}.web-room .room-header{order:0;padding:12px;height:60px}.web-room .squad{order:1;height:230px}.web-room .roster{display:grid;grid-template-columns:1fr 1fr}.web-room .character-row{padding:8px;min-width:0;gap:8px}.web-room .character-row .avatar{width:42px;height:49px}.web-room .character-row-title b{font-size:14px}.web-room .vital{font-size:9px;grid-template-columns:15px 1fr 33px;gap:3px}.web-room .character-row-title{margin-bottom:4px}.web-room .vitals{gap:4px}.web-room .squad .section-head{padding:11px 13px}.web-room .squad-footer{padding:7px 16px}.web-room .whiteboard{order:2;height:345px;flex:none}.web-room .board-head{padding:12px;gap:12px}.web-room .board-head h2{font-size:16px}.web-room .board-tools{flex-wrap:wrap}.web-room .board-surface{min-height:230px}.web-room .chat-panel{order:3;height:360px}.web-room .journal-panel{order:4;height:480px}.web-room .section-head h2{font-size:17px}.web-room .room-status{font-size:10px}.web-room .room-heading{gap:10px}.web-room .room-code{display:none}.web-room .room-header h1{font-size:19px}.web-room .room-header .secondary{font-size:11px;padding:8px}.web-room .dice-popover{width:calc(100vw - 24px);padding:15px}.web-room .dice-head{gap:8px;padding-bottom:11px}.web-room .dice-head h2{font-size:15px}.web-room .dice-head h2 svg{display:none}.web-room .effect-switch button{padding:6px 10px}.web-room .dice-columns{grid-template-columns:1fr;gap:15px;padding-top:12px}.web-room .attribute-dice{border-left:0;border-top:1px solid var(--border);padding:13px 0 0}.web-room .die-types{margin:12px 0}.web-room .dice-fields{justify-content:flex-start;gap:24px}.web-room .dice-columns h3{font-size:14px;margin-bottom:8px}.web-room .roll-action{margin-top:11px}.web-room .attribute-dice>.micro{margin-top:7px}.web-room .dice-target{height:28px;margin-bottom:9px}.web-room .dice-target .avatar{width:25px;height:27px}.web-room .attribute-buttons button{padding:5px}.web-room .attribute-buttons strong{font-size:17px}.web-room .hover-card{left:16px!important;top:100px!important;width:calc(100vw - 32px);max-width:340px}.web-room .toast{font-size:12px;width:max-content;max-width:90vw}.web-room .chat-message{grid-template-columns:37px 33px 1fr}.web-room .chat-message .avatar{width:33px;height:36px}.web-room .chat-message p,.web-room .chat-message b{font-size:13px}.web-room .chat-composer .primary span{display:inline}.web-room .narration-composer textarea{height:70px}.web-room .log-card-head{gap:5px}.web-room .log-card-head b{font-size:12px}.web-room .board-text-entry{left:3%;right:3%}.web-room .board-hint{font-size:9px}}@media(prefers-reduced-motion:reduce){.web-room *{transition:none!important;scroll-behavior:auto!important}.web-room .spin{animation:none}}@media(min-width:761px){.web-room .room-grid{grid-template-columns:minmax(270px,30%) 10% minmax(0,1fr)}.web-room .squad{grid-column:1}.web-room .upper-right{grid-column:2/4}.web-room .chat-panel{grid-column:1/3}.web-room .journal-panel{grid-column:3}.web-room .chat-message p,.web-room .log-card p,.web-room .dice-target b{font-size:14px}.web-room .dice-target span{font-size:12px}.web-room .dice-columns .micro{font-size:11px}}@media(min-width:1450px){.web-room .chat-message p,.web-room .chat-message b,.web-room .log-card p{font-size:16px}.web-room .chat-message time,.web-room .log-row>time{font-size:13px}.web-room .chat-message{margin-bottom:24px}.web-room .log-card b{font-size:15px}.web-room .log-card-head>span{font-size:13px}.web-room .dice-columns h3{font-size:18px}.web-room .die-types button{font-size:14px}.web-room .dice-fields label{font-size:13px}.web-room .dice-target b{font-size:16px}.web-room .dice-target span,.web-room .attribute-buttons span{font-size:13px}.web-room .attribute-buttons strong{font-size:22px}.web-room .dice-columns .micro,.web-room .effect-switch button{font-size:12px}.web-room .roll-equation{font-size:24px}.web-room .roll-equation strong{font-size:27px}.web-room .log-card{padding:15px 16px}.web-room .primary,.web-room .narration-composer label,.web-room .narration-composer textarea{font-size:14px}}@media(min-width:1450px){.web-room .character-row{padding:8px 14px;gap:17px}.web-room .character-row .avatar{width:65px;height:72px}.web-room .character-row-title{margin-bottom:7px}.web-room .squad .section-head{padding-top:17px;padding-bottom:17px}}.web-room .character-preview-group{position:fixed;z-index:45;display:grid;grid-template-columns:minmax(240px,.86fr) repeat(2,minmax(0,1fr));gap:10px;align-items:start;overflow:auto;padding:4px 7px 12px 4px;overscroll-behavior:contain;outline:none;scrollbar-color:#acbcaa transparent;scrollbar-width:thin}.web-room .character-preview-group:focus-visible{outline:2px solid #769b7a;outline-offset:2px;border-radius:12px}.web-room .character-basics-window,.web-room .skill-window{background:#fffffc;border:1px solid #cfd9cb;border-radius:11px;box-shadow:0 5px 17px #203e2518;min-width:0}.web-room .character-basics-window{padding:15px 16px 0;position:sticky;top:0;min-height:565px;display:flex;flex-direction:column}.web-room .preview-close-row{display:flex;justify-content:space-between;align-items:center;margin:-7px -7px 8px 0;font-size:10px;color:#8b9889}.web-room .character-basics-window .character-card-top{flex-wrap:wrap;gap:13px}.web-room .character-basics-window .character-card-top>.avatar{width:83px;height:107px}.web-room .character-basics-window .character-card-top>div{min-width:120px}.web-room .character-basics-window .character-card-top h2{font-size:24px}.web-room .character-basics-window .character-card-top .vitals{gap:7px}.web-room .character-basics-window .stat-grid{margin-top:21px;padding:19px 0;row-gap:21px}.web-room .character-basics-window .character-story{padding:20px 0}.web-room .character-basics-window .character-story p{font-size:13px;line-height:1.85}.web-room .character-basics-window .full-card-link{margin-top:auto;font-size:12px;padding:17px 0}.web-room .skill-window-column{display:flex;flex-direction:column;gap:10px;min-width:0}.web-room .skill-window{overflow:hidden}.web-room .skill-window-header{padding:15px 16px 10px}.web-room .skill-title-line{display:flex;align-items:start;justify-content:space-between;gap:9px}.web-room .skill-title-line h3{font-size:19px;line-height:1.35;letter-spacing:.015em;font-weight:650}.web-room .skill-kind{font-size:11px;background:#eeeaf5;color:#69617e;padding:4px 9px;border-radius:13px;white-space:nowrap;flex:none}.web-room .skill-tags{display:inline-block;font-size:12px;background:#f4f1f8;border-radius:12px;padding:3px 8px;margin-top:7px;line-height:1.4;color:#636276}.web-room .skill-pathway{margin-top:6px;font-size:12px;color:#536952}.web-room .skill-rule-block{margin:0 13px;border:1px solid #e6eae1;border-radius:7px;overflow:hidden}.web-room .skill-metrics,.web-room .skill-details{margin:0;display:flex;flex-wrap:wrap;gap:8px 12px;padding:9px 10px;font-size:11px;line-height:1.65}.web-room .skill-metrics>div,.web-room .skill-details>div{display:flex;gap:5px;align-items:baseline;min-width:0}.web-room .skill-metrics dt,.web-room .skill-details dt{color:#879180;white-space:nowrap}.web-room .skill-metrics dd,.web-room .skill-details dd{margin:0;overflow-wrap:anywhere}.web-room .skill-details{display:grid;gap:5px;border-top:1px solid #e6eae1}.web-room .skill-details>div{display:grid;grid-template-columns:29px 1fr;gap:6px}.web-room .skill-window-body{padding:16px;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.web-room .skill-window-body p{white-space:pre-wrap}.web-room .skill-window-body h4{font-size:12px;margin:14px 0 6px;font-weight:650}.web-room .life-skill-window .skill-window-header{background:#edf3e7;padding-bottom:14px}.web-room .life-skill-window .skill-kind{background:#5c8a6d;color:#fff}.web-room .private-preview{display:block}.web-room .private-preview .character-basics-window{min-height:0}.web-room .full-card-skills{display:flex;flex-direction:column;gap:12px;margin-top:9px}.web-room .full-card-skills .skill-window{box-shadow:none}@media(min-width:1450px){.web-room .character-basics-window{min-height:670px;padding:17px 17px 0}.web-room .character-basics-window .character-card-top>.avatar{width:101px;height:132px}.web-room .character-basics-window .character-card-top>div{min-width:95px}.web-room .character-basics-window .character-card-top h2{font-size:25px}.web-room .character-basics-window .character-card-top .vital{grid-template-columns:17px 1fr 37px;gap:3px;font-size:10px}.web-room .character-basics-window .stat-grid{padding:23px 0;margin-top:24px;row-gap:26px}.web-room .character-basics-window .stat-grid span{font-size:13px}.web-room .character-basics-window .stat-grid strong{font-size:26px}.web-room .skill-window-body{font-size:14px;line-height:1.72}.web-room .skill-title-line h3{font-size:21px}.web-room .skill-metrics,.web-room .skill-details{font-size:12px}.web-room .skill-window-header{padding:16px 16px 11px}}@media(max-width:1000px)and (min-width:761px){.web-room .character-preview-group{grid-template-columns:230px minmax(0,1fr) minmax(0,1fr)}.web-room .skill-window-body{font-size:13px;padding:12px}.web-room .skill-window-header{padding:12px}.web-room .skill-title-line h3{font-size:16px}.web-room .skill-metrics{display:block}.web-room .skill-metrics>div{margin-bottom:4px}.web-room .character-basics-window .character-card-top{display:block}.web-room .character-basics-window .character-card-top>div{margin-top:13px}.web-room .character-basics-window{min-height:0}}@media(max-width:760px){.web-room .character-preview-group{grid-template-columns:minmax(0,1fr);gap:12px;background:#f8faf4;padding:10px;border:1px solid #d0dccb;border-radius:12px;box-shadow:0 8px 25px #20352525}.web-room .character-basics-window{position:static;min-height:0}.web-room .character-basics-window .character-card-top{flex-wrap:nowrap}.web-room .skill-window-column{gap:12px}.web-room .skill-window-body{font-size:14px;line-height:1.8}.web-room .skill-metrics,.web-room .skill-details{font-size:12px}.web-room .preview-close-row{position:sticky;top:-10px;background:#fffffc;z-index:1;padding-top:6px}.web-room .character-preview-group.private-preview{display:block}}.web-room .character-basics-window>.vitals{margin-top:16px;gap:10px}.web-room .character-basics-window>.vitals .vital{grid-template-columns:24px 1fr 48px;font-size:14px;gap:9px}.web-room .character-basics-window>.vitals meter{height:11px}@media(max-width:760px){.web-room .preview-close-row .icon-button{position:fixed;top:27px;right:30px;z-index:2;background:#fffffc;border:1px solid #d0dccb;border-radius:50%;box-shadow:0 2px 8px #20352515}}.web-room .character-preview-group.nested-preview{display:grid;grid-template-columns:minmax(0,1fr);overflow:visible;align-items:start}.web-room .character-preview-group.nested-preview.has-active-skill{grid-template-columns:350px minmax(0,1fr)}.web-room .nested-preview .character-basics-window{position:static;min-height:0;max-height:inherit;overflow:auto;padding:15px 16px 0}.web-room .nested-preview .character-card-top>.avatar{width:76px;height:96px}.web-room .nested-preview .stat-grid{margin-top:14px;padding:14px 0;row-gap:14px}.web-room .nested-preview .stat-grid strong{font-size:23px}.web-room .nested-preview .character-story{padding:13px 0}.web-room .preview-skill-lists{display:grid;gap:14px;border-top:1px solid #e6eae1;padding-top:14px}.web-room .preview-skill-lists h3{display:flex;justify-content:space-between;font-size:13px;margin:0 0 7px;color:#536952}.web-room .preview-skill-lists h3 span{color:#8b9889;font-weight:400}.web-room .preview-skill-row{display:flex;width:100%;align-items:center;justify-content:space-between;border:0;border-radius:6px;background:transparent;text-align:left;padding:8px 10px;font-size:13px;color:#344637;cursor:pointer}.web-room .preview-skill-row:hover,.web-room .preview-skill-row:focus-visible,.web-room .preview-skill-row.active{background:#eeedf5;color:#665a82}.web-room .nested-skill-detail{max-height:inherit;overflow:auto;scrollbar-width:thin;border-radius:11px;background:#fffffc;box-shadow:0 5px 17px #203e2518}.web-room .skill-back{padding:10px 14px;font-size:12px;width:100%;justify-content:flex-end}.web-room .nested-skill-detail .skill-window{box-shadow:none}@media(max-width:760px){.web-room .character-preview-group.nested-preview,.web-room .character-preview-group.nested-preview.has-active-skill{grid-template-columns:minmax(0,1fr);overflow:auto}.web-room .nested-preview .character-basics-window,.web-room .nested-preview .nested-skill-detail{max-height:none;overflow:visible}.web-room .nested-preview.has-active-skill .character-basics-window{display:none}.web-room .nested-preview .skill-back{position:sticky;top:0;background:#fffffc;z-index:2}}.web-room .character-preview-group.nested-preview{grid-template-columns:330px minmax(0,1fr)}.web-room .character-preview-group.nested-preview.has-active-skill{grid-template-columns:330px 220px minmax(0,1fr)}.web-room .character-skills-window{background:#fffffc;border:1px solid #cfd9cb;border-radius:11px;box-shadow:0 5px 17px #203e2518;padding:18px 14px;max-height:inherit;overflow:auto;min-width:0}.web-room .skills-list-heading{padding:0 3px 17px;border-bottom:1px solid #e6eae1}.web-room .skills-list-heading h2{font-size:18px;margin:0 0 7px}.web-room .skills-list-heading>span{font-size:11px;color:#879180}.web-room .character-skills-window .preview-skill-lists{border:0;padding-top:18px;gap:25px}.web-room .character-skills-window .preview-skill-row{padding:12px 9px}.web-room .nested-preview.private-preview{grid-template-columns:minmax(0,1fr)}@media(min-width:761px)and (max-width:1100px){.web-room .character-preview-group.nested-preview{grid-template-columns:280px minmax(0,1fr)}.web-room .character-preview-group.nested-preview.has-active-skill{grid-template-columns:280px 190px minmax(0,1fr)}}@media(max-width:760px){.web-room .character-preview-group.nested-preview,.web-room .character-preview-group.nested-preview.has-active-skill{grid-template-columns:minmax(0,1fr)}.web-room .character-skills-window{max-height:none;overflow:visible}.web-room .nested-preview.has-active-skill .character-skills-window{display:none}}.web-room .app-shell{height:calc(100dvh - 56px);min-height:700px}.web-room .room-connection{display:flex;justify-content:space-between;gap:12px;padding:10px 24px;font-size:12px}.web-room .room-error{background:#fff0e7;color:#8c3d29;padding:10px 24px}.web-room .room-error button{margin-left:15px;text-decoration:underline}.web-room .room-initial{display:inline-flex;align-items:center;justify-content:center;background:#e6eee2;color:#35624e;font-size:24px;flex:none}.web-room .room-empty{padding:20px;color:#76817b}.web-room .board-sync{display:flex;gap:8px;align-items:center;padding:0 16px 8px;font-size:11px;flex-wrap:wrap}.web-room .board-sync span{margin-right:auto}.web-room .character-preview-group{z-index:70}.web-room .journal-scroll>.log-card{margin-bottom:14px}.web-room .log-card.dice{background:#f3edfc}.web-room .log-card.narration{background:#faf7ef}.web-room .modal{max-height:85dvh;width:min(780px,calc(100vw - 30px));overflow:auto}.web-room .modal::backdrop{background:#15282045}.web-room .import-character{width:100%;display:flex;justify-content:space-between;padding:16px;border-bottom:1px solid #e5e8e1}.web-room .dice-fields input{width:95px;display:block}.web-room .character-story p,.web-room .chat-message p,.web-room .log-card p{white-space:pre-wrap;overflow-wrap:anywhere}.web-room .log-card details{font-size:12px;margin-top:10px}.web-room .roll-result>strong{font-size:28px}.web-room .room-header{gap:10px}.web-room .room-header h1{margin-right:auto}.web-room .room-header button{font-size:12px}.web-room .board-head{flex-wrap:wrap}@media(max-width:760px){.web-room .app-shell{height:auto}.web-room .room-connection{flex-wrap:wrap}.web-room .room-header{height:auto}.web-room .room-header h1{font-size:16px}.web-room .room-header button{font-size:11px}.web-room .dice-columns{grid-template-columns:1fr}}.web-room .dice-popover{z-index:75;max-height:calc(100dvh - 32px);overflow:auto}@media(min-width:761px){.web-room .app-shell{min-height:0}.web-room .room-grid{grid-template-rows:minmax(250px,55fr) minmax(240px,45fr)}}.web-room .board-text-entry{flex-direction:column;gap:8px}.web-room .board-prefix-label{display:grid;gap:4px;font-size:12px;color:#536952}.web-room .board-prefix-label select{width:100%;min-width:0;padding:6px}.web-room .board-text-controls{display:flex;align-items:center;gap:4px;min-width:0}.web-room .board-text-controls input{min-width:0;flex:1}.web-room .board-text-controls button{flex-shrink:0}.web-room .board-text-preview{margin:0;padding:0 6px;font-size:12px;color:#536952;overflow-wrap:anywhere;max-height:72px;overflow:auto}.auto-save-field{display:grid;gap:4px;min-width:0}.auto-save-field>label{display:grid;gap:4px;font-size:12px}.auto-save-field input:not([type=color]),.auto-save-field textarea{width:100%;min-width:0;border:1px solid #d8dfd6;border-radius:6px;padding:6px 8px;background:#fffef9}.auto-save-field small{color:#647467;font-size:11px}.auto-save-actions,.token-auto-fields{display:flex;gap:8px;flex-wrap:wrap}.token-auto-fields{padding:8px 12px;border-bottom:1px solid #d8dfd6}.token-auto-fields .auto-save-field{flex:1;min-width:120px}.npc-list-card .auto-save-field{margin-top:10px}.auto-save-field [role=alert]{color:#a4343e}.web-room.room-v2 [hidden]{display:none!important}.web-room.room-v2 .app-shell{height:calc(100dvh - 56px);min-height:580px}.web-room.room-v2 .room-connection{padding:8px 24px;font-size:11px}.web-room .room-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:4px 24px 8px;flex:none}.web-room .room-topbar h1{font-size:22px;line-height:1.3}.web-room .room-roll-controls{display:flex;align-items:center;gap:12px}.web-room .room-tabs{display:flex;gap:8px;padding:0 24px;border-bottom:1px solid var(--border);flex:none}.web-room .room-tabs button{padding:10px 20px;border-bottom:3px solid transparent;border-radius:6px 6px 0 0}.web-room .room-tabs [aria-selected=true]{color:var(--green);border-bottom-color:var(--green);background:#e8f0e6;font-weight:600}.web-room.room-v2 .game-page{grid-template-columns:minmax(0,1.35fr) minmax(350px,1fr);grid-template-rows:minmax(0,1.2fr) minmax(0,1fr);gap:14px;padding:14px 24px}.web-room.room-v2 .squad{grid-column:1;grid-row:1 / 3}.web-room.room-v2 .journal-panel{grid-column:2;grid-row:1}.web-room.room-v2 .chat-panel{grid-column:2;grid-row:2}.web-room.room-v2 .section-head{padding:12px 16px}.web-room .roster-tools{display:flex;align-items:center;gap:8px;padding:0 16px 10px}.web-room .roster-tools input{flex:1;min-width:0}.web-room .roster-tools button{flex:none}.web-room .roster-tools [aria-pressed=true]{background:#e8f0e6}.web-room.room-v2 .roster{display:block;min-height:0;padding:0 16px 10px}.web-room .roster-group h3{font-size:12px;margin:6px 0 8px;color:#607368}.web-room .roster-group+.roster-group{margin-top:16px}.web-room .roster-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.web-room .roster-card{border:1px solid var(--border);border-radius:9px;min-width:0;background:#f7f9f3}.web-room .roster-card.selected{border-color:#3b8664;background:#e8f0e6}.web-room.room-v2 .character-row{padding:10px;margin:0;gap:10px;border:0}.web-room.room-v2 .character-row .avatar{width:42px;height:52px;flex:none}.web-room.room-v2 .character-row-title{flex-wrap:wrap;gap:4px}.web-room.room-v2 .character-row-title b{overflow-wrap:anywhere;font-size:14px}.web-room.room-v2 .selected-label{font-size:0}.web-room.room-v2 .vital{grid-template-columns:20px minmax(10px,1fr) 30px;gap:5px;font-size:11px;max-width:none}.web-room .roster-card-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:0 10px 5px}.web-room .roster-card-actions .text-button{font-size:11px}.web-room .compact .character-row .avatar{width:28px;height:34px}.web-room .compact .character-row{padding:6px 10px}.web-room .compact .roster-cards{gap:6px}.web-room .compact .roster-card-actions{padding-bottom:0}.web-room.room-v2 .squad-footer{padding:8px 16px;font-size:10px}.web-room.room-v2 .chat-scroll,.web-room.room-v2 .journal-scroll{padding:0 14px 8px}.web-room.room-v2 .chat-composer,.web-room.room-v2 .narration-composer{padding:8px 12px}.web-room.room-v2 .narration-composer textarea{height:44px}.web-room .board-page,.web-room .npc-page{flex:1;min-height:0;padding:14px 24px}.web-room .board-page>.whiteboard{height:100%}.web-room .character-drawer{margin:0 0 0 auto;height:100dvh;max-height:100dvh;width:min(580px,100vw);border-radius:12px 0 0 12px}.web-room .npc-workspace{height:100%;display:grid;grid-template-columns:minmax(270px,.75fr) minmax(0,1.25fr);gap:14px}.web-room .npc-library{display:flex;flex-direction:column}.web-room .npc-hint{padding:0 16px 10px}.web-room .npc-filters{display:flex;gap:12px;align-items:center;padding:0 16px 12px}.web-room .npc-filters>input{min-width:0;width:100%}.web-room .npc-filters label{display:flex;gap:5px;white-space:nowrap}.web-room .npc-list{overflow:auto;padding:0 16px 16px}.web-room .npc-list-card{padding:12px 0;border-bottom:1px solid var(--border)}.web-room .npc-list-card>div:first-child{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}.web-room .npc-list-card b{overflow-wrap:anywhere}.web-room .npc-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.web-room .npc-editor{overflow:auto}.web-room .npc-editor fieldset{padding:0 20px 20px;border:0;min-width:0}.web-room .npc-editor label{display:grid;gap:6px;margin:10px 0;font-size:13px}.web-room .npc-editor input:not([type=checkbox]),.web-room .npc-editor textarea,.web-room .npc-editor select{width:100%;min-width:0}.web-room .npc-editor input[type=checkbox],.web-room .npc-filters input[type=checkbox]{width:16px;height:16px;accent-color:#3b8664}.web-room .npc-stat-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 12px}.web-room .npc-flags{display:flex;flex-wrap:wrap;gap:12px}.web-room .npc-editor .npc-flags label,.web-room .npc-editor .npc-check{display:flex;align-items:center;gap:8px}.web-room .npc-editor summary{cursor:pointer;padding:12px 0;font-weight:600}.web-room .npc-skills{max-height:230px;overflow:auto}.web-room .npc-skills small{display:block;color:#637369}.web-room.room-v2 input:not([type=checkbox]),.web-room.room-v2 textarea,.web-room.room-v2 select{background:#fff;border:1px solid var(--border);border-radius:6px;padding:7px 9px}.web-room.room-v2 button:focus-visible,.web-room.room-v2 input:focus-visible,.web-room.room-v2 summary:focus-visible{outline:2px solid #3b8664;outline-offset:2px}@media(max-width:1050px)and (min-width:761px){.web-room.room-v2 .game-page{grid-template-columns:minmax(0,1.2fr) minmax(310px,1fr);padding:12px}.web-room.room-v2 .character-row{gap:6px;padding:8px}.web-room.room-v2 .character-row .avatar{width:30px;height:40px}.web-room.room-v2 .roster{padding:0 10px 10px}}@media(max-width:760px){.web-room.room-v2 .app-shell{height:auto;min-height:calc(100dvh - 56px)}.web-room .room-topbar{padding:8px 12px;align-items:flex-start}.web-room .room-topbar h1{font-size:18px}.web-room .room-roll-controls{flex-direction:column;align-items:flex-end;max-width:45%;gap:6px}.web-room .room-tabs{padding:0 12px}.web-room .room-tabs button{padding:10px 12px}.web-room.room-v2 .game-page{display:flex;flex-direction:column;padding:12px}.web-room.room-v2 .squad{height:65dvh;max-height:65dvh;min-height:300px}.web-room.room-v2 .chat-panel{order:3;height:340px;flex:none}.web-room.room-v2 .journal-panel{order:2;height:400px;flex:none}.web-room .roster-cards{grid-template-columns:minmax(0,1fr)}.web-room .board-page,.web-room .npc-page{padding:12px}.web-room .board-page{height:75dvh;flex:none}.web-room .npc-workspace{display:flex;flex-direction:column}.web-room .npc-list{max-height:40dvh}.web-room .npc-editor{overflow:visible}.web-room .npc-stat-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}.web-room.room-v2 .character-row{padding:6px 10px}.web-room.room-v2 .character-row-title{margin-bottom:2px}.web-room.room-v2 .character-row .vitals{gap:2px}.web-room.room-v2 .character-row .vital{line-height:1.25}.web-room.room-v2 .roster-card-actions{padding-bottom:3px}.web-room.room-v2 .roster-card-actions button{padding:2px 4px}.web-room.room-v2 .compact .character-row .vitals{display:grid;grid-template-columns:1fr 1fr;gap:8px}.web-room.room-v2 .compact .character-row .vital{grid-template-columns:20px 1fr}.web-room.room-v2 .compact .character-row meter{display:none}.web-room .character-drawer{max-width:100vw}.web-room.room-v2 .game-page{grid-template-rows:minmax(0,1fr)}.web-room.room-v2 .squad,.web-room.room-v2 .chat-panel{grid-row:1}.web-room .room-sync-note{margin:0;padding:6px 24px;background:#fff5df;font-size:12px}.web-room .room-roll-controls{flex-wrap:wrap;justify-content:flex-end}.web-room .pending-rolls{color:#835817;background:#fff4d9}.web-room .records-page{flex:1;min-height:0;padding:14px 24px}.web-room .records-panel{height:100%;display:flex;flex-direction:column;position:relative}.web-room .records-head{flex:none;display:flex;align-items:center;gap:20px;padding:14px 20px;border-bottom:1px solid var(--border)}.web-room .records-head>div{margin-right:auto}.web-room .records-head label{display:flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap}.web-room .records-head h2{font-size:18px}.web-room .records-head p{margin:4px 0 0}.web-room .records-scroll{flex:1;min-height:0;overflow:auto;padding:20px 24px 40px;overflow-anchor:none}.web-room .records-timeline{max-width:880px;margin:0 auto}.web-room .records-timeline .log-card{padding:18px 22px;margin-bottom:14px}.web-room .records-timeline .log-card-head{gap:12px}.web-room .records-timeline .log-card-head b{overflow-wrap:anywhere}.web-room .records-timeline .log-card-head time{flex:none}.web-room .records-timeline .log-card>p{font-size:15px;line-height:1.85}.web-room .records-timeline .log-card details{margin-top:12px}.web-room .records-timeline .history-load{display:block;margin:0 auto 18px}.web-room .record-highlight>.log-card{outline:2px solid #528f6f;outline-offset:3px}.web-room .records-new{position:absolute;bottom:14px;left:50%;transform:translate(-50%);white-space:nowrap;box-shadow:0 4px 18px #25483230}.web-room .modal .narration-composer textarea{height:min(40dvh,280px);resize:vertical}.web-room .room-notifications{position:fixed;z-index:10000;bottom:24px;right:24px;width:min(350px,calc(100vw - 32px));pointer-events:none}.web-room .room-notifications.over-chat{bottom:96px}.web-room .room-notice{position:relative;margin-top:8px;background:#fcfcf9;border:1px solid #ccd9ce;border-left:3px solid #548064;border-radius:10px;box-shadow:0 6px 24px #1b362124;overflow:hidden;pointer-events:auto;animation:room-notice-in .18s ease-out}.web-room .room-notice.dice{background:#f5f0fc;border-left-color:#9564b5}.web-room .room-notice.narration{background:#fffaf0;border-left-color:#b39759}.web-room .notice-open{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:12px 32px 10px 14px;text-align:left}.web-room .notice-title{display:block;font-size:12px;font-weight:600;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.web-room .notice-text{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.web-room .notice-result{display:flex;align-items:baseline;gap:8px;font-size:14px}.web-room .notice-result strong{font-size:26px}.web-room .notice-result b{margin-left:auto;font-size:13px;color:#426b50}.web-room .notice-footer{font-size:10px;color:#617167}.web-room .notice-close{position:absolute;top:3px;right:3px;padding:7px;color:#69766b;border-radius:6px}.web-room .notice-summary{margin-top:8px;padding:8px 12px;float:right;border:1px solid var(--border);background:#f5f8f0;border-radius:16px;font-size:12px;pointer-events:auto}@keyframes room-notice-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.web-room .room-notice{animation:none}}@media(max-width:760px){.web-room .records-page{height:calc(100dvh - 230px);min-height:420px;flex:none;padding:12px}.web-room .records-head{flex-wrap:wrap;padding:12px;gap:10px}.web-room .records-head>div{width:100%}.web-room .records-scroll{padding:14px 12px 45px}.web-room .records-timeline .log-card{padding:14px}.web-room .records-timeline .log-card-head{flex-wrap:wrap;gap:4px}.web-room .room-notifications{right:16px;bottom:20px}.web-room .room-notifications.over-chat{bottom:88px}}.web-room .tone-dice{--record-bg: #f3effa;--record-accent: #72518f;--record-border: #ddd1e9}.web-room .tone-critical-success,.web-room .tone-success{--record-bg: #eef7f0;--record-accent: #2c6943;--record-border: #bfd8c6}.web-room .tone-critical-failure,.web-room .tone-failure{--record-bg: #fcf0ee;--record-accent: #a03b39;--record-border: #e7c4c0}.web-room .tone-pending{--record-bg: #fbf5e8;--record-accent: #815d21;--record-border: #e0d3b4}.web-room .tone-narration{--record-bg: #fcf8ed;--record-accent: #86662d;--record-border: #e6dcc4}.web-room .tone-chat{--record-bg: #f5f7f6;--record-accent: #56645e;--record-border: #dce2de}.web-room .record-card,.web-room .room-notice{position:relative;isolation:isolate;background:var(--record-bg);border:1px solid var(--record-border);border-left:3px solid var(--record-accent);overflow:hidden}.web-room .record-pattern{position:absolute;z-index:-1;pointer-events:none;width:150px;height:150px;right:18px;top:50%;transform:translateY(-50%) rotate(-14deg);color:var(--record-accent);opacity:.07}.web-room .tone-chat .record-pattern{width:60px;height:60px}.web-room .records-timeline .record-card{padding:14px 20px;margin-bottom:10px}.web-room .record-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.web-room .record-heading b{font-size:15px;overflow-wrap:anywhere}.web-room .record-card .log-card-head{align-items:baseline;gap:12px}.web-room .record-card time{color:#657169;font-size:11px;white-space:nowrap}.web-room .record-effect{display:inline-block;margin-left:6px;border:1px solid var(--record-border);color:var(--record-accent);border-radius:5px;padding:1px 6px;font-size:11px;font-weight:600;vertical-align:middle}.web-room .record-byline{display:block;font-size:12px;line-height:1.5;color:#526158;margin-top:4px;overflow-wrap:anywhere}.web-room .record-result{display:flex;align-items:center;gap:14px;margin-top:8px;color:var(--record-accent)}.web-room .record-result>strong{font-size:32px;line-height:1.15;font-variant-numeric:tabular-nums}.web-room .record-outcome{display:inline-flex;align-items:center;gap:5px;font-size:14px;font-weight:600}.web-room .record-formula{display:block;margin-top:5px;font-size:12px;color:#526158;overflow-wrap:anywhere}.web-room .record-pending{display:flex;align-items:center;gap:7px;margin-top:10px;color:var(--record-accent);font-size:14px}.web-room .record-retry{margin-top:7px}.web-room .record-card details{font-size:12px;margin-top:10px}.web-room .record-card details p{font-size:12px;overflow-wrap:anywhere}.web-room .record-card details summary{width:fit-content;cursor:pointer;color:#526158}.web-room .record-card.tone-narration>p{line-height:1.85;margin-top:10px}.web-room .record-card.tone-chat>p{line-height:1.6;margin-top:6px}.web-room .room-notice .record-pattern{width:95px;height:95px;right:10px}.web-room .room-notice .record-result{margin-top:0;gap:10px}.web-room .room-notice .record-result>strong{font-size:27px}.web-room .room-notice .record-byline{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.web-room .room-notice .notice-title{white-space:normal;overflow-wrap:anywhere}@media(max-width:760px){.web-room .record-card .log-card-head{flex-wrap:wrap}.web-room .records-timeline .record-card{padding:12px 14px}.web-room .record-pattern{width:115px;height:115px;right:0}}.web-room .room-dice-overlay{position:fixed;z-index:55;inset:110px 14% 50px;display:flex;flex-direction:column;align-items:center;pointer-events:none;visibility:hidden;opacity:0}.web-room .room-dice-overlay.is-ready{visibility:visible}.web-room .room-dice-overlay *{pointer-events:none}.web-room .room-dice-overlay canvas{display:block;width:100%;flex:1;min-height:0}.web-room .dice-animation-caption,.web-room .dice-animation-result{flex:none;max-width:95%;padding:10px 20px;border:1px solid #d4ddd5;border-radius:12px;background:#fcfff4ed;box-shadow:0 4px 20px #18372120;text-align:center;color:#294739;overflow-wrap:anywhere}.web-room .dice-animation-caption{display:flex;flex-direction:column;gap:4px}.web-room .dice-animation-caption>strong{font-size:18px}.web-room .dice-animation-caption>span{font-size:12px}.web-room .dice-animation-result .record-result{justify-content:center;margin-top:0}.web-room .dice-animation-result small{display:block;color:#536455;font-size:11px;margin-top:6px}.web-room .dice-animation-groups{display:flex;justify-content:center;gap:24px;font-size:13px;margin-top:6px}.web-room .dice-animation-groups .selected{color:#6b4a0b;font-weight:600}.web-room .dice-animation-groups .discarded{color:#69726b}@media(max-width:760px){.web-room .room-dice-overlay{inset:155px 8px 115px}.web-room .dice-animation-caption,.web-room .dice-animation-result{padding:8px 12px}.web-room .dice-animation-caption>strong{font-size:15px}.web-room .dice-animation-groups{gap:12px;font-size:11px}}.web-room .tone-unknown{--record-accent: #80629d;--record-bg: #f1eaf8;--record-border: #ddd1e9}.web-room .skill-reference{color:#356655;font-weight:650;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.web-room.skill-reference-popup{z-index:150;width:min(440px,calc(100vw - 32px));max-height:min(80vh,var(--radix-popover-content-available-height));overflow:auto;padding:10px;background:#fffdf8;border:1px solid #d8dfd8;border-radius:12px;box-shadow:0 12px 36px #18282026}.web-room .skill-actions{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border-top:1px solid #d8dfd8}.web-room .skill-actions small,.web-room .skill-use-note{display:block;width:100%;color:#657268;font-size:12px}.web-room .preview-skill-item{display:flex;align-items:center;gap:6px}.web-room .preview-skill-item .preview-skill-row{flex:1;min-width:0}.web-room .skill-quick-use{flex-shrink:0}.web-room .tone-skill{background:#eef5f0;border-color:#b9d2c0}.web-room .skill-check-choice{margin:12px 8px 12px 0}.web-room .skill-automation-summary{padding:0 12px 12px;color:var(--muted);font-size:12px}.dice-evidence{margin-top:12px;padding-top:10px;border-top:1px solid color-mix(in srgb,currentColor 15%,transparent);font-size:13px;line-height:1.65}.dice-evidence h4{margin:16px 0 6px;font-weight:600}.dice-evidence pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:360px;overflow:auto;font-size:11px;padding:10px;background:#00000008;border-radius:6px}.dice-evidence textarea{width:100%;min-height:160px}.dice-evidence summary{cursor:pointer;padding:6px 0}.web-room.room-table .room-connection{padding:5px 18px}.web-room.room-table .room-topbar{padding:4px 18px 6px}.web-room.room-table .room-topbar h1{font-size:18px}.web-room.room-table .room-tabs{padding:0 18px}.web-room.room-table .room-tabs button{padding:7px 16px}.web-room.room-table .game-page{grid-template-columns:240px minmax(0,1fr) 280px;grid-template-rows:minmax(180px,1fr) 300px;gap:10px;padding:10px;overflow:hidden}.web-room.room-table .game-page>.panel{border-radius:6px;box-shadow:none;background:#fff}.web-room.room-table .game-page .section-head{padding:12px 10px;gap:6px;flex:none}.web-room.room-table .game-page h2{font-size:15px}.web-room.room-table .game-page h2 .muted{font-size:12px;font-weight:400;margin-left:5px}.web-room.room-table .squad{grid-column:1;grid-row:1;min-height:0}.web-room.room-table .roster-tools{padding:0 8px 8px}.web-room.room-table .roster-tools input{width:100%;font-size:12px}.web-room.room-table .roster{padding:0 8px 8px;overflow:auto;flex:1}.web-room.room-table .roster-cards{grid-template-columns:minmax(0,1fr);gap:7px}.web-room.room-table .roster-card{border:1px solid #e9ece6;background:#fafbf8;border-radius:5px}.web-room.room-table .roster-card.selected{border-color:#ccab65;background:#f7faf3}.web-room.room-table .character-row{width:100%;gap:8px;padding:8px;text-align:left}.web-room.room-table .character-row .avatar{width:36px;height:42px;border-radius:5px;font-size:22px}.web-room.room-table .character-row-info{flex:1;min-width:0}.web-room.room-table .character-row-title b{font-size:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.web-room.room-table .vital{grid-template-columns:19px minmax(10px,1fr) 25px;font-size:10px}.web-room.room-table .pc-row-actions{display:none}.web-room.room-table .roster-card-actions{gap:4px;padding:0 8px 5px}.web-room.room-table .roster-card-actions .micro{font-size:10px}.web-room.room-table .squad-footer{display:flex;justify-content:space-between;gap:6px;align-items:center;padding:8px;min-height:37px}.web-room.room-table .squad-footer b{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.web-room.room-table .squad-footer button{font-size:11px}.web-room.room-table .chat-panel{grid-column:1;grid-row:2;min-height:0}.web-room.room-table .chat-panel .section-head{padding:8px 10px}.web-room.room-table .chat-panel .primary{padding:7px 10px;font-size:12px;min-height:32px}.web-room.room-table .chat-history-link{padding:0}.web-room.room-table .chat-scroll{padding:4px 10px}.web-room.room-table .chat-message{display:grid;grid-template-columns:26px minmax(0,1fr);gap:6px;margin-bottom:12px;align-items:start}.web-room.room-table .chat-message>time{display:none}.web-room.room-table .chat-message .avatar{width:26px;height:30px;font-size:14px}.web-room.room-table .chat-message>div{display:block}.web-room.room-table .chat-message b{font-size:11px}.web-room.room-table .chat-message p{font-size:12px;line-height:1.5;overflow-wrap:anywhere;margin-top:2px}.web-room.room-table .chat-composer{gap:6px;padding:8px}.web-room.room-table .chat-composer input{width:100%;font-size:12px}.web-room.room-table .scene-npcs{grid-column:3;grid-row:1 / 3;min-height:0;display:flex;flex-direction:column}.web-room.room-table .scene-npc-scroll{overflow:auto;flex:1;min-height:0;padding:0 8px}.web-room.room-table .standby-npcs{margin-top:18px}.web-room.room-table .standby-npcs summary{cursor:pointer;font-size:12px;padding:10px 4px;background:#f1f4ef;border-radius:4px}.web-room.room-table .standby-npc{display:flex;align-items:center;gap:8px;padding:12px 2px;border-bottom:1px solid var(--border)}.web-room.room-table .standby-npc .avatar{width:32px;height:38px;font-size:20px}.web-room.room-table .standby-npc>div{display:flex;flex-direction:column;flex:1;min-width:0;gap:3px}.web-room.room-table .standby-npc b{font-size:12px;overflow-wrap:anywhere}.web-room.room-table .standby-npc button{font-size:11px}.web-room.room-table .npc-manage-link{padding:12px 8px;font-size:12px}.web-room.room-table .room-empty{padding:16px 6px;font-size:12px;line-height:1.6}.web-room .map-workspace{grid-column:2;grid-row:1 / 3;display:flex;min-width:0;min-height:0;gap:10px;padding:5px 0}.web-room .map-tools{width:38px;flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;padding:5px 3px;border:1px solid var(--border);border-radius:6px;background:#fff;align-self:flex-start}.web-room .map-tools button{width:30px;height:32px;padding:4px;border-radius:4px}.web-room .map-tools button[aria-pressed=true]{outline:2px solid #739981;outline-offset:-2px;background-color:#e7eee6}.web-room .map-tool-divider{width:23px;height:1px;background:var(--border);margin:3px 0}.web-room .map-tools .map-swatch{width:24px;height:24px;border:1px solid #d6dcd4}.web-room .map-main{display:flex;flex-direction:column;min-width:0;min-height:0;flex:1}.web-room .map-heading{display:flex;align-items:center;justify-content:space-between;padding:4px 2px 12px;gap:8px}.web-room .map-viewport{flex:1;min-height:0;min-width:0;overflow:auto;background:#fafbf8;border:1px solid var(--border);overscroll-behavior:contain}.web-room .map-grid{display:grid;width:max-content;outline-offset:-2px;-webkit-user-select:none;user-select:none}.web-room .map-row{display:contents}.web-room .map-axis{display:flex;align-items:center;justify-content:center;font-size:10px;color:#66736d;background:#f2f4ef;border-right:1px solid #e1e5dd;border-bottom:1px solid #e1e5dd}.web-room .map-cell{position:relative;display:flex;justify-content:center;align-items:center;border-right:1px solid #daddd3;border-bottom:1px solid #daddd3;cursor:crosshair;min-width:0;font-size:13px}.web-room .map-cell[aria-selected=true]{outline:2px dashed #78a486;outline-offset:-2px}.web-room .map-cell:hover{box-shadow:inset 0 0 0 2px #88a996}.web-room .map-terrain{overflow:hidden;white-space:nowrap;max-width:100%}.web-room .map-cell-tokens{position:absolute;inset:1px;display:flex;align-items:center;justify-content:center;overflow:auto;gap:1px}.web-room .map-cell .map-token{padding:0;min-width:min(14px,100%);width:min(25px,100%);height:min(25px,100%);border:2px solid #427c5b;border-radius:3px;font-weight:600;font-size:14px;background:#f7fbf4;color:#28533b;flex-shrink:0}.web-room .map-cell .map-token[aria-pressed=true]{background:#d9ebd5;border-color:#224e37}.web-room .map-cell .npc-token{border-color:#aa8240;color:#775d31;background:#fff7e7}.web-room .map-footer{display:flex;justify-content:space-between;align-items:center;gap:5px;padding:8px 0 0;font-size:11px;color:#748079}.web-room .map-footer>span{display:flex;gap:4px;align-items:center}.web-room .map-footer>div{display:flex;align-items:center;flex:none;gap:4px}.web-room .map-footer button{padding:5px;background:#fff;border:1px solid var(--border);border-radius:4px}.web-room .map-text-editor{display:flex;align-items:center;gap:8px;padding-top:8px}.web-room .map-text-editor input{flex:1;min-width:0}.web-room .map-text-editor button{padding:7px 12px}.web-room .map-error{font-size:12px;color:#a23f45;padding:6px 0}.web-room .map-error button{text-decoration:underline;margin-left:8px}@media(min-width:1600px){.web-room.room-table .game-page{grid-template-columns:240px minmax(0,1fr) 288px}}@media(max-height:800px)and (min-width:1001px){.web-room.room-table .game-page{grid-template-rows:minmax(160px,1fr) 200px}.web-room.room-table .character-row{padding:5px 7px}}@media(max-width:1100px)and (min-width:761px){.web-room.room-table .game-page{grid-template-columns:200px minmax(0,1fr) 190px}.web-room .map-footer{flex-wrap:wrap}}@media(max-width:1000px){.web-room.room-table .game-page{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto;overflow:visible}.web-room.room-table .map-workspace{grid-column:1;grid-row:1;height:64dvh;min-height:390px}.web-room.room-table .squad{grid-column:1;grid-row:2;height:250px;min-height:0;max-height:none}.web-room.room-table .chat-panel{grid-column:1;grid-row:3;height:250px}.web-room.room-table .scene-npcs{grid-column:1;grid-row:4;max-height:340px}.web-room.room-table .room-connection{padding:6px 12px}.web-room.room-table .room-topbar{padding:5px 12px}.web-room.room-table .room-tabs{padding:0 8px;overflow:auto}.web-room.room-table .room-tabs button{padding:8px 10px;white-space:nowrap}.web-room.room-table .room-roll-controls .micro{display:none}.web-room .map-footer{flex-wrap:wrap}}.web-room.room-table .room-topbar .room-tabs{border:0;padding:0;margin-right:auto}.web-room.room-table .room-topbar{gap:22px}.web-room.room-table .room-topbar .room-roll-controls>.micro{display:none}.web-room.room-table .game-page .character-row-title b{font-size:14px}.web-room.room-table .game-page .vital{font-size:11px}.web-room.room-table .chat-message p{font-size:13px}.web-room.room-table .chat-message b{font-size:12px}@media(max-width:1280px)and (min-width:1101px){.web-room.room-table .game-page{grid-template-columns:238px minmax(0,1fr) 220px}}@media(max-width:1000px){.web-room.room-table .room-topbar{flex-wrap:wrap;gap:6px 12px}.web-room.room-table .room-topbar .room-tabs{order:3;width:100%}.web-room.room-table .room-roll-controls{margin-left:auto}}@media(max-width:1000px){.web-room.room-table .app-shell{height:auto;min-height:calc(100dvh - 57px)}}.web-room.room-table .app-shell{min-height:0}.web-room .map-grid{margin-inline:auto}.web-room .map-cell-tokens{justify-content:safe center}.web-room .token-action-bar,.web-room .token-undo{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;padding:8px;margin-bottom:8px;background:#e9f0e7;border-radius:5px;font-size:12px}.web-room .token-action-bar>div{display:flex;gap:8px}.web-room .token-action-bar button,.web-room .token-undo button{padding:4px;font-size:12px}.web-room .token-undo{background:#f5f1e6}.web-room .token-undo button{text-decoration:underline}.web-room .token-dialog{margin:auto;padding:22px;width:min(380px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;background:#fbfcf8;color:#223933;border:1px solid #dce3d7;border-radius:10px;box-shadow:0 16px 60px #18392a33}.web-room .token-dialog::backdrop{background:#18392a55}.web-room .token-dialog header,.web-room .token-dialog footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.web-room .token-dialog h2{font-size:18px}.web-room .token-dialog label{display:flex;flex-direction:column;gap:7px;font-size:13px;margin:16px 0 8px}.web-room .token-dialog input,.web-room .token-dialog select{width:100%}.web-room .token-dialog .token-color-label,.web-room .token-dialog .token-visible-label{flex-direction:row;align-items:center}.web-room .token-dialog input[type=color]{width:48px;height:32px;padding:2px}.web-room .token-dialog input[type=checkbox]{width:16px;height:16px}.web-room .token-dialog footer{margin-top:20px;justify-content:flex-end}.web-room .token-dialog footer button{padding:8px 14px}.web-room .token-character-shortcut{font-size:11px;max-width:45%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.web-room .map-heading{flex-wrap:wrap}.scenes-page{flex:1;min-height:0;overflow:auto}.scene-manager{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px;padding:12px;height:100%;min-height:550px}.scene-list{display:flex;flex-direction:column;padding:14px;gap:12px;min-height:0}.scene-list header,.scene-detail-header,.scene-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.scene-manager h2{font-size:16px;margin:0}.scene-list p,.scene-detail-header p{margin:5px 0}.scene-archive-toggle{display:flex;align-items:center;gap:6px;font-size:12px}.scene-items{display:flex;flex-direction:column;gap:8px;overflow:auto}.scene-item{display:flex;flex-direction:column;text-align:left;align-items:flex-start;gap:5px;padding:12px;border:1px solid #dce3db;border-radius:6px;background:#fff;overflow-wrap:anywhere}.scene-item[aria-pressed=true]{border-color:#427c5b;background:#edf3e9}.scene-item span,.scene-item small{font-size:12px;color:#637369}.scene-detail{display:flex;flex-direction:column;min-width:0;min-height:0;gap:10px}.scene-detail>.map-workspace{flex:1;min-height:350px}.scene-name-form{padding:14px}.scene-name-form label{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.scene-name-form button{margin-right:8px}@media(max-width:800px){.scene-manager{grid-template-columns:minmax(0,1fr);height:auto}.scene-items{max-height:230px}.scene-detail>.map-workspace{height:550px;flex:none}}.web-room .scene-item{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:12px;border:1px solid #dce3db;border-radius:6px}.web-room .scene-item[aria-pressed=true]{border-color:#427c5b}.web-room .scene-actions button{padding:7px 10px;min-height:34px}.web-room .map-edit-options{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:4px 0 8px;font-size:12px}.web-room .map-edit-options label{display:flex;align-items:center;gap:5px}.web-room .map-edit-options input:not([type=color]){width:85px;padding:4px 6px}.web-room .map-edit-options input[type=color]{width:30px;height:26px;padding:1px}.web-room .map-edit-options button,.web-room .map-edit-options select{padding:4px 8px;border:1px solid var(--border);border-radius:4px;background:#fff}.web-room .map-grid{touch-action:none}.web-room .map-cell[aria-selected=true]{outline:none;box-shadow:inset 0 0 0 1px #739981}.web-room .map-cell[aria-selected=true]:after{content:"";position:absolute;inset:0;background:#427c5b15;pointer-events:none;z-index:5}.web-room .map-cell[data-active=true]:after{content:"";position:absolute;inset:0;pointer-events:none;outline:2px solid #427c5b;outline-offset:-2px;z-index:5}.web-room .map-text-editor{flex-wrap:wrap}.web-room .map-text-editor input{min-width:100px}.web-room .map-tools{max-height:100%;overflow-y:auto}.web-room .map-tools button,.web-room .map-tool-divider{flex-shrink:0}.web-room .map-cell{border-right-color:transparent;border-bottom-color:transparent}.map-cell-edges{position:absolute;inset:0;pointer-events:none;z-index:2;box-sizing:border-box}.web-room .map-cell-edges{right:-1px;bottom:-1px}.web-room .map-cell-tokens{z-index:4}.web-room .map-grid-dot{position:absolute;left:0;top:0;width:2px;height:2px;transform:translate(-50%,-50%);border-radius:50%;background:#59645e;box-shadow:0 0 0 .5px #ffffffb3;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:3}.map-paste-dialog{width:min(720px,calc(100vw - 24px));max-height:calc(100dvh - 30px);overflow:auto;margin:auto;padding:20px;border:1px solid #dce3db;border-radius:10px;color:#304b3b;background:#fafbf8}.map-paste-dialog::backdrop{background:#173c3155}.map-paste-dialog header,.map-paste-dialog footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.map-paste-dialog h2{font-size:17px;margin:0}.map-paste-dialog p{font-size:13px;margin:10px 0}.map-paste-dialog label{display:flex;gap:8px;align-items:center;font-size:13px;margin:10px 0}.map-paste-dialog select{padding:6px}.map-paste-dialog footer{justify-content:flex-end;margin-top:14px}.map-paste-dialog footer button{padding:8px 14px}.paste-warning{color:#815b27}.paste-preview-viewport{overflow:auto;max-height:320px;border:1px solid #dce3db;padding:8px;background:#eef1eb}.paste-preview-grid{display:grid;width:max-content}.paste-preview-cell{position:relative;width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:13px}.paste-preview-cell>span{overflow:hidden;white-space:nowrap}.web-room .map-size-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:5px 0;font-size:12px}.web-room .map-size-controls input{width:76px}.web-room .map-size-controls button{padding:3px 7px}.web-room .map-viewport{overflow-anchor:none}.beacon-toolbar-host{padding:0 12px 8px}.beacon-controls,.beacon-colors{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.beacon-colors{width:100%}.beacon-color{display:flex;align-items:center;border:1px solid #d6d8d0;border-radius:6px}.beacon-color button{padding:5px;font-size:12px;background:transparent;border:0;min-height:30px}.beacon-color button[aria-pressed=true]{background:#e5e8df;outline:2px solid currentColor;border-radius:4px}.beacon-color .beacon-remove{color:#ba2929;font-size:22px;min-width:30px}.map-beacons{pointer-events:none;position:absolute;inset:0;display:flex;justify-content:center;align-items:center;z-index:4}.map-beacon{position:relative;width:12px;height:10px;border:2px solid currentColor;border-radius:50%;box-shadow:0 0 8px currentColor;font-size:8px;line-height:7px;text-align:center;background:#fff}.map-beacon:before{content:"";position:absolute;bottom:5px;left:-2px;width:12px;height:35px;background:linear-gradient(to top,currentColor,transparent);opacity:.55}.chat-action-buttons{display:flex;align-items:center;gap:6px;flex-shrink:0}.beacon-toolbar-host:not(:has(.beacon-colors)){display:none}.beacon-toolbar-host,.map-beacon{flex-shrink:0}.room-import-search{display:flex;gap:8px;margin:12px 0}.room-import-search input{flex:1;min-width:0}.room-import-results{max-height:min(50dvh,480px);overflow-y:auto}.web-room .map-add-token{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;white-space:nowrap}.web-room .map-token[data-held=true]{opacity:.3;border-style:dashed}.floating-map-token{position:fixed;z-index:10000;pointer-events:none;width:32px;height:32px;display:grid;place-items:center;border:2px solid currentColor;border-radius:6px;background:#fffffff0;box-shadow:0 5px 12px #0003;font-size:20px;transform:rotate(-5deg)}.web-room .token-drop-preview{position:absolute;inset:0;z-index:4;pointer-events:none;border:2px dashed #427c5b;background:#427c5b22;color:#427c5b;display:grid;place-items:center}.web-room .token-drop-preview[data-blocked=true]{border-color:#ba2929;background:#ba292922;color:#ba2929}.web-room.room-table .squad .section-head{height:32px;min-height:32px;padding:2px 8px}.web-room.room-table .squad .section-head .icon-button{width:26px;height:26px;padding:3px}.web-room.room-table .squad .roster{padding:2px 6px 6px}.web-room.room-table .squad .roster-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:2px}.web-room.room-table .squad .roster-card{position:relative;height:56px;min-height:56px;border:0;border-bottom:1px solid #e9ece6;border-radius:3px;background:transparent}.web-room.room-table .squad .roster-card.selected{background:#e8f0e6;box-shadow:inset 3px 0 #3b8664}.web-room.room-table .squad .character-row{height:55px;min-height:0;margin:0;padding:3px 28px 3px 5px;gap:6px;border:0;border-radius:3px;align-items:center;background:transparent}.web-room.room-table .squad .character-row:hover{background:#f0f3eb}.web-room.room-table .squad .character-row .avatar{width:28px;height:28px;border-radius:4px;font-size:18px}.web-room.room-table .squad .character-row-title{margin:0;gap:3px;height:17px;line-height:17px}.web-room.room-table .squad .character-row-title b{font-size:13px;letter-spacing:0}.web-room.room-table .squad .selected-label{flex:none}.web-room.room-table .squad .selected-label-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.web-room.room-table .squad .character-row .vitals{display:grid;grid-template-columns:minmax(0,1fr);gap:1px}.web-room.room-table .squad .character-row .vital{grid-template-columns:16px minmax(6px,1fr) auto;gap:3px;font-size:10px;line-height:14px}.web-room.room-table .squad .character-row .vital>span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}.web-room.room-table .squad .character-row meter{width:100%;min-width:0;height:5px}.web-room.room-table .squad-info{position:absolute;right:2px;top:15px;width:24px;height:24px;padding:4px;display:flex;align-items:center;justify-content:center;color:#536c5d;opacity:0}.web-room.room-table .squad .roster-card:hover .squad-info,.web-room.room-table .squad .roster-card:focus-within .squad-info,.web-room.room-table .squad .roster-card.selected .squad-info{opacity:1}.web-room.room-table .squad button:focus-visible{outline:2px solid #355f4d;outline-offset:-2px}@media(hover:none),(pointer:coarse){.web-room.room-table .squad-info{opacity:1}}@media(min-width:1001px){.web-room.room-table .game-page{grid-template-rows:minmax(min(390px,60%),1fr) clamp(140px,26dvh,280px)}}@media(max-width:1000px){.web-room.room-table .squad{height:216px}.web-room.room-table .squad .roster-cards{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:6px}.web-room.room-table .squad-info{opacity:1}.web-room.room-table .squad .character-row{padding-right:26px;gap:4px}.web-room.room-table .squad .character-row .avatar{width:24px;height:28px}.web-room.room-table .squad .character-row .vitals{gap:1px}.web-room.room-table .squad .character-row .vital{grid-template-columns:auto auto;gap:2px}.web-room.room-table .squad .character-row meter{display:none}}@media(max-width:600px){.web-room.room-table .squad .roster-cards{grid-template-columns:minmax(0,1fr)}}.web-room .room-rule-toggle{border:1px solid #ccd8cc;border-radius:4px;padding:2px 6px;font-size:11px;color:#355f4d;background:#f4f7f1}.web-room .room-rule-toggle:focus-visible{outline:2px solid #355f4d;outline-offset:2px}.web-room .room-rule-toggle:disabled{opacity:.6;cursor:default}.vital-editor{display:grid;gap:12px;border:0;padding:0;min-width:0}.vital-editor label{display:grid;gap:6px}.vital-editor input,.vital-editor select{width:100%;min-width:0}.vital-edit-button{flex:0 0 24px;padding:2px;align-self:center}.web-room.room-table .squad .vital-edit-button{position:absolute;right:28px;top:16px;width:24px;height:24px}.web-room.room-table .squad .roster-card:has(.vital-edit-button) .character-row{padding-right:54px}.web-room.room-table .scene-npcs .roster-card{position:relative}.web-room.room-table .scene-npcs .vital-edit-button{position:absolute;right:70px;bottom:5px;width:24px;height:24px}.web-room .room-map-and-skills{grid-column:2;grid-row:1 / 3;display:flex;flex-direction:column;min-width:0;min-height:0;gap:8px}.web-room.room-table .room-map-and-skills>.map-workspace{flex:1;min-height:0;height:auto}.web-room .room-skill-bar{position:relative;z-index:30;flex:none;min-width:0;padding:8px 10px;border:1px solid #cdd8cc;border-radius:8px;background:#f9fbf7;display:flex;flex-direction:column;gap:6px}.web-room .room-skill-bar.is-collapsed{padding-block:4px}.web-room .room-skill-bar-tools{display:flex;gap:8px;margin-left:auto;flex:none}.web-room .room-skill-bar-tools button,.web-room .room-skill-preview-toolbar button{font-size:12px;padding:4px 6px}.web-room .room-skill-preview-toolbar{display:flex;align-items:center;gap:6px;padding:6px;position:sticky;top:0;background:#f9fbf7;border-bottom:1px solid #cdd8cc;z-index:1}.web-room .room-skill-preview-toolbar .room-skill-share{margin-left:auto;color:#264a3b}.web-room .room-skill-bar button:focus-visible{outline:2px solid #355f4d;outline-offset:-2px}.web-room .room-skill-bar-header{display:flex;align-items:center;gap:10px;min-height:28px;flex:none}.web-room .room-skill-bar-header strong{min-width:0;max-width:40%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px}.web-room .room-skill-bar-header select{max-width:160px;padding:3px 6px;font-size:12px}.web-room .room-skill-bar-header .micro{flex:none}.web-room .room-skill-bar-status{font-size:12px;color:#835817}.web-room .room-skill-bar-buttons{display:flex;flex-wrap:nowrap;align-content:flex-start;gap:6px;min-height:0;overflow:auto;padding:2px;max-height:160px}.web-room .room-skill-bar-buttons.is-expanded{flex-wrap:wrap}.web-room .room-skill-info{font-size:11px;padding:4px;color:#355f4d}.web-room .room-skill-slot{display:flex;align-items:center;flex:none;max-width:100%}.web-room button.room-skill-button{height:38px;max-width:200px;padding:6px 12px;border:1px solid #c3d4c2;border-radius:5px;background:#e8f0e6;font-size:13px;color:#264a3b}.web-room button.room-skill-button:hover:not(:disabled){background:#d7e6d3}.web-room .room-skill-button>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.web-room button.room-skill-button.life{background:#f3eee4;border-color:#dfd2ba;color:#705c38}.web-room .room-skill-button small{flex:none;font-size:10px}.web-room .room-skill-bar-empty{color:var(--muted);font-size:13px;padding:8px 0}.web-room .room-skill-bar-preview{position:absolute;bottom:100%;left:0;width:min(460px,100%);max-height:min(420px,45dvh);overflow:auto;border:1px solid #cdd8cc;border-radius:8px;background:#fff;box-shadow:0 5px 20px #22393325}.web-room .room-skill-bar-issue{padding:8px 12px;font-size:12px;color:#835817}@media(max-width:1000px){.web-room .room-map-and-skills{grid-column:1;grid-row:1;height:max(460px,72dvh)}}@media(max-width:600px){.web-room .room-skill-bar-header{flex-wrap:wrap;gap:4px 8px}.web-room .room-skill-bar-header strong{max-width:100%}.web-room .room-skill-bar-header select{max-width:100px}.web-room .room-skill-bar-status{flex-basis:100%}}.web-room .avatar-badge{flex:none;color:#7955a4;font-size:10px}.web-room .avatar-manager{display:flex;flex-direction:column;gap:12px}.web-room .avatar-manager form,.web-room .avatar-manager fieldset{display:flex;flex-direction:column;gap:12px;min-width:0}.web-room .avatar-manager fieldset{border:0;padding:0;margin:0}.web-room .avatar-manager label{display:flex;align-items:center;gap:8px;font-size:13px}.web-room .avatar-manager input[type=checkbox]{flex:none;width:16px;height:16px}.web-room .avatar-manager input:not([type=checkbox]),.web-room .avatar-manager select{min-width:0;max-width:100%;padding:6px 8px}.web-room .avatar-resource,.web-room .avatar-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.web-room .avatar-resource label,.web-room .avatar-stats label{align-items:stretch;flex-direction:column}.web-room .avatar-actions{display:flex;flex-wrap:wrap;gap:8px}.web-room .avatar-actions button{padding:6px 12px;border:1px solid #ccd8cc;border-radius:5px}.web-room .avatar-list-item{padding:12px;border:1px solid #ccd8cc;border-radius:6px}.web-room .avatar-list-item p{margin:6px 0;font-size:12px}.web-room .avatar-skill-options{max-height:220px;overflow:auto;padding:8px;background:#f0f3eb}.web-room .avatar-image-editor{display:flex;align-items:center;gap:12px}.web-room .avatar-manager .muted{font-size:12px}@media(max-width:600px){.web-room .avatar-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.web-room .room-skill-bar-header .avatar-badge{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.vital-resource{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.7fr);gap:20px;padding:16px;border:1px solid var(--border, #dce3da);border-radius:12px;--vital-color: #b84646}.vital-resource-me{--vital-color: #397ab1}.vital-controls{display:grid;gap:12px;min-width:0}.vital-controls strong{display:flex;justify-content:space-between}.vital-preview{height:14px;border-radius:7px;overflow:hidden;background:#e8ece7}.vital-preview>div{height:100%;background:var(--vital-color)}.vital-slider-row{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:12px;align-items:center}.vital-editor input[type=range]{accent-color:var(--vital-color);min-height:32px;padding:0;cursor:pointer}.vital-description{align-self:center;font-size:14px;overflow-wrap:anywhere}@media(max-width:600px){.vital-resource{grid-template-columns:minmax(0,1fr);gap:8px;padding:12px}.vital-description p{margin:4px 0}}.web-room .map-main{position:relative}.web-room .map-main .map-heading{flex-wrap:nowrap;flex:none;height:32px;padding:0 2px 6px}.web-room .map-heading h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.web-room .map-heading>.micro{flex:none;white-space:nowrap}.web-room .map-main .map-footer{height:38px;flex:0 0 38px;flex-wrap:nowrap;padding:4px 0 0;min-width:0}.web-room .map-status{min-width:0;flex:1}.web-room .map-status>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.web-room .map-status>svg,.web-room .map-status>button{flex:none}.web-room .map-token-popover,.web-room .map-settings-popover,.web-room .map-add-popover{color:#223933;background:#fbfcf8;border:1px solid #dce3d7;border-radius:8px;padding:12px;box-shadow:0 8px 28px #18392a26;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto}.web-room .map-token-popover{position:fixed;margin:0;width:240px;inset:auto}.web-room .token-menu-content>span{display:block;margin-bottom:12px;overflow-wrap:anywhere}.web-room .token-menu-content>div,.web-room .map-settings-popover header{display:flex;justify-content:space-between;gap:12px}.web-room .token-menu-content button,.web-room .map-add-popover button{padding:8px}.web-room .map-settings-popover{width:340px}.web-room .map-add-popover:popover-open{display:flex;flex-direction:column;gap:8px}.web-room .map-tool-overlay,.web-room .map-main .map-text-editor,.web-room .map-notices{position:absolute;z-index:5;inset-inline:8px;width:auto;padding:8px;border:1px solid #dce3d7;border-radius:6px;background:#fbfcf8;box-shadow:0 4px 16px #18392a1a}.web-room .map-tool-overlay{top:40px;flex-wrap:wrap}.web-room .map-main .map-text-editor{bottom:46px;flex-wrap:wrap}.web-room .map-text-editor input{min-width:80px}.web-room .map-notices{top:40px}.web-room .map-failure-notices{top:auto;bottom:46px}.web-room .map-notices:empty{display:none}.web-room .map-notices>*{margin:0}.web-room .map-token{-webkit-touch-callout:none}.web-room .map-tools{max-height:100%;overflow:auto}.web-room .map-tools>button,.web-room .map-tools>.map-tool-divider{flex-shrink:0}.room-workspace-shell{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.room-workspace-shell>:not(.room-focused){flex-shrink:0}.web-room.room-focused{flex:1;min-height:0;min-width:0}.web-room.room-focused .app-shell{position:relative;height:100%;min-height:0}.web-room .room-workspace-header{display:flex;flex:0 0 48px;align-items:center;gap:8px;padding:0 10px;min-width:0;border-bottom:1px solid var(--border);background:#fbfcf8}.web-room .room-workspace-header button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:32px;padding:5px 8px;font-size:12px;white-space:nowrap}.web-room .room-title-menu{min-width:0;max-width:240px;font-weight:600}.web-room .room-title-menu>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.web-room .room-title-menu svg{flex:none}.web-room .room-connection-indicator{width:7px;height:7px;border-radius:50%;background:#b87616;flex:none}.web-room .room-connection-indicator[data-live=true]{background:#3e785a}.web-room .room-rule-badge{font-size:11px;color:#607368;flex:none}.web-room .room-primary-tabs{display:flex;gap:4px;flex:none}.web-room .room-primary-tabs [aria-selected=true],.web-room .room-management-trigger[data-active=true]{background:#e8f0e6;color:#315e46;box-shadow:inset 0 -2px #548165}.web-room .room-header-actions{display:flex;gap:4px;margin-left:auto;flex:none}.web-room .room-count-badge{font-size:10px;border-radius:8px;padding:0 4px;background:#e2eadd}.web-room .room-pending-action{color:#895417;background:#fff2d9}.web-room .room-workspace-select{display:none}.web-room .room-header-popover{position:fixed;inset:var(--room-menu-top, 56px) auto auto 10px;margin:0;width:min(320px,calc(100vw - 20px));max-height:calc(100dvh - var(--room-menu-top, 56px) - 8px);overflow:auto;color:#223933;background:#fbfcf8;border:1px solid #dce3d7;border-radius:8px;padding:12px;box-shadow:0 8px 28px #18392a26}.web-room .room-header-popover:popover-open{display:flex;flex-direction:column;gap:8px}.web-room .room-header-popover header{display:flex;align-items:center;justify-content:space-between;gap:8px}.web-room .room-header-popover strong{overflow-wrap:anywhere;min-width:0}.web-room .room-header-popover p{font-size:12px;color:#607368}.web-room .room-header-popover>button,.web-room .room-header-popover>a{justify-content:flex-start;text-align:left;padding:8px;font-size:13px;white-space:normal}.web-room .room-header-popover li{padding:6px 0}.web-room .room-header-popover .room-danger-action{border-top:1px solid #dce3d7;color:#a04437}.web-room .room-workspace-notices{position:absolute;top:54px;right:12px;z-index:40;width:min(420px,calc(100% - 24px));pointer-events:none}.web-room .room-workspace-notices>*{pointer-events:auto;margin:0 0 6px;padding:8px 12px;border-radius:6px;box-shadow:0 4px 16px #18392a1a}.web-room.room-focused .game-page{--room-left-width: 240px;--room-right-width: 260px;position:relative;display:grid;grid-template-columns:var(--room-left-width) minmax(0,1fr) var( --room-right-width );grid-template-rows:minmax(0,1fr);flex:1;min-height:0;gap:8px;padding:8px;overflow:hidden}.web-room.room-focused .game-page.room-left-collapsed{--room-left-width: 0px}.web-room.room-focused .game-page.room-right-collapsed{--room-right-width: 0px}.web-room.room-focused .room-left-panel{grid-column:1;grid-row:1;min-height:0;min-width:0;display:grid;grid-template-rows:minmax(0,1fr) minmax(160px,.8fr);gap:8px}.web-room.room-focused .room-left-panel>.panel{grid-column:1;height:auto;min-height:0;border-radius:6px}.web-room.room-focused .scene-npcs{grid-column:3;grid-row:1;max-height:none}.web-room.room-focused .room-map-and-skills{grid-column:2;grid-row:1;height:auto;min-height:0}.web-room.room-focused .room-map-and-skills>.map-workspace{min-height:0}.web-room .room-panel-backdrop{display:none}.web-room .chat-action-buttons{flex-wrap:wrap}@media(max-width:1280px)and (min-width:1001px){.web-room.room-focused .game-page{--room-left-width: 210px;--room-right-width: 200px}.web-room .room-title-menu{max-width:180px}}@media(max-width:1000px){.web-room.room-focused .game-page{grid-template-columns:minmax(0,1fr)}.web-room.room-focused .room-map-and-skills{grid-column:1}.web-room.room-focused .room-left-panel,.web-room.room-focused .scene-npcs{position:absolute;inset:8px auto 8px 8px;width:min(320px,calc(100% - 32px));z-index:36;background:#fbfcf8;box-shadow:0 6px 24px #18392a33;border-radius:6px}.web-room.room-focused .scene-npcs{inset:8px 8px 8px auto}.web-room .room-panel-backdrop{display:block;position:absolute;inset:0;z-index:35;background:#18392a22;border-radius:0}}@media(max-width:700px){.web-room .room-workspace-header{gap:4px;padding:0 6px}.web-room .room-workspace-header .room-primary-tabs,.web-room .room-workspace-header .room-management-trigger{display:none}.web-room .room-workspace-select{display:block;min-width:0;flex:none}.web-room .room-workspace-select select{width:82px;min-height:32px;font-size:12px;padding:4px}.web-room .room-title-menu{flex:1;max-width:180px}.web-room .room-rule-badge,.web-room .room-member-trigger,.web-room .room-pending-label{display:none}.web-room .room-header-actions{gap:0}.web-room .room-workspace-header button{padding:5px}}.web-room.room-focused .chat-panel .section-head{flex-wrap:wrap}.web-room.room-focused .chat-history-link{flex:none;white-space:nowrap}@media(max-width:700px){.web-room .room-workspace-header .room-member-trigger{display:none}}.web-room .records-page{display:flex;flex-direction:column;gap:10px}.web-room .records-mode{flex:none;display:inline-flex;gap:3px;padding:3px;border-radius:9px;background:#f0f3ee;align-self:flex-start}.web-room .records-mode button{padding:6px 12px;border-radius:7px;font-size:13px;color:var(--muted)}.web-room .records-mode button.active{background:#fff;color:#2c4a3b;font-weight:600;box-shadow:0 1px 3px #22393314}.web-room .records-view{flex:1;min-height:0;display:flex}.web-room .records-view[hidden]{display:none}.web-room .records-view>*{flex:1;min-width:0;min-height:0}.web-room .ledger-block{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:16px}.web-room .ledger-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.web-room .ledger-section-head h3{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:600;color:#5a6a60}.web-room .ledger-section-head h3 svg{width:15px;height:15px}.web-room .ledger-section-head .text-button{padding:3px 5px;font-size:12px}.web-room .ledger-section-head .text-button svg{width:13px;height:13px}.web-room .ledger-balance{display:flex;align-items:baseline;gap:7px;margin:6px 0 2px}.web-room .ledger-balance strong{font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums;color:#223933}.web-room .ledger-balance span{font-size:12px;color:var(--muted)}.web-room .ledger-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column}.web-room .ledger-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:6px 0;border-bottom:1px dashed #edf0eb;font-size:12px}.web-room .ledger-row:last-child{border-bottom:0}.web-room .ledger-delta{font-weight:600;font-variant-numeric:tabular-nums}.web-room .ledger-delta.positive{color:#35624e}.web-room .ledger-delta.negative{color:#a3453f}.web-room .ledger-reason{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#35443b}.web-room .ledger-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);white-space:nowrap}.web-room .ledger-tag{font-style:normal;font-size:10px;line-height:1.4;padding:1px 5px;border-radius:4px;background:#eef3ea;color:#4b6a56}.web-room .ledger-row .text-button{padding:2px 4px;font-size:11px}.web-room .ledger-row .text-button svg{width:12px;height:12px}.web-room .ledger-trauma{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed #edf0eb}.web-room .ledger-trauma:last-child{border-bottom:0}.web-room .ledger-trauma p{margin:0 0 4px;font-size:13px;line-height:1.55;overflow-wrap:anywhere}.web-room .ledger-trauma.healed p{color:var(--muted);text-decoration:line-through;text-decoration-color:#b9c1bb}.web-room .ledger-row-actions{flex:none;display:flex;gap:2px}.web-room .ledger-row-actions .text-button{padding:2px 4px;font-size:11px;white-space:nowrap}.web-room .ledger-empty{margin:0;padding:18px 0;color:var(--muted);font-size:13px;text-align:center}.web-room .ledger-hint{margin:4px 0 0;font-size:11px;color:#8a948d}.web-room .ledger-error{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 0;padding:8px 10px;border:1px solid #f3d4d0;border-radius:6px;background:#fdf1ef;color:#a3453f;font-size:12px}.web-room .ledger-error button{flex:none;font-size:12px;color:#a3453f;text-decoration:underline}.web-room .ledger-blocked{display:flex;flex-direction:column;gap:5px;padding:8px 0 2px}.web-room .ledger-blocked p{margin:0;font-size:14px}.web-room .ledger-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.web-room .ledger-dialog-actions .primary{padding:9px 16px}.web-room .ledger-kind{display:flex;gap:3px;margin:12px 0;padding:3px;border-radius:8px;background:#f0f3ee}.web-room .ledger-kind button{flex:1;padding:7px 10px;border-radius:6px;color:var(--muted);font-size:13px}.web-room .ledger-kind button.active{background:#fff;color:#2c4a3b;font-weight:600;box-shadow:0 1px 3px #22393314}.web-room .ledger-field{display:flex;flex-direction:column;gap:6px;margin:12px 0 0;font-size:12px;color:var(--muted)}.web-room .ledger-field>span{font-weight:600}.web-room .ledger-field input,.web-room .ledger-field textarea{width:100%;color:#223933;font-size:14px}.web-room .ledger-definitions{display:flex;flex-direction:column;gap:3px;max-height:190px;overflow:auto;padding:5px;border:1px solid var(--border);border-radius:8px}.web-room .ledger-definition{justify-content:flex-start;padding:8px 10px;border-radius:5px;background:#f7f8f5;color:#35443b;font-size:13px;text-align:left;white-space:normal;overflow-wrap:anywhere}.web-room .ledger-definition.selected{background:#e4ede5;color:#2c4a3b;font-weight:600}.web-room .ledger-trauma-summary{margin:4px 0 0;padding:10px 12px;border-radius:8px;background:#f7f8f5}.web-room .ledger-trauma-summary p{margin:0;font-size:14px;line-height:1.6}.web-room .ledger-panel{height:100%;display:flex;flex-direction:column}.web-room .ledger-panel-head{flex:none;display:flex;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid var(--border)}.web-room .ledger-panel-head>div:first-child{min-width:0;margin-right:auto}.web-room .ledger-panel-head h2{margin:0;font-size:18px}.web-room .ledger-panel-head p{margin:4px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.web-room .ledger-panel-actions{flex:none;display:flex;align-items:center;gap:10px}.web-room .ledger-panel-actions .text-button{padding:5px 6px;font-size:12px}.web-room .ledger-panel-actions .text-button svg{width:13px;height:13px}.web-room .ledger-filters{flex:none;display:flex;gap:8px;padding:10px 20px;border-bottom:1px solid var(--border)}.web-room .ledger-filters select{padding:6px 9px;font-size:12px}.web-room .ledger-scroll{flex:1;min-height:0;overflow:auto;padding:16px 20px 32px}.web-room .ledger-timeline{display:flex;flex-direction:column;gap:10px;max-width:880px;margin:0 auto}.web-room .ledger-card{padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fff}.web-room .ledger-card header{display:flex;align-items:center;gap:9px}.web-room .ledger-character{padding:1px 0;color:#2c4a3b;font-size:14px;font-weight:600}.web-room .ledger-character:hover{text-decoration:underline;background:transparent}.web-room .ledger-card-label{padding:1px 6px;border-radius:4px;background:#f0f3ee;color:#5a6a60;font-size:11px}.web-room .ledger-card.trauma .ledger-card-label{background:#f6eef4;color:#7c5572}.web-room .ledger-card header time{margin-left:auto;flex:none;color:var(--muted);font-size:11px}.web-room .ledger-card-main{display:flex;align-items:center;gap:7px;margin:8px 0 0;font-size:13px;line-height:1.55;overflow-wrap:anywhere}.web-room .ledger-card-reason{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.55;overflow-wrap:anywhere}.web-room .ledger-status{padding:1px 7px;border-radius:999px;background:#edf1ea;color:#4b5f54;font-size:11px;line-height:1.6;white-space:nowrap}.web-room .ledger-status.scheduled,.web-room .ledger-status.active{background:#eef5e9;color:#3f6249}.web-room .ledger-status.completed,.web-room .ledger-status.healed{background:#eef0f3;color:#59616c}.web-room .ledger-status.cancelled,.web-room .ledger-status.voided{background:#fbeceb;color:#8b4a45}.web-room .ledger-banner{flex:none;margin:0;padding:8px 20px;border-bottom:1px solid var(--border);background:#fff5df;color:#835817;font-size:12px}.web-room .ledger-empty-state{display:flex;flex-direction:column;align-items:center;gap:9px;padding:52px 20px;text-align:center}.web-room .ledger-empty-state h3{margin:0;font-size:18px}.web-room .ledger-empty-state p{max-width:420px;margin:0;color:var(--muted);font-size:13px;line-height:1.6}@media(max-width:760px){.web-room .records-page{padding:10px 12px;gap:8px}.web-room .records-mode button{padding:5px 10px;font-size:12px}.web-room .ledger-panel-head{flex-wrap:wrap;padding:10px 12px;gap:8px}.web-room .ledger-panel-actions{width:100%;justify-content:flex-end}.web-room .ledger-panel-head h2{font-size:16px}.web-room .ledger-panel-actions{gap:4px}.web-room .ledger-panel-actions .text-button{font-size:11px}.web-room .ledger-filters{padding:8px 12px}.web-room .ledger-scroll{padding:12px}.web-room .ledger-card{padding:10px 12px}.web-room .ledger-row{grid-template-columns:44px minmax(0,1fr) auto}.web-room .ledger-row>.text-button{grid-column:1 / -1;justify-self:end}.web-room .ledger-row .ledger-meta{grid-column:2 / -1;grid-row:2}}
