:root{--ink:#f4f1df;--muted:#a8bbb1;--board:#12231e;--rail:#07120f;--panel:#f5f2e9;--teal:#73e2d0;--gold:#ffd66b;--pink:#ff8d9d;--line:rgba(244,241,223,.18);font-family:Inter,'Noto Sans KR',sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#0b1714;color:var(--ink)}button{font:inherit;cursor:pointer;border:0}button:focus-visible{outline:3px solid #7be8d6;outline-offset:2px}.physics-board{min-height:100vh;display:grid;grid-template-rows:58px minmax(0,1fr);background:var(--board)}.physics-topbar{height:58px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 15px;background:#0e1b18;border-bottom:1px solid var(--line);z-index:30}.physics-brand{display:flex;align-items:center;gap:10px;min-width:210px}.physics-brand>a{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none;font-size:21px}.physics-brand span{display:block;color:#8ea59b;font:500 8px 'DM Mono',monospace;letter-spacing:.11em}.physics-brand h1{margin:3px 0 0;font-size:17px;line-height:1}.physics-brand i{display:inline-block;width:9px;height:9px;margin-right:7px;background:var(--teal);border-radius:50%;box-shadow:0 0 12px #73e2d0}.physics-scenes{display:flex;align-items:center;gap:6px;color:#8ea59b;font-size:9px}.physics-scenes .scene{width:28px;height:28px;border-radius:8px;background:transparent;color:#aabdb4;border:1px solid var(--line);font:800 10px 'DM Mono',monospace}.physics-scenes .scene.active{background:#e2f5ee;color:#17352c;border-color:#e2f5ee}.physics-scenes .save,.physics-actions button{height:30px;padding:0 10px;border-radius:8px;background:rgba(255,255,255,.08);color:var(--ink);border:1px solid var(--line);font-size:9px;font-weight:800}.physics-actions{display:flex;align-items:center;gap:6px}.physics-actions output{margin-right:4px;color:#8ea59b;font:500 8px 'DM Mono',monospace}.physics-actions button{min-width:32px}.physics-actions button:hover,.physics-scenes .save:hover{background:rgba(255,255,255,.15)}.physics-stage{position:relative;min-height:0;overflow:hidden;background:var(--board)}#physicsCanvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;z-index:2}.physics-grid{position:absolute;inset:0;z-index:1;opacity:.22;background-image:linear-gradient(rgba(139,198,177,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(139,198,177,.18) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent)}.physics-rail{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:62px;padding:8px 6px;display:flex;flex-direction:column;gap:4px;background:rgba(7,18,15,.86);border:1px solid var(--line);border-radius:16px;z-index:10;box-shadow:0 14px 38px rgba(0,0,0,.28);backdrop-filter:blur(10px)}.physics-tool{width:50px;min-height:48px;border-radius:10px;background:transparent;color:#b7c9c0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;font-size:8px;font-weight:800}.physics-tool b{font:800 20px 'DM Mono',monospace;line-height:21px}.physics-tool:hover{background:rgba(255,255,255,.08);color:#fff}.physics-tool.active{background:var(--ink);color:#17352c}.physics-rail hr{width:38px;border:0;border-top:1px solid var(--line);margin:4px auto}.physics-hud{position:absolute;left:94px;bottom:22px;z-index:5;display:flex;flex-direction:column;gap:4px;max-width:min(390px,calc(100% - 120px));padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:rgba(7,18,15,.74);backdrop-filter:blur(8px)}.physics-hud b{font-size:10px;color:var(--gold)}.physics-hud span{font-size:9px;line-height:1.4;color:#c4d5cd}.physics-selection{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:12;display:flex;align-items:center;gap:9px;min-height:42px;padding:7px 9px 7px 12px;border:1px solid rgba(115,226,208,.55);border-radius:11px;background:rgba(8,25,20,.92);box-shadow:0 8px 22px rgba(0,0,0,.25);font-size:9px}.physics-selection span{font:800 10px 'DM Mono',monospace;color:var(--teal)}.physics-selection button{min-height:28px;padding:0 9px;border-radius:7px;background:rgba(255,255,255,.1);color:var(--ink);font-size:8px;font-weight:800}.physics-selection button:hover{background:rgba(255,255,255,.2)}.physics-panel{position:absolute;right:14px;top:72px;bottom:14px;width:min(360px,calc(100% - 94px));z-index:20;overflow:auto;padding:22px 18px 28px;background:var(--panel);color:#263630;border-radius:15px;box-shadow:0 20px 45px rgba(0,0,0,.35)}.panel-close{position:absolute;right:13px;top:12px;width:30px;height:30px;border-radius:8px;background:#e1e4dd;color:#30423a;font-size:18px}.panel-kicker{display:block;color:#6f8178;font:800 8px 'DM Mono',monospace;letter-spacing:.1em}.physics-panel h2{margin:5px 0 15px;font-size:20px}.panel-copy{padding:10px 11px;border-left:3px solid #4da493;background:#e9f6f1;border-radius:0 9px 9px 0;font-size:10px;line-height:1.55}.physics-form{display:grid;gap:9px;margin-top:13px}.physics-form label{display:grid;gap:5px;font-size:9px;font-weight:800;color:#56675f}.physics-form input,.physics-form select{height:38px;padding:0 10px;border:1px solid #cbd5ce;border-radius:8px;background:#fff;color:#263630;font:800 11px 'DM Mono',monospace}.physics-form button,.panel-action{min-height:40px;border-radius:8px;background:#176b5d;color:#fff;font-size:10px;font-weight:800}.physics-form button:hover,.panel-action:hover{background:#0f5448}.unit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:12px}.unit-card{padding:9px;border:1px solid #d2d9d2;border-radius:9px;background:#fff}.unit-card b{display:block;font:800 12px 'DM Mono',monospace;color:#1c594d}.unit-card span{display:block;margin-top:4px;font-size:8px;color:#637169;line-height:1.35}.result-card{margin-top:13px;padding:12px;border:1px solid #b7ded3;border-radius:10px;background:#effaf5}.result-card b{display:block;color:#1c685a;font:800 11px 'DM Mono',monospace}.result-card strong{display:block;margin-top:5px;color:#173e35;font:800 19px 'DM Mono',monospace}.result-card span{display:block;margin-top:5px;font-size:8px;color:#637169}.vector-list{display:grid;gap:6px;margin-top:10px}.vector-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;border:1px solid #d3dad4;border-radius:8px;background:#fff;font-size:9px}.vector-row code{font:800 10px 'DM Mono',monospace;color:#1b5c50}.vector-row button{width:26px;height:26px;border-radius:6px;background:#f0e5e6;color:#934b55;font-weight:800}@media(max-width:760px){.physics-topbar{height:auto;min-height:58px;padding:7px 9px}.physics-brand{min-width:0}.physics-brand span{font-size:7px}.physics-brand h1{font-size:15px}.physics-scenes>span,.physics-scenes .save,.physics-actions output,.physics-actions #exportBtn{display:none}.physics-scenes{margin-left:auto}.physics-actions{gap:3px}.physics-actions button{padding:0 8px}.physics-rail{left:50%;top:auto;bottom:max(9px,env(safe-area-inset-bottom));transform:translateX(-50%);width:auto;max-width:calc(100% - 14px);height:61px;flex-direction:row;overflow-x:auto;padding:5px 6px;border-radius:15px}.physics-rail hr{width:1px;height:38px;margin:6px 2px;border-top:0;border-left:1px solid var(--line)}.physics-tool{width:48px;min-width:48px;min-height:48px}.physics-hud{left:10px;bottom:82px;max-width:calc(100% - 20px)}.physics-panel{left:7px;right:7px;top:67px;bottom:74px;width:auto;border-radius:13px}.physics-selection{bottom:80px;max-width:calc(100% - 20px)}}
.result-card.invalid{border-color:#e4bbc0;background:#fff1f2}.result-card.invalid b,.result-card.invalid strong{color:#9b4b55}
.graph-grid{display:grid;gap:9px;margin-top:12px}.chart-card{padding:9px;border:1px solid #d2d9d2;border-radius:9px;background:#fff}.chart-card>b{display:block;color:#1c594d;font:800 10px 'DM Mono',monospace}.chart-svg{display:block;width:100%;height:auto;margin-top:5px}.chart-axis{stroke:#b7c8bf;stroke-width:1}.chart-label{fill:#718078;font:700 8px 'DM Mono',monospace}.chart-empty{padding:14px;border:1px dashed #c8d2cb;border-radius:9px;color:#6c7b73;font-size:9px}
.link-card{margin-top:10px;padding:11px;border-radius:9px;border:1px solid #d2d9d2;background:#fff}.link-card b{display:block;font:800 10px 'DM Mono',monospace}.link-card strong{display:block;margin-top:4px;font:800 15px 'DM Mono',monospace}.link-card span{display:block;margin-top:4px;font-size:8px;color:#637169}.link-matched{border-color:#9bd4c4;background:#effaf5}.link-matched b,.link-matched strong{color:#1c685a}.link-review{border-color:#e6ca8e;background:#fff9e9}.link-review b,.link-review strong{color:#926a18}.link-invalid{border-color:#e4bbc0;background:#fff1f2}.link-invalid b,.link-invalid strong{color:#9b4b55}
.graph-view-controls{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;border:1px solid #d2d9d2;border-radius:9px;background:#fff;font-size:9px;font-weight:800}.graph-view-controls label{display:flex;align-items:center;gap:7px;flex:1}.graph-view-controls input{width:100%;accent-color:#1c8c78}.graph-view-controls output{min-width:42px;text-align:right;color:#1c685a;font:800 10px 'DM Mono',monospace}.chart-viewport{overflow:hidden;margin-top:5px;border-radius:6px}.chart-viewport .chart-svg{margin-top:0;transition:transform .18s ease}.coordinate-readout{margin-top:9px;padding:9px;border-left:3px solid #b06bdb;border-radius:0 8px 8px 0;background:#f6effa;color:#5d3c70;font:800 9px 'DM Mono',monospace}
.graph-export-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:9px}.graph-export-actions .panel-action{min-height:34px;font-size:9px}
.report-meta{display:flex;justify-content:space-between;gap:8px;margin-top:10px;padding:10px;border-radius:9px;background:#e9f6f1;color:#1c594d;font-size:9px}.report-meta span{color:#637169}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:9px}.report-card{padding:10px 8px;border:1px solid #d2d9d2;border-radius:9px;background:#fff}.report-card b{display:block;color:#6f8178;font:800 9px 'DM Mono',monospace}.report-card strong{display:block;margin-top:5px;color:#173e35;font:800 14px 'DM Mono',monospace}.report-card span{display:block;margin-top:4px;color:#637169;font-size:8px;line-height:1.35}@media(max-width:420px){.report-grid{grid-template-columns:1fr}.report-meta{flex-direction:column}}
.user-preset-form{padding-top:10px;border-top:1px solid #d2d9d2}.user-preset-list{display:grid;gap:6px;margin-top:10px}.user-preset-row{display:grid;grid-template-columns:1fr repeat(3,auto);align-items:center;gap:5px;padding:7px 8px;border:1px solid #d2d9d2;border-radius:8px;background:#fff}.user-preset-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1b5c50;font:800 10px 'DM Mono',monospace}.user-preset-row button{min-height:27px;padding:0 7px;border-radius:6px;background:#e9f6f1;color:#1c685a;font-size:8px;font-weight:800}.user-preset-row button:nth-last-child(2){background:#fff4d9;color:#84621c}.user-preset-row button:last-child{background:#f0e5e6;color:#934b55}
.report-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:10px}
.report-graph{margin-top:11px;padding:10px;border:1px solid #d2d9d2;border-radius:9px;background:#fbfcfa}.report-graph>b{display:block;color:#1c594d;font:800 10px 'DM Mono',monospace}.report-graph .graph-grid{margin-top:5px}.report-graph-invalid{display:flex;flex-direction:column;gap:5px;color:#9b4b55;background:#fff1f2}.report-graph-invalid span{font-size:9px;line-height:1.4}
.compare-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.compare-card{padding:10px;border:1px solid #d2d9d2;border-radius:9px;background:#fff}.compare-card header{display:flex;justify-content:space-between;gap:5px;align-items:center;padding-bottom:8px;border-bottom:1px solid #e1e7e2}.compare-card header b{color:#1c594d;font:800 11px 'DM Mono',monospace}.compare-card header span{color:#1c685a;font-size:8px;font-weight:800}.compare-card dl{margin:8px 0 0}.compare-card dl div{display:flex;justify-content:space-between;gap:5px;padding:4px 0;border-bottom:1px solid #edf1ed}.compare-card dt{color:#6f8178;font-size:8px}.compare-card dd{margin:0;color:#173e35;font:800 9px 'DM Mono',monospace;text-align:right}@media(max-width:600px){.compare-grid{grid-template-columns:1fr}}
.compare-graphs{margin-top:11px;padding:10px;border:1px solid #d2d9d2;border-radius:9px;background:#fbfcfa}.compare-graphs>b{display:block;color:#1c594d;font:800 10px 'DM Mono',monospace}.compare-graphs>p{margin:4px 0 0;color:#637169;font-size:8px}.compare-graph-grid{display:grid;gap:7px;margin-top:7px}.compare-chart{padding:8px;border:1px solid #e2e7e2;border-radius:8px;background:#fff}.compare-chart>b{display:block;color:#315248;font:800 9px 'DM Mono',monospace}.compare-chart-svg{display:block;width:100%;height:auto;margin-top:4px}.compare-chart-legend{display:flex;gap:9px;flex-wrap:wrap;margin-top:3px;color:#637169;font:800 8px 'DM Mono',monospace}.compare-chart-legend span{display:inline-flex;align-items:center;gap:3px}.compare-chart-legend i{display:inline-block;width:8px;height:8px;border-radius:50%}.compare-chart-empty{display:flex;flex-direction:column;gap:4px}.compare-chart-empty span{font-size:8px;color:#9b4b55}
@media print{html,body{background:#fff!important}.physics-topbar,.physics-rail,.physics-hud,.physics-selection,.panel-close{display:none!important}.physics-board{display:block;min-height:0;background:#fff}.physics-stage{display:none!important}.physics-panel{position:static!important;width:100%!important;max-width:none!important;min-height:0!important;padding:0!important;overflow:visible!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;color:#263630!important}.physics-panel[hidden]{display:block!important}.physics-panel:not([data-panel-type="report"]){display:none!important}.physics-panel .panel-kicker,.physics-panel h2{display:block}.report-actions{display:none!important}.report-meta,.report-card,.report-graph,.link-card{break-inside:avoid}.report-card{border-color:#b8c9c0}.report-graph{border-color:#b8c9c0}.report-grid{grid-template-columns:repeat(3,1fr)}.report-graph .chart-svg{max-height:150px}}
