:root{color:#1f2933;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f7f8;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}#root{min-height:100vh}.drill-shell{color:#1f2933;background:#f6f7f8;min-height:100vh}.drill-header{background:#fff;border-bottom:1px solid #d8dde3;justify-content:space-between;align-items:flex-start;gap:24px;padding:28px 32px 20px;display:flex}.eyebrow{color:#6d7a86;margin:0 0 6px;font-size:13px}.drill-header h1{margin:0;font-size:28px;line-height:1.2}.auth-gate{background:#0f172a;place-items:center;min-height:100vh;padding:32px;display:grid}.auth-gate-panel{color:#e5edf6;background:#0f172aeb;border:1px solid #94a3b852;border-radius:8px;width:min(520px,100%);padding:28px}.auth-gate-panel h1{color:#f8fafc;margin:8px 0 12px;font-size:24px;line-height:1.25}.auth-gate-panel p{color:#cbd5e1;margin:0 0 20px}.auth-entry-link{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.header-subtitle{color:#596672;margin:8px 0 0;font-size:14px}.header-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}button{color:#1f2933;font:inherit;cursor:pointer;background:#fff;border:1px solid #b8c1ca;border-radius:6px;padding:7px 12px}button:hover:not(:disabled){background:#f8fafc;border-color:#64748b}button:disabled{color:#9aa5b1;cursor:not-allowed}.primary-button{color:#fff;background:#245b78;border-color:#245b78}.primary-button:hover:not(:disabled){background:#1e4e67;border-color:#1e4e67}.status-strip{background:#d8dde3;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;padding:0 32px;display:grid}.status-strip>div{background:#fff;padding:14px 16px}.status-strip span,.panel-heading span,.task-card span,.scene-object small{color:#697786;font-size:12px;display:block}.status-strip strong{margin-top:4px;font-size:18px;display:block}.workspace-grid{grid-template-columns:260px minmax(0,1fr) 340px;gap:16px;padding:16px 32px;display:grid}.stage-panel,.simulation-panel,.task-panel,.drill-setup-panel,.editor-section{background:#fff;border:1px solid #d8dde3;border-radius:8px}.panel-heading{border-bottom:1px solid #e5e9ee;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.panel-heading h2{margin:0;font-size:16px}.stage-list{margin:0;padding:8px;list-style:none}.stage-list li button{text-align:left;border-color:#0000;grid-template-columns:28px 1fr;align-items:center;gap:8px;width:100%;padding:9px 8px;display:grid}.stage-list li.active button{background:#e8f1f5;border-color:#91adbc}.stage-list li.done button{color:#3e6b48}.stage-dot{color:#475569;background:#e5e9ee;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;display:inline-grid}.stage-list li.active .stage-dot{color:#fff;background:#245b78}.scene-board{background-color:#eef3f4;background-image:linear-gradient(90deg,#245b7814 1px,#0000 1px),linear-gradient(#245b7814 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-height:300px;padding:16px;display:grid}.drill-setup-panel{margin:16px 32px 0}.parameter-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px;display:grid}.parameter-grid label{color:#53606c;flex-direction:column;gap:6px;font-size:12px;display:flex}.parameter-grid input,.parameter-grid select{color:#1f2933;min-width:0;font:inherit;background:#fff;border:1px solid #b8c1ca;border-radius:6px;padding:8px 10px;font-size:14px}.scene-object{text-align:left;background:#ffffffeb;border-color:#b9c7c7;flex-direction:column;justify-content:space-between;min-height:76px;padding:10px;display:flex}.scene-object.point{border-left:4px solid #7b8f48}.scene-object.line{border-left:4px solid #8f6d48}.scene-object.polygon{border-left:4px solid #245b78}.scene-object span{font-weight:600}.event-panel{border-top:1px solid #d8dde3;grid-template-columns:1fr 1fr;display:grid}.event-panel>div{padding:14px 16px}.event-panel>div+div{border-left:1px solid #d8dde3}.event-panel h3{margin:0 0 8px;font-size:14px}.event-panel ul,.task-card ul{margin:0;padding-left:18px}.event-panel li,.task-card li{margin:5px 0;font-size:13px}.rule-list{padding-left:0;list-style:none}.rule-list label{align-items:flex-start;gap:8px;display:flex}.task-list{gap:10px;max-height:590px;padding:12px;display:grid;overflow:auto}.task-card{background:#fbfcfd;border:1px solid #d8dde3;border-radius:8px;padding:12px}.task-card strong{margin-bottom:3px;display:block}.action-row{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.action-row button{padding:4px 8px;font-size:12px}.editor-section{margin:0 32px 32px;overflow:hidden}.editor-section section{padding:16px!important}.three-page{grid-template-columns:minmax(0,1fr) 360px;gap:16px;padding:16px 32px 32px;display:grid}.three-main-panel,.three-side-panel{background:#fff;border:1px solid #d8dde3;border-radius:8px;overflow:hidden}.three-main-panel{min-height:calc(100vh - 150px)}.drill-map-scene{background:#0f1720;height:calc(100vh - 152px);min-height:640px;position:relative;overflow:hidden}.three-drill-scene canvas{width:100%;height:100%;display:block}.real-three-scene{background:radial-gradient(circle at 50% 38%,#45646f57,#0000 42%),#0f1720}.scene-hud{color:#e5eef7;background:#0f1720c7;border:1px solid #cbd5e147;border-radius:8px;flex-direction:column;gap:4px;max-width:360px;padding:10px 12px;display:flex;position:absolute;bottom:16px;left:16px}.scene-hud span{color:#aebdca;font-size:12px}.parameter-summary{border-bottom:1px solid #e5e9ee;gap:10px;margin:0;padding:14px 16px;display:grid}.role-control-panel{border-bottom:1px solid #e5e9ee}.panel-heading.inline{padding-top:12px;padding-bottom:10px}.control-field{color:#53606c;flex-direction:column;gap:6px;padding:12px 16px 8px;font-size:12px;display:flex}.control-field select{color:#1f2933;min-width:0;font:inherit;background:#fff;border:1px solid #b8c1ca;border-radius:6px;padding:8px 10px;font-size:14px}.control-actions{grid-template-columns:1fr 1fr;gap:8px;padding:8px 16px 12px;display:grid}.control-actions button{min-height:34px}.role-state{color:#1f2933;background:#eef3f4;border-radius:6px;margin:0 16px 10px;padding:9px 10px;font-size:13px}.role-state.extinguishing{color:#8a3218;background:#fff1e8}.role-state.evacuating{color:#7a5700;background:#fff8db}.role-state.moving{color:#245b78;background:#e8f1f5}.manual-control-panel{gap:10px;padding:0 16px 12px;display:grid}.control-section-label{color:#64748b;font-size:12px}.view-toggle-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.view-toggle-row button.active{color:#245b78;background:#e7f2f7;border-color:#2c6f8e}.direction-pad{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.direction-pad span{min-height:34px}.direction-pad button{min-height:36px;font-weight:600}.direction-pad button.active{color:#245b78;background:#e7f2f7;border-color:#2c6f8e}.action-log{color:#53606c;gap:6px;margin:0;padding:0 16px 14px 34px;font-size:12px;display:grid}.parameter-summary div{grid-template-columns:84px minmax(0,1fr);gap:8px;display:grid}.parameter-summary dt{color:#697786;font-size:12px}.parameter-summary dd{color:#1f2933;margin:0;font-size:13px}.task-list.compact{max-height:calc(100vh - 650px)}@media (width<=1180px){.workspace-grid{grid-template-columns:220px minmax(0,1fr)}.task-panel{grid-column:1/-1}}@media (width<=760px){.drill-header,.drill-setup-panel,.workspace-grid{padding-left:16px;padding-right:16px}.drill-setup-panel{margin-left:16px;margin-right:16px}.drill-header{flex-direction:column}.status-strip,.parameter-grid,.workspace-grid,.event-panel,.three-page{grid-template-columns:1fr}.status-strip{padding:0 16px}.event-panel>div+div{border-top:1px solid #d8dde3;border-left:none}.scene-board{grid-template-columns:1fr 1fr}.editor-section{margin-left:16px;margin-right:16px}.three-page{padding-left:16px;padding-right:16px}.three-main-panel,.drill-map-scene{height:520px;min-height:520px}}
