:root{--green:#217346;--green-dark:#185c37;--green-soft:#e7f2ec;--grid:#d9d9d9;--header:#f3f3f3;--text:#202020;--muted:#616161;--border:#d1d1d1;--self:#2563eb;--seeker:#d13438;--runner:#2f7d4f;--bomb:#f59e0b;--panel:286px;--rows:18;--cols:20;--font:"Segoe UI","Noto Sans KR",Arial,sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;font-family:var(--font);color:var(--text);background:#fff}button,input,select{font:inherit}.app-shell{height:100vh;display:flex;flex-direction:column;min-width:1120px}.titlebar{height:32px;background:var(--green);color:#fff;display:flex;align-items:center;font-size:12px}.app-mark{height:32px;width:39px;background:var(--green-dark);display:grid;place-items:center;font-weight:700;font-size:18px}.file-title{margin-left:12px;font-weight:600}.save-state{font-size:10px;margin-left:12px;opacity:.78}.window-actions{margin-left:auto;height:100%;display:flex}.window-actions span{width:45px;display:grid;place-items:center;font-size:14px}.tabs{height:35px;display:flex;align-items:end;border-bottom:1px solid #e0e0e0;padding-left:5px;gap:1px;background:#fbfbfb}.tabs button{height:34px;border:0;background:transparent;padding:0 13px;font-size:12px;color:#333}.tabs button.active{color:var(--green);font-weight:600;border-bottom:2px solid var(--green)}.game-brand{margin-left:auto;margin-right:12px;margin-bottom:9px;font-size:9px;font-weight:700;letter-spacing:1.5px;color:#808080}.ribbon{height:78px;display:flex;border-bottom:1px solid #cfcfcf;background:#fafafa;padding:5px 8px;gap:5px;overflow:hidden}.ribbon-group{min-width:85px;border-right:1px solid #dedede;padding:2px 10px;display:flex;justify-content:center;align-items:center;color:#444;font-size:11px}.clipboard{flex-direction:column;min-width:62px;padding-left:2px}.paste-icon{border:0;background:transparent;font-size:27px;color:var(--green)}.font-tools{flex-direction:column;gap:7px;min-width:235px}.font-tools select{height:22px;border:1px solid #c9c9c9;background:#fff}.font-tools select:first-child{width:150px}.font-tools select:last-child{width:48px}.tool-row{display:flex;gap:17px;font-size:13px}.align-tools,.number-tools{flex-direction:column;justify-content:space-around;min-width:145px}.number-tools select{width:125px;background:#fff;border:1px solid #c9c9c9}.ribbon-group small{color:#777}.style-tools{gap:5px}.style-tools button{width:58px;height:50px;border:1px solid #d8d8d8;background:#fff;font-size:10px}.formula-row{height:31px;display:flex;border-bottom:1px solid #cfcfcf;background:#fff;align-items:center;font-size:12px}.name-box{width:78px;height:100%;display:grid;place-items:center;border-right:1px solid #cfcfcf}.fx{width:42px;text-align:center;font-style:italic;font-family:Georgia;font-weight:700;color:#666}.formula-box{border-left:1px solid #cfcfcf;flex:1;padding-left:8px;color:#555}.work-area{flex:1;min-height:0;display:flex}.sheet-panel{min-width:0;flex:1;display:flex;flex-direction:column}.grid-wrap{position:relative;flex:1;min-height:0;overflow:hidden;background:#fff}.sheet-grid{position:absolute;inset:0;display:grid;grid-template-columns:42px repeat(20,minmax(0,1fr));grid-template-rows:24px repeat(18,minmax(0,1fr));user-select:none}.cell{position:relative;min-width:0;min-height:0;border-right:1px solid var(--grid);border-bottom:1px solid var(--grid);display:flex;align-items:center;padding:1px 4px;font-size:clamp(8px,.73vw,11px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#fff}.header-cell{justify-content:center;padding:0;background:var(--header);color:#555;font-size:10px}.corner{background:linear-gradient(135deg,#f3f3f3 50%,#c9c9c9 51%,#f3f3f3 54%)}.data-cell.report-title{font-weight:700;font-size:12px;color:#16482f}.data-cell.report-head{background:#e2f0d9;font-weight:700;color:#254b36}.data-cell.total{font-weight:700;border-top:2px solid #6b8f7a}.data-cell.money{text-align:right;justify-content:flex-end}.data-cell.blocked:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 5px,rgba(71,85,105,.16) 5px 7px);z-index:2}.player-stack{position:absolute;z-index:6;inset:1px 2px;display:flex;align-items:center;justify-content:center;border-radius:2px;padding:0 4px;overflow:hidden;font-size:clamp(8px,.72vw,11px);font-weight:700;letter-spacing:-.3px;animation:arrive .1s ease-out}.player-stack.runner{background:rgba(221,241,228,.92);color:#174d2c;border:1px solid #73b68b}.player-stack.seeker{background:rgba(255,238,238,.94);color:#8c171a;box-shadow:inset 0 0 0 2px var(--seeker)}.player-stack.self{box-shadow:inset 0 0 0 2px var(--self)}.player-stack.seeker.self{box-shadow:inset 0 0 0 2px var(--self),inset 0 0 0 4px #fff}.stack-count{position:absolute;right:1px;top:1px;background:#333;color:#fff;border-radius:8px;padding:0 3px;font-size:8px}.bomb{position:absolute;z-index:7;width:15px;height:15px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffd36c 0 15%,#d97706 19% 60%,#713f12 65%);box-shadow:0 0 0 2px rgba(245,158,11,.28);animation:pulse .45s infinite alternate}.blast{animation:blast .35s ease-out}.fog-layer{pointer-events:none;position:absolute;inset:0;z-index:9;background:transparent}.countdown{position:absolute;z-index:20;inset:0;display:none;place-items:center;background:rgba(255,255,255,.25);font-size:110px;font-weight:700;color:var(--green-dark);text-shadow:0 2px 20px #fff}.countdown.show{display:grid}.sheet-tabs{height:29px;background:#f4f4f4;border-top:1px solid #d0d0d0;display:flex;align-items:center;font-size:11px}.sheet-nav,.add-sheet{border:0;background:transparent;height:100%;width:28px;color:#606060}.sheet-tab{height:100%;border:0;border-bottom:3px solid var(--green);background:#fff;padding:0 18px;color:#333;font-weight:600}.sheet-status{margin-left:auto;margin-right:10px;color:#777}.game-panel{width:var(--panel);min-width:var(--panel);border-left:1px solid #bcbcbc;background:#fafafa;display:flex;flex-direction:column;overflow:hidden}.game-summary{padding:13px 15px 11px;border-bottom:1px solid #ddd;background:#fff}.summary-top{display:flex;align-items:center;font-size:12px}.summary-top button{margin-left:auto;border:0;background:transparent;color:#777;font-size:18px}.live-dot{width:7px;height:7px;border-radius:50%;background:#ea4335;margin-right:7px;box-shadow:0 0 0 3px #fde9e7}.timer{text-align:center;font-variant-numeric:tabular-nums;font-size:38px;line-height:1.15;font-weight:300;color:#252525;margin:5px 0}.goal{display:flex;justify-content:space-between;font-size:11px}.progress{height:3px;background:#e7e7e7;margin-top:6px}.progress i{display:block;height:100%;width:0;background:var(--seeker);transition:width .2s}.players-section{padding:10px 13px;border-bottom:1px solid #ddd;min-height:135px}.section-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#686868;margin-bottom:8px}.section-heading strong{font-size:12px;color:#333}.player-list{display:flex;flex-direction:column;gap:4px;max-height:170px;overflow:auto}.player-item{height:26px;display:flex;align-items:center;gap:7px;font-size:11px}.role-dot{width:8px;height:8px;border-radius:50%;background:var(--runner)}.role-dot.seeker{background:var(--seeker);border-radius:1px}.player-item .name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.player-item .state{margin-left:auto;color:#777;font-size:9px}.player-item.local .name:after{content:" 나";color:var(--self);font-size:8px}.ability-card{margin:9px 12px 0;padding:9px;background:#fff;border:1px solid #ddd;display:flex;flex-direction:column;gap:8px;font-size:11px}.ability-card>div{display:flex;align-items:center;justify-content:space-between}.keycap{border:1px solid #aaa;border-bottom-width:2px;border-radius:2px;padding:2px 5px;margin-right:6px;font-size:8px;background:#f5f5f5}.ability-status{position:relative;color:#777}.ability-status>i{position:absolute;left:0;bottom:-3px;height:2px;background:var(--bomb);width:0}.chat-section{margin-top:auto;border-top:1px solid #ddd;padding:9px 12px 11px;background:#fff}.chat-log{height:62px;overflow:auto;font-size:10px;color:#555;margin-bottom:7px}.chat-log p{margin:3px 0}.chat-log b{color:#333}.chat-log .system{text-align:center;color:#888;font-style:italic}.chat-form{display:flex;border:1px solid #c7c7c7;background:#fff}.chat-form:focus-within{border-color:var(--green)}.chat-form input{min-width:0;flex:1;border:0;padding:6px 7px;outline:0;font-size:10px}.chat-form button{border:0;background:transparent;color:var(--green);font-weight:700}.statusbar{height:24px;display:flex;align-items:center;padding:0 10px;border-top:1px solid #d0d0d0;background:#f4f4f4;color:#666;font-size:10px}.hint{margin-left:35px}.zoom{margin-left:auto}.modal-backdrop,.result-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;background:rgba(18,39,28,.2);backdrop-filter:blur(2px)}.lobby-card,.result-card{width:430px;background:#fff;border:1px solid #b8c6bd;box-shadow:0 18px 50px rgba(0,0,0,.22);padding:25px 28px}.lobby-brand{display:flex;align-items:center;gap:12px}.logo-cell{width:43px;height:43px;display:grid;place-items:center;background:var(--green);color:#fff;font-size:24px;font-weight:700}.lobby-brand small,.result-card>small{font-size:8px;letter-spacing:2px;color:#777}.lobby-brand h1{font-size:23px;margin:0;letter-spacing:-1px}.tagline{color:#666;font-size:12px;margin:7px 0 19px}.lobby-card label{display:flex;flex-direction:column;gap:5px;font-size:10px;color:#555}.lobby-card input,.lobby-card select{height:34px;border:1px solid #bdbdbd;background:#fff;padding:0 9px;outline:none;color:#222;font-size:12px}.lobby-card input:focus,.lobby-card select:focus{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:12px 0 17px}.primary-button{width:100%;height:39px;border:0;background:var(--green);color:#fff;font-weight:700;font-size:12px}.primary-button:hover{background:var(--green-dark)}.room-actions{display:flex;gap:8px;margin-top:8px}.room-actions button,.text-button{flex:1;height:33px;border:1px solid #aaa;background:#fff;color:#444;font-size:11px}.privacy-note{text-align:center;font-size:9px;color:#888;margin:13px 0 0}.result-card{text-align:center;width:380px}.result-card h2{margin:8px 0;font-size:25px}.result-card p{font-size:12px;color:#666}.score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#ddd;margin:19px 0}.score-grid div{padding:10px 3px;background:#fafafa}.score-grid strong{display:block;font-size:18px}.score-grid span{font-size:9px;color:#777}.result-card .text-button{width:100%;margin-top:7px}.hidden{display:none}.toast{position:fixed;z-index:200;left:50%;bottom:38px;transform:translate(-50%,20px);background:#202020;color:#fff;padding:8px 14px;font-size:11px;opacity:0;transition:.2s;pointer-events:none}.toast.show{opacity:.9;transform:translate(-50%,0)}@keyframes arrive{from{transform:scale(.82);opacity:.3}}@keyframes pulse{to{transform:translate(-50%,-50%) scale(1.15)}}@keyframes blast{0%{background:#fff4c2}50%{background:#ffb84d}100%{background:#fff}}@media(max-width:1280px){:root{--panel:255px}.ribbon-group:nth-last-child(-n+2){display:none}.hint{display:none}}@media(max-height:760px){.ribbon{height:60px}.style-tools button{height:35px}.game-summary{padding-top:7px;padding-bottom:7px}.timer{font-size:30px}.players-section{padding-top:7px;padding-bottom:7px}.player-list{max-height:110px}.ability-card{padding:6px}.chat-log{height:42px}}@media(max-width:1050px),(max-height:600px){body:before{content:"게임을 원활히 플레이하려면 1280×720 이상의 PC 화면을 권장합니다.";position:fixed;z-index:999;left:50%;top:8px;transform:translateX(-50%);background:#202020;color:#fff;padding:8px 13px;font-size:11px;box-shadow:0 2px 8px #0005}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
