:root{--tap-min: 44px;--text-min: .875rem;--text-muted: #52645d;--accent-text: #8a4a27;--surface-fixed: #f7f2e7;font-family:Inter,Noto Sans JP,Hiragino Kaku Gothic ProN,system-ui,sans-serif;color:#173f35;background:#f7f2e7;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-height:100%;background:#f7f2e7}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(circle at 95% 5%,rgba(244,201,93,.34),transparent 30rem),#f7f2e7}button,input,textarea,select{font:inherit}a{color:#1b6655}small{font-size:var(--text-min)}h1,h2,p{margin-top:0}h1{margin-bottom:.55rem;font-size:clamp(1.8rem,8vw,2.6rem);line-height:1.15}h2{font-size:1.2rem}.brand{display:inline-flex;align-items:center;gap:.65rem;color:#173f35;font-weight:800;text-decoration:none;letter-spacing:.01em}.brand img{border-radius:11px;box-shadow:0 4px 12px #173f3529}.brand-lockup{display:flex;align-items:center;gap:.55rem}.brand-attribution{color:var(--text-muted);font-size:var(--text-min);font-weight:600;text-decoration:none;white-space:nowrap}.auth-shell{width:min(100%,30rem);min-height:100vh;margin:0 auto;padding:max(2rem,env(safe-area-inset-top)) 1rem 0;display:flex;flex-direction:column}.auth-content{flex:1;display:flex;flex-direction:column;justify-content:center;gap:1.5rem}.card{border:1px solid rgba(23,63,53,.12);border-radius:22px;padding:1.35rem;background:#ffffffdb;box-shadow:0 18px 50px #173f351a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.eyebrow{margin-bottom:.45rem;color:var(--accent-text);font-size:var(--text-min);font-weight:800;letter-spacing:.17em}.lead{margin-bottom:1.5rem;color:#597068;line-height:1.6}form{display:grid;gap:1rem}label{display:grid;gap:.45rem;font-size:.88rem;font-weight:700}button,.button-link,.secondary-button,summary,input:not([type=checkbox]):not([type=radio]),select{min-height:var(--tap-min)}input,textarea,select{width:100%;min-height:48px;border:1px solid #b9c5bf;border-radius:12px;padding:.7rem .8rem;color:#173f35;background:#fff;outline:none}textarea{resize:vertical;line-height:1.55}input:focus,textarea:focus,select:focus{border-color:#1b6655;box-shadow:0 0 0 3px #1b665524}button,.secondary-button{border:1px solid #9eada6;border-radius:12px;padding:.65rem 1rem;color:#173f35;background:#fff;cursor:pointer;font-weight:800}.button-link{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:.65rem 1rem;font-weight:800;text-decoration:none}.compact{padding:.5rem .75rem;white-space:nowrap}button:disabled{cursor:wait;opacity:.65}.primary{border:1px solid #173f35;color:#fff;background:#173f35;box-shadow:0 5px #0d2922}.primary:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px #0d2922}.secondary-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.text-button{min-width:var(--tap-min);border:0;padding:.25rem;color:var(--text-muted);background:transparent}.text-button.danger{color:#9e2e2e}.error{margin:0;color:#9e2e2e;font-size:.9rem;line-height:1.5}.action-feedback{position:fixed;z-index:40;left:50%;bottom:max(5rem,calc(.75rem + env(safe-area-inset-bottom)));width:min(calc(100% - 2rem),38rem);min-height:var(--tap-min);margin:0;transform:translate(-50%);display:grid;grid-template-columns:minmax(0,1fr) var(--tap-min);align-items:center;gap:.65rem;border:1px solid;border-radius:14px;padding:.6rem .65rem .6rem .9rem;font-size:var(--text-min);font-weight:700;line-height:1.5;overflow-wrap:anywhere;box-shadow:0 10px 30px #173f353d}.action-feedback.error{border-color:#c87d7d;color:#812626;background:#fff7f5}.action-feedback.success{border-color:#78a393;color:#17614f;background:#f2faf6}.action-feedback button{width:var(--tap-min);min-width:var(--tap-min);min-height:var(--tap-min);border:0;padding:0;color:currentColor;background:transparent;font-size:1.4rem;line-height:1}.chat-shell .action-feedback{bottom:calc(var(--chat-sticky-bottom, 9.75rem) + .75rem)}.switch-link,.auth-note{margin:1.3rem 0 0;color:var(--text-muted);text-align:center;font-size:.88rem}.brand,.brand-attribution,.site-footer a,.switch-link a,.back-link{min-width:var(--tap-min);min-height:var(--tap-min);display:inline-flex;align-items:center}.auth-note{margin:0}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{min-height:68px;padding:max(.7rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) .7rem max(1rem,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid rgba(23,63,53,.12);background:var(--surface-fixed)}.user-actions{display:flex;align-items:center;gap:.7rem}.header-link{color:#1b6655;font-size:var(--text-min);font-weight:800;text-decoration:none}.nickname{max-width:8rem;overflow:hidden;text-overflow:ellipsis;font-size:var(--text-min);font-weight:700;white-space:nowrap}.content{width:min(100%,70rem);margin:0 auto;padding:2rem 1rem 3rem;flex:1}.content.narrow{width:min(100%,42rem)}.site-footer{width:100%;margin-top:auto;border-top:1px solid rgba(23,63,53,.1);padding:1.25rem 1rem max(1.5rem,env(safe-area-inset-bottom));color:var(--text-muted);text-align:center;font-size:.88rem}.site-footer a{color:inherit}.title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.title-actions{display:flex;align-items:center;gap:.5rem}@media(max-width:767px){.game-list-title-row{flex-direction:column;gap:.25rem}}.game-usage-guide{margin-top:1.25rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border:1px solid #b9c9c2;border-radius:14px;padding:1rem;background:#edf3ef}.game-usage-guide h2{margin:0 0 .5rem;font-size:1rem}.game-usage-guide p{margin:.25rem 0;font-size:var(--text-min);line-height:1.5}.game-usage-guide button{flex:none}.game-list-controls{margin-top:1rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem}.game-origin-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:1rem}.game-origin-tabs a{min-height:var(--tap-min);display:flex;align-items:center;justify-content:center;border:1px solid #9eada6;border-radius:12px;padding:.5rem .25rem;color:#173f35;background:#fff;font-weight:800;text-decoration:none}.game-origin-tabs a.selected{border-color:#1b6655;color:#fff;background:#1b6655}.game-list-controls .game-search{grid-column:1 / -1;min-width:0}.game-list-controls label span{color:var(--text-muted);font-size:var(--text-min)}.game-list-controls input,.game-list-controls select{min-width:0}.empty-state{min-height:19rem;margin-top:1.4rem;padding:2rem 1.3rem;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #9dafa6;border-radius:22px;color:var(--text-muted);text-align:center;background:#ffffff6b}.empty-state h2{margin:.7rem 0 .45rem;color:#173f35}.empty-state p{margin:0;line-height:1.6}.empty-state .button-link,.filtered-empty-state .secondary-button{margin-top:1.25rem}.empty-icon{font-size:2.8rem;color:var(--accent-text)}.back-link{margin-bottom:1.2rem;padding-block:.35rem;text-decoration:none;font-weight:700}.admin-card{margin-top:1.4rem}.admin-card>p{color:var(--text-muted);line-height:1.6}.admin-figure-list{display:grid;gap:.65rem;margin:1rem 0 0;padding:0;list-style:none}.admin-figure-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.25rem .75rem;padding:.75rem;border:1px solid #d7ded9;border-radius:10px}.admin-figure-list a{overflow:hidden;color:#1b6655;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.admin-figure-list span{color:#96501c;font-size:var(--text-min);font-weight:700}.admin-figure-list small{grid-column:1 / -1;color:var(--text-muted)}.invitation{margin-top:1.2rem;display:grid;gap:.65rem;padding:1rem;border-radius:14px;background:#edf3ef}.invitation span{font-size:var(--text-min);font-weight:800}.invitation code{overflow-wrap:anywhere;color:#173f35;font-size:1rem}.loading{min-height:100vh;display:grid;place-items:center;color:var(--text-muted)}.game-grid{margin-top:1.4rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:1rem}.game-card{min-width:0;min-height:12rem;padding:1.25rem;display:flex;flex-direction:column;border:1px solid rgba(23,63,53,.14);border-radius:18px;color:#173f35;background:#fffc;box-shadow:0 8px 24px #173f3512}.game-card:hover{border-color:#73958a;transform:translateY(-2px)}.game-card h2{margin:1rem 0 .5rem;font-size:1.3rem}.game-card p{margin-bottom:.35rem;color:var(--text-muted)}.game-card .game-publisher{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-card small{display:block;margin-top:1rem;color:var(--text-muted)}.game-purpose-actions{width:min(100%,42rem);margin-top:1.25rem;display:grid;gap:1rem}.game-card .game-purpose-actions{margin-top:auto;padding-top:1.25rem}.game-purpose-group{min-width:0;display:grid;gap:.7rem}.game-purpose-group+.game-purpose-group{border-top:1px solid #d7e0db;padding-top:.9rem}.game-purpose-group h2,.game-purpose-group h3{margin:0;color:#4b6258;font-size:var(--text-min)}.game-purpose-item{min-width:0;display:grid}.game-purpose-item .button-link,.game-purpose-item .secondary-button{min-height:var(--tap-min)}.game-purpose-item p{margin:.35rem 0 0;color:var(--text-muted);font-size:var(--text-min);line-height:1.5}.game-card-actions{padding-top:1.1rem;display:flex;flex-wrap:wrap;gap:.55rem}.game-card-actions .button-link,.game-card-actions .secondary-button{flex:1 1 7.5rem}.badge-row{min-height:1.6rem;display:flex;align-items:center;gap:.45rem}.status-badge,.job-mini{display:inline-flex;border-radius:999px;padding:.23rem .6rem;font-size:var(--text-min);font-weight:800}.status-badge.published{color:#fff;background:#1b6655}.status-badge.draft{color:#7a491f;background:#f5dfaa}.origin-badge{display:inline-flex;border-radius:999px;padding:.23rem .6rem;color:#69401d;background:#f8e4c4;font-size:var(--text-min);font-weight:800}.job-mini{color:#4f625b;background:#e9efec}.job-mini.failed{color:#912929;background:#f8dede}.game-form{margin-top:1.4rem}.form-grid{display:grid;gap:1rem}fieldset{display:grid;gap:.7rem;margin:0;border:0;padding:0}legend{margin-bottom:.5rem;font-size:.88rem;font-weight:800}.origin-choice{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.origin-choice legend{grid-column:1 / -1}.origin-choice label{position:relative;min-height:var(--tap-min);display:flex;align-items:center;gap:.6rem;border:1px solid #b9c5bf;border-radius:12px;padding:.5rem .75rem;background:#fff;cursor:pointer}.origin-choice label:before{width:1.2rem;height:1.2rem;flex:none;border:2px solid #6b8076;border-radius:50%;background:#fff;content:""}.origin-choice label:has(input:checked){border-color:#1b6655;background:#edf3ef}.origin-choice label:has(input:checked):before{border-color:#1b6655;background:radial-gradient(circle,#1b6655 0 .3rem,#fff .32rem)}.origin-choice label:has(input:focus-visible){outline:3px solid #1b6655;outline-offset:2px}.origin-choice input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}.editor-panel .origin-choice{margin-bottom:1rem}.method-card{grid-template-columns:auto 1fr;align-items:center;gap:.8rem;border:1px solid #b9c5bf;border-radius:14px;padding:.9rem;background:#fff;cursor:pointer}.method-card.selected{border-color:#1b6655;box-shadow:0 0 0 2px #1b66551f}.method-card input{width:1.15rem;min-height:1.15rem;accent-color:#1b6655}.method-card span{display:grid;gap:.25rem}.method-card small,.field-note{color:var(--text-muted);font-size:var(--text-min);font-weight:500;line-height:1.5}.file-input{padding:.65rem;font-size:var(--text-min)}.file-input::file-selector-button{margin-right:.6rem;border:0;border-radius:8px;padding:.5rem;color:#173f35;background:#e6efeb;font-weight:700}.or-divider{display:flex;align-items:center;gap:.7rem;color:var(--text-muted);font-size:var(--text-min)}.or-divider:before,.or-divider:after{height:1px;flex:1;background:#d5ded9;content:""}.game-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.game-heading h1{margin-top:.6rem}.game-heading p,.game-heading small{margin-bottom:0;color:var(--text-muted)}.game-heading small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-panel{margin-top:1.5rem;border:1px solid #bdcbc5;border-radius:18px;padding:1.25rem;background:#ffffffc7}.job-panel strong{font-size:1.05rem}.job-panel p{margin:.5rem 0 0;color:var(--text-muted);line-height:1.6}.job-panel.failed{border-color:#ddb5b5;background:#fff4f2}.job-panel .secondary-button,.page-error{margin-top:1rem}.progress-line{height:4px;margin-top:1rem;overflow:hidden;border-radius:99px;background:#dbe7e2}.progress-line:after{display:block;width:45%;height:100%;border-radius:inherit;background:#1b6655;animation:progress 1.5s ease-in-out infinite alternate;content:""}@keyframes progress{0%{transform:translate(-30%)}to{transform:translate(150%)}}.editor-layout{margin-top:1.5rem;display:grid;gap:1rem}.editor-panel,.preview-panel{min-width:0;border:1px solid rgba(23,63,53,.14);border-radius:18px;padding:1rem;background:#ffffffd1}.panel-title{min-height:2.25rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.panel-title h2{margin-bottom:.7rem}.panel-title span{color:var(--text-muted);font-size:var(--text-min)}.markdown-editor{width:100%;min-height:52vh;border-radius:10px;padding:.9rem;color:#243a33;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:var(--text-min);background:#fbfdfc}.editor-actions{margin-top:.8rem;display:flex;justify-content:flex-end;gap:.6rem}.unsaved-note{margin:.8rem 0 0;color:#7b6334;font-size:var(--text-min);font-weight:700}.success{margin:.8rem 0 0;color:#17614f;font-size:.88rem}.editor-panel .error,.editor-panel .field-note{display:block;margin-top:.8rem}.rulebook-view{max-width:72ch;margin:0 auto}.markdown-preview{overflow-wrap:anywhere;color:#2a4039;line-height:1.75}.markdown-preview h2{margin:1.4rem 0 .8rem;font-size:1.7rem}.markdown-preview h3{margin:1.5rem 0 .6rem;padding-bottom:.3rem;border-bottom:1px solid #d4ded9;scroll-margin-top:4.5rem}.markdown-preview h4{margin:1.2rem 0 .5rem;scroll-margin-top:4.5rem}.markdown-preview p{margin-bottom:.7rem}.markdown-preview ul,.markdown-preview ol{margin:0 0 .9rem;padding-left:1.4rem}.markdown-preview li{margin-bottom:.35rem;line-height:1.7}.markdown-preview li:last-child{margin-bottom:0}.markdown-preview blockquote{margin:.9rem 0;border-left:4px solid #d39a48;padding:.22rem .75rem;color:#5e5140;background:#fff9e9}.markdown-preview blockquote+blockquote{padding-top:0}.markdown-preview blockquote p:last-child{margin-bottom:0}.preview-space{height:.55rem}.table-scroll{margin:0 0 1rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.markdown-preview table{border-collapse:collapse;min-width:100%;font-size:.88rem}.markdown-preview th,.markdown-preview td{border:1px solid #d4ded9;padding:.5rem .65rem;text-align:left;white-space:nowrap}.markdown-preview thead th{background:#edf3ef;font-weight:800}.toc{position:sticky;z-index:3;top:0;margin-bottom:1.3rem;padding:.6rem 0;background:var(--surface-fixed)}.toc-dropdown summary{display:inline-flex;align-items:center;gap:.35rem;border:1px solid #9eada6;border-radius:999px;padding:.35rem .85rem;color:#173f35;background:#fff;font-size:var(--text-min);font-weight:800;list-style:none;cursor:pointer}.toc-dropdown summary::-webkit-details-marker{display:none}.toc-dropdown ul{margin:.5rem 0 0;padding:.6rem .75rem;display:grid;gap:.4rem;max-height:60vh;overflow-y:auto;list-style:none;border:1px solid rgba(23,63,53,.14);border-radius:12px;background:#fff}.toc-dropdown a{color:#1b6655;font-size:var(--text-min);text-decoration:none}.toc-chips{display:none}@media(min-width:900px){.toc-dropdown{display:none}.toc-chips{margin:0;padding:0 0 .2rem;display:flex;gap:.5rem;overflow-x:auto;list-style:none;scrollbar-width:thin}.toc-chips li{flex:0 0 auto}.toc-chips a{display:inline-flex;align-items:center;min-height:var(--tap-min);border:1px solid #9eada6;border-radius:999px;padding:.35rem .75rem;color:#174f42;background:#fff;font-size:var(--text-min);text-decoration:none;white-space:nowrap}}.inspection-block{margin-bottom:1.5rem;border:1px solid #dec486;border-radius:14px;padding:.85rem 1rem;background:#fff8df}.inspection-block summary{color:#7a491f;font-weight:800;list-style:none;cursor:pointer}.inspection-block summary::-webkit-details-marker{display:none}.inspection-block[open] summary{margin-bottom:.6rem}.inspection-block blockquote{margin:0;border:0;padding:0;color:inherit;background:none}.figure-status{margin-bottom:1.2rem}.figure-status.stale{color:#96501c;font-weight:700}.rulebook-figure{margin:0 0 1.3rem;border:1px solid #d4ded9;border-radius:14px;padding:.9rem 1rem;background:#fbfdfc}.rulebook-figure figcaption{margin-bottom:.5rem;font-weight:800;color:#173f35}.figure-canvas{overflow-x:auto}.figure-canvas svg{max-width:100%;height:auto}.figure-evidence{margin:.6rem 0 0;color:var(--text-muted);font-size:var(--text-min)}.figure-fallback summary{cursor:pointer;color:#7a491f;font-weight:700}.figure-fallback pre{margin:.6rem 0 0;padding:.6rem;overflow-x:auto;border-radius:8px;background:#f4f0e4;font-size:var(--text-min)}.figure-panel .rulebook-figure{background:#fff}.figure-preview{margin-top:1rem}.figure-preview .primary{margin-top:.4rem}.scoring-status{color:var(--text-muted);font-size:var(--text-min);font-weight:800}.scoring-status.stale,.stale-warning{color:#96501c;font-weight:800}.scoring-job-error{white-space:pre-wrap}.scoring-preview{display:grid;gap:1rem;margin-top:1rem}.scoring-form{border:1px solid #d4ded9;border-radius:12px;padding:.9rem;background:#fff}.scoring-form h3{margin:0 0 .3rem;color:#173f35}.scoring-inputs{display:grid;gap:.75rem;margin:1rem 0}.scoring-inputs label:not(.checkbox-row){display:grid;gap:.3rem;color:#314b43;font-size:.88rem;font-weight:700}.scoring-inputs .checkbox-row{display:flex;align-items:center;gap:.55rem;color:#314b43}.scoring-inputs .checkbox-row input{width:1.2rem;min-height:1.2rem;margin:0}.scoring-inputs input[type=number],.scoring-inputs select{width:100%;border:1px solid #9eada6;border-radius:8px;padding:.5rem .65rem;background:#fff;color:#173f35;font:inherit}.scoring-result{border-top:1px solid #d7ded9;padding-top:.8rem}.scoring-result dl{display:grid;gap:.65rem;margin-bottom:0}.scoring-result dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .7rem}.scoring-result dt{font-weight:700}.scoring-result dd{margin:0;font-variant-numeric:tabular-nums;font-weight:800}.scoring-result blockquote{grid-column:1 / -1;margin:.15rem 0 0;border-left:3px solid #dec486;padding:.45rem .65rem;background:#fff8df;color:#5e5031;font-size:var(--text-min)}.scoring-json-label{display:grid;gap:.4rem;color:#314b43;font-weight:800}.scoring-json-editor{width:100%;min-height:18rem;border:1px solid #9eada6;border-radius:10px;padding:.75rem;resize:vertical;background:#f8faf9;color:#173f35;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:var(--text-min);line-height:1.55}.print-button{margin-top:1.5rem}@media print{.app-header,.back-link,.game-purpose-actions,.job-panel,.badge-row,.editor-panel,.panel-title,.toc,.inspection-block,.site-footer,.no-print,button{display:none!important}body,.app-shell,.content,.preview-panel{background:#fff!important;box-shadow:none!important}.preview-panel{border:0;padding:0}.editor-layout{display:block}.rulebook-view{max-width:none}.markdown-preview{color:#000}.markdown-preview h3,.markdown-preview h4{break-after:avoid;break-inside:avoid}.markdown-preview blockquote,.markdown-preview table{break-inside:avoid}.table-scroll{overflow-x:visible}.rulebook-figure{break-inside:avoid}.markdown-preview th,.markdown-preview td{white-space:normal}}.chat-shell .app-header{position:sticky;z-index:10;top:0;background:var(--surface-fixed)}.chat-page{width:min(100%,48rem);min-height:calc(100vh - 68px);margin:0 auto;padding:1.1rem 0 max(1rem,env(safe-area-inset-bottom))}.chat-heading{padding:0 1rem}.chat-heading .back-link{margin-bottom:1.3rem}.chat-heading h1{font-size:clamp(1.65rem,7vw,2.25rem)}.chat-mode-switch{margin-top:1rem;display:grid;grid-template-columns:1fr 1fr;border:1px solid #9eada6;border-radius:14px;padding:.25rem;background:#ffffffb8}.chat-mode-switch button{border:0;border-radius:10px;color:var(--text-muted);background:transparent}.chat-mode-switch button.active{color:#fff;background:#1b6655;box-shadow:0 3px 9px #173f354d,inset 0 0 0 2px #fff}.chat-mode-switch button span{margin-right:.35rem}.chat-session-actions{min-height:2.5rem;display:flex;justify-content:flex-end;align-items:center}.chat-session-actions .text-button{color:#365b50;font-size:var(--text-min)}.table-authority{margin:.8rem 0 0;border:1px solid #dec486;border-radius:13px;padding:.75rem .85rem;color:#675632;background:#fff8df;font-size:var(--text-min);line-height:1.55}.chat-page-error{margin:.9rem 1rem 0}.chat-empty{min-height:16rem;margin:1rem;scroll-margin-top:var(--chat-sticky-top, 0px);scroll-margin-bottom:var(--chat-sticky-bottom, 0px);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);text-align:center}.chat-empty>span{width:3.2rem;height:3.2rem;display:grid;place-items:center;border-radius:50%;color:#fff;background:#1b6655;font-size:1.7rem;font-weight:800}.chat-empty h2{margin:.9rem 0 .45rem;color:#173f35}.chat-empty p{margin:0;line-height:1.6}.chat-empty .install-start{margin-top:1.25rem}.chat-messages{padding:1.25rem 1rem .5rem;display:grid;gap:1.4rem}.chat-turn{display:grid;gap:.75rem;scroll-margin-top:var(--chat-sticky-top, 0px);scroll-margin-bottom:var(--chat-sticky-bottom, 0px)}.message-user{width:min(88%,34rem);justify-self:end}.message-user>span,.message-gm>strong{display:block;margin:0 .45rem .3rem;color:var(--text-muted);font-size:var(--text-min)}.message-user p{margin:0;border-radius:18px 18px 4px;padding:.8rem 1rem;color:#fff;background:#1b6655;line-height:1.55;overflow-wrap:anywhere;white-space:pre-wrap}.message-gm{width:min(94%,40rem)}.message-gm>strong{color:var(--accent-text)}.chat-answer,.answer-pending,.answer-error{border:1px solid rgba(23,63,53,.13);border-radius:4px 18px 18px;padding:.9rem 1rem;color:#2a4039;background:#fff;box-shadow:0 7px 20px #173f3512;line-height:1.7;overflow-wrap:anywhere}.chat-answer>:first-child{margin-top:0}.chat-answer>:last-child{margin-bottom:0}.chat-answer p{margin-bottom:.75rem}.chat-answer h2,.chat-answer h3,.chat-answer h4{margin:1rem 0 .45rem;font-size:1rem}.chat-answer ul,.chat-answer ol{padding-left:1.3rem}.chat-answer blockquote{margin:.8rem 0;border-left:5px solid #d39a48;border-radius:0 10px 10px 0;padding:.65rem .8rem;color:#54472f;background:#fff7df}.chat-answer blockquote p{margin:0}.chat-answer .answer-authority{margin:.8rem 0 0;border-top:1px solid #d6dfdb;padding-top:.6rem;color:var(--text-muted);font-size:var(--text-min);line-height:1.5}.answer-pending{min-height:4.2rem;display:flex;align-items:center;gap:.75rem;color:var(--text-muted)}.spinner{width:1.35rem;height:1.35rem;flex:0 0 auto;border:3px solid #cddbd5;border-top-color:#1b6655;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.answer-error{border-color:#e2baba;color:#8d2b2b;background:#fff7f5}.answer-error p{margin-bottom:.75rem;line-height:1.55}.session-notice{margin:.55rem 0 0;color:#7b6334;font-size:var(--text-min);line-height:1.5}.chat-composer{position:sticky;z-index:5;bottom:0;margin-top:1rem;border-top:1px solid rgba(23,63,53,.14);padding:.75rem max(1rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:var(--surface-fixed)}.chat-composer>label{display:block;font-size:var(--text-min)}.quick-questions{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.1rem;scrollbar-width:thin}.quick-questions .question-chip{flex:0 0 auto;border:1px solid #79a093;border-radius:999px;padding:.45rem .75rem;color:#174f42;background:#fff;font-size:var(--text-min);white-space:nowrap}.quick-questions .question-chip:active:not(:disabled){background:#dfece7}.composer-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.55rem}.composer-row textarea{min-height:54px;max-height:8rem;resize:none}.composer-row button{min-width:4.7rem}.chat-composer>small{color:var(--text-muted);font-size:var(--text-min)}.tables-content{width:min(100%,62rem)}.create-table{max-width:42rem;margin-top:1rem;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.8rem}.create-table button{min-width:8rem}.table-hint{display:block;margin-top:.55rem}.muted{color:var(--text-muted);font-size:.88rem}.table-list-section{margin-top:2.2rem}.table-list-section>h2{margin-bottom:.8rem}.table-list-section.archives{padding-top:1.6rem;border-top:1px solid rgba(23,63,53,.13)}.table-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:.85rem}.table-list-empty{border:1px dashed #9dafa6;border-radius:16px;padding:1.4rem;color:var(--text-muted);background:#fff6}.table-card{display:grid;gap:.7rem;border:1px solid rgba(23,63,53,.14);border-radius:18px;padding:1.1rem;background:#ffffffd1}.table-card h3{margin:.65rem 0 0;font-size:1.2rem}.table-card p{margin:0;color:var(--text-muted);font-size:var(--text-min);line-height:1.5}.table-card small{color:var(--text-muted)}.table-card.archived{background:#ffffff8c}.status-badge.table-finished{color:#53645d;background:#e4e9e6}.table-room{width:min(100%,62rem);--sticky-budget: clamp(var(--tap-min), 15vh, 64px)}.table-room-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.table-room-heading>div{min-width:0}.table-room-heading h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(1.75rem,7vw,2.4rem)}.table-room-heading p:last-child{margin-bottom:0;overflow:hidden;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap}.authority-banner{margin-top:.75rem;border:2px solid #d0ad59;border-radius:12px;padding:.5rem .65rem;color:#5d4b27;background:#fff6d9;font-size:var(--text-min);font-weight:700;white-space:nowrap}.archive-banner,.archive-readonly{margin:.8rem 0 0;border-radius:12px;padding:.75rem .9rem;color:#53645d;background:#e8edea;font-size:var(--text-min);line-height:1.5}.table-tabs{margin:.75rem 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #9eada6;border-radius:14px;padding:.25rem;background:#ffffffb8}.table-tabs button{border:0;border-radius:10px;padding:.45rem .25rem;color:var(--text-muted);background:transparent;font-size:var(--text-min)}.table-tabs button.active{color:#fff;background:#1b6655;box-shadow:0 3px 9px #173f3533}.table-dashboard{display:grid;gap:1rem}.table-panel,.table-chat-panel{border:1px solid rgba(23,63,53,.14);border-radius:18px;padding:1rem;background:#ffffffd1}.table-panel-heading h2{margin-bottom:.3rem}.table-panel-heading p{margin-bottom:1rem;color:var(--text-muted);font-size:var(--text-min);line-height:1.5}.turn-panel .table-panel-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 .4rem}.turn-panel .table-panel-heading h2{margin:0}.turn-panel .table-panel-heading p{grid-column:1 / -1;margin-top:.3rem}.turn-hint{margin:.75rem 0 0;color:var(--text-muted);font-size:var(--text-min);line-height:1.5}.score-jump{padding:.5rem;font-size:var(--text-min);white-space:nowrap}.turn-now{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:.25rem .65rem;border-radius:14px;padding:1rem;background:#edf3ef}.turn-now span{color:var(--text-muted);font-size:var(--text-min)}.turn-now strong{font-size:1.3rem}.next-turn{width:100%;margin-top:.75rem}.score-form input[type=number]{scroll-margin-top:calc(var(--sticky-budget) + .5rem)}.progress-editor{margin-top:1rem;display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);align-items:end;gap:.65rem}.progress-editor label{min-width:0}.progress-editor .secondary-button{grid-column:1 / -1}.score-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:.6rem}.score-totals>div{display:grid;gap:.25rem;border-radius:13px;padding:.8rem;background:#edf3ef}.score-totals span{overflow:hidden;color:var(--text-muted);font-size:var(--text-min);text-overflow:ellipsis;white-space:nowrap}.score-totals strong{font-size:1.22rem}.score-check-button{width:100%;margin-top:.65rem}.score-check{margin-top:.65rem;border:1px solid #cbd8d2;border-radius:13px;padding:.8rem;background:#f8fbf9}.score-check>strong{display:block;margin-bottom:.45rem;font-size:var(--text-min)}.score-check p{margin:0;padding:.35rem 0;display:grid;grid-template-columns:minmax(4rem,.7fr) minmax(0,1.5fr) auto;gap:.5rem;align-items:center;font-size:var(--text-min)}.score-check span,.score-check code{min-width:0;overflow-wrap:anywhere}.score-check code{color:#43574f}.score-check b{color:#17614f}.score-calculator-open{width:100%;margin-top:1rem}.table-score-calculator{margin-top:1rem;border:1px solid #9fb8ae;border-radius:14px;padding:.75rem;background:#f8fbf9}.score-calculator-top{margin:-.75rem -.75rem .75rem;border-bottom:1px solid #cad8d2;border-radius:14px 14px 0 0;padding:.65rem .75rem;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.55rem;background:#f8fbf9f7}.score-calculator-top label,.score-spec-select,.score-override{display:grid;gap:.25rem;color:#314b43;font-size:var(--text-min);font-weight:800}.score-spec-select{margin-bottom:.65rem}.table-score-calculator h3{margin:.35rem 0 .65rem;font-size:1rem}.score-photo-controls{margin-bottom:.7rem;display:grid;gap:.5rem}.score-photo-controls>.secondary-button{width:100%}.score-photo-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.score-recognition-pending{display:flex;align-items:center;justify-content:center;gap:.5rem;color:#536b62;font-size:var(--text-min);font-weight:700}.score-recognition-pending .spinner{width:1rem;height:1rem}.score-recognition-error{margin:0 0 .7rem;font-size:var(--text-min)}.score-recognition-banner{margin:0 0 .7rem;border:1px solid #d4a537;border-radius:9px;padding:.6rem .7rem;color:#604b1b;background:#fff1bd;font-size:var(--text-min);font-weight:800;line-height:1.45}.table-score-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.table-score-inputs>label:not(.score-toggle){min-width:0;display:grid;gap:.25rem;color:#314b43;font-size:var(--text-min);font-weight:700}.table-score-inputs input[type=number],.table-score-inputs select{width:100%;padding:.4rem .5rem}.table-score-inputs .score-input-uncertain input[type=number],.table-score-inputs .score-input-uncertain select{border-color:#d59a12;outline:2px solid #f3cb63;outline-offset:1px;background:#fff9df}.score-toggle{grid-column:1 / -1;min-height:var(--tap-min);display:flex;align-items:center;gap:.55rem;border:1px solid #b9c9c2;border-radius:9px;padding:.4rem .55rem;color:#314b43;background:#fff;font-size:var(--text-min);font-weight:700}.score-toggle.score-input-uncertain{border-color:#d59a12;outline:2px solid #f3cb63;outline-offset:1px;background:#fff9df}.score-toggle input{width:1.25rem;min-height:1.25rem;margin:0}.score-recognition-details{margin-top:.7rem;border-radius:9px;padding:.65rem .7rem;color:#465c53;background:#edf3ef;font-size:var(--text-min);line-height:1.5}.score-recognition-details p{margin:0;overflow-wrap:anywhere}.score-recognition-details p+p{margin-top:.4rem}.score-recognition-details strong{display:block;color:#314b43}.table-score-result{margin-top:.8rem;border-top:1px solid #cad8d2;padding-top:.7rem}.score-total{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.score-total span{color:var(--text-muted);font-size:var(--text-min);font-weight:800}.score-total strong{color:var(--accent-text);font-size:1.45rem}.table-score-result>.error{margin:.55rem 0;padding-left:1.2rem;font-size:var(--text-min)}.score-breakdown{margin-top:.45rem;display:grid;gap:.35rem}.score-breakdown>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .65rem;border-top:1px solid #e0e7e3;padding-top:.35rem;font-size:var(--text-min)}.score-breakdown details{grid-column:1 / -1}.score-breakdown summary{width:max-content;cursor:pointer;color:#586f66;font-size:var(--text-min)}.score-breakdown blockquote{margin:.35rem 0 0;border-left:3px solid #dec486;padding:.4rem .55rem;color:#5e5031;background:#fff8df;font-size:var(--text-min);line-height:1.45}.score-authority-note{margin:.75rem 0;border-radius:9px;padding:.6rem;color:#5d4b27;background:#fff3cb;font-size:var(--text-min);font-weight:700;line-height:1.45}.score-override input{width:100%;font-size:1rem;font-weight:800}.score-record-button{width:100%;margin-top:.65rem}.score-form{margin-top:1rem;border-top:1px solid #d6dfdb;padding-top:1rem;display:grid;grid-template-columns:1fr .7fr;gap:.7rem}.score-form .score-note,.score-form button{grid-column:1 / -1}.score-history{margin-top:1rem;border-top:1px solid #d6dfdb}.score-history>div{position:relative;padding:.8rem 3.25rem .8rem 0;border-bottom:1px solid #e1e7e4}.score-history p{margin:0;display:flex;flex-wrap:wrap;gap:.4rem .7rem;align-items:baseline}.score-history p b{color:var(--accent-text)}.score-history p span,.score-history small{color:var(--text-muted);font-size:var(--text-min)}.score-history .danger{position:absolute;top:.55rem;right:0;color:#9e2e2e}.participants-panel ol{margin:0;padding:0;display:grid;gap:.5rem;list-style:none}.participants-panel li{display:flex;align-items:center;gap:.55rem}.participants-panel li>span{width:1.55rem;height:1.55rem;display:grid;place-items:center;border-radius:50%;color:#fff;background:#1b6655;font-size:var(--text-min);font-weight:800}.participants-panel li small{border-radius:99px;padding:.15rem .45rem;color:var(--text-muted);background:#e5ece8;font-size:var(--text-min)}.table-management{margin-top:3.5rem;border-top:1px solid #b9c9c2;padding-top:1.5rem}.table-management h2{margin:0 0 .75rem}.finish-table{border:1px solid #ba6868;color:#8b3030;background:#fff7f5}.log-panel ol{margin:0;padding:0;list-style:none}.log-panel li{display:grid;gap:.25rem;border-bottom:1px solid #e0e7e3;padding:.75rem 0}.log-panel li:first-child{padding-top:0}.log-panel li small{color:var(--text-muted);font-size:var(--text-min)}.table-chat-panel{min-height:20rem}.table-chat-empty{min-height:11rem;display:grid;place-items:center;align-content:center;gap:1rem;color:var(--text-muted);text-align:center}.table-chat-empty p{margin:0}.table-chat-messages{margin:0 -.3rem;padding:.5rem .3rem;display:grid;gap:1.2rem}.table-chat-messages .message-user:not(.mine){justify-self:start}.table-chat-messages .message-user:not(.mine) p{border-radius:18px 18px 18px 4px;color:#173f35;background:#e2ece7}.table-chat-panel .chat-turn{scroll-margin-top:calc(var(--chat-sticky-top, 0px) + .5rem);scroll-margin-bottom:calc(var(--chat-sticky-bottom, 0px) + .5rem)}.table-chat-composer{border-top-color:#d6dfdb;padding-right:max(.65rem,env(safe-area-inset-right));padding-left:max(.65rem,env(safe-area-inset-left))}.archive-readonly{margin-top:1rem}.table-voice{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.4rem;height:var(--tap-min);max-height:var(--sticky-budget);padding:0 .5rem;background:var(--surface-fixed);border:1px solid #d6dfdb;border-radius:12px;box-shadow:0 4px 16px #173f351c}.table-voice-error{color:#762e10;border-color:#b45309;border-left-width:4px}.table-voice button{flex:none;min-height:var(--tap-min);padding:0 .45rem;font-size:var(--text-min);white-space:nowrap}.voice-status-group{min-width:0;flex:1;display:flex;align-items:center;gap:.35rem;overflow:hidden}.voice-status-listening{flex:none;font-size:var(--text-min);font-weight:700;white-space:nowrap}.voice-status{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-min);font-weight:700}.voice-status-short{display:none}.table-voice-body>.error{scroll-margin-top:calc(var(--sticky-budget) + .5rem)}.table-voice-body{margin:.4rem 0 1rem;padding:.65rem;background:var(--surface, #fff);border:1px solid #d6dfdb;border-radius:12px}.voice-read-toggle{min-height:var(--tap-min);display:flex;align-items:center;gap:.55rem;width:fit-content;font-size:var(--text-min);white-space:nowrap}.voice-read-toggle input{width:1.2rem;min-height:1.2rem;margin:0}.voice-latest-answer{margin-top:.6rem;padding:.65rem;border-radius:10px;background:#edf3ef;scroll-margin-top:calc(var(--sticky-budget) + .5rem)}.voice-live-dot{width:.75rem;height:.75rem;flex:none;border-radius:50%;background:#d72c2c;box-shadow:0 0 0 4px #d72c2c25}.voice-question{margin:.7rem 0 0;font-weight:700;overflow-wrap:anywhere}.voice-transcripts{margin-top:.65rem;font-size:var(--text-min)}.voice-transcripts p{margin:.5rem 0 0}.voice-transcripts ol{max-height:10rem;overflow:auto;margin:.5rem 0 0;padding-left:1.5rem}.voice-transcripts li{overflow-wrap:anywhere}@media(max-width:639px){.voice-status-long{display:none}.voice-status-short{display:inline}}@media(min-width:640px){.card{padding:2rem}.content{padding-top:3rem}.app-header{padding-left:2rem;padding-right:2rem}.invitation{grid-template-columns:1fr auto;align-items:center}.invitation span{grid-column:1 / -1}.form-grid{grid-template-columns:1fr 1fr}.game-list-controls{grid-template-columns:minmax(15rem,2fr) minmax(9rem,1fr) minmax(9rem,1fr)}.game-list-controls .game-search{grid-column:auto}.chat-page{padding-top:1.8rem}.chat-heading,.chat-messages{padding-left:1.5rem;padding-right:1.5rem}.chat-composer{border:1px solid rgba(23,63,53,.14);border-radius:18px}.table-dashboard{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);align-items:start}.score-panel{grid-row:span 2}.table-voice{width:fit-content;max-width:100%}.table-voice>.voice-status,.voice-status-group,.voice-status-group .voice-status{flex:0 1 auto}}@media(max-width:520px){.app-header{min-height:64px;padding-block:max(.5rem,env(safe-area-inset-top)) .5rem;gap:.4rem}.app-header .brand-lockup{min-width:0}.app-header .brand{gap:.4rem;white-space:nowrap}.app-header .brand img{width:36px;height:36px;flex:none}.app-header .brand-attribution,.app-header .nickname,.header-link{display:none}.table-room{padding-top:.5rem}.table-room>.back-link{margin-bottom:.4rem}.game-usage-guide{flex-direction:column}.create-table{grid-template-columns:1fr}}@media(min-width:900px){.rulebook-content{width:min(100%,86rem)}.editor-layout.editable{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.editor-layout:not(.editable){width:min(100%,52rem);margin-left:auto;margin-right:auto}.editor-panel{position:sticky;top:1rem}}
