.app-shell{min-height:100vh;padding:24px;background:linear-gradient(180deg,#ffffffd1,#f6f7fb00),#f6f7fb}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 auto 20px;max-width:1680px}.eyebrow{margin:0 0 6px;color:#52756a;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;color:#17201b;font-size:clamp(28px,4vw,44px);line-height:1.05}h2{margin-bottom:14px;font-size:18px}h3{margin-bottom:8px;font-size:15px}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-height:40px}.primary-button{min-height:40px;padding:0 16px;border:0;border-radius:8px;background:#1f6f5b;color:#fff;cursor:pointer;font-weight:800}.primary-button:hover{background:#185a49}.secondary-button{min-height:40px;padding:0 16px;border:1px solid #b9c8d6;border-radius:8px;background:#eef4f9;color:#20384f;cursor:pointer;font-weight:800}.secondary-button:hover{background:#e2edf6}.danger-button{min-height:34px;padding:0 10px;border:1px solid #e2a095;border-radius:8px;background:#fff2ef;color:#9d3b2f;cursor:pointer;font-weight:800}.full-width{width:100%}.status-text{min-width:180px;color:#52756a;font-size:13px}.error-band{display:flex;flex-wrap:wrap;gap:8px;max-width:1680px;margin:0 auto 16px}.error-band span{padding:8px 10px;border:1px solid #f1b3a7;border-radius:8px;background:#fff2ef;color:#a33c2f;font-size:13px}.summary-grid,.workspace-grid,.data-grid,.dataset-grid,.gear-panel,.simulation-grid,.comparison-grid{max-width:1680px;margin:0 auto}.summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:12px}.metric,.panel{border:1px solid #d8e2dc;border-radius:8px;background:#ffffffe0;box-shadow:0 8px 28px #1f322b0f}.metric{min-height:82px;padding:16px}.metric span{display:block;margin-bottom:8px;color:#65756e;font-size:13px;font-weight:700}.metric strong{color:#13251f;font-size:24px;line-height:1.1}.workspace-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(420px,1fr) minmax(320px,400px);gap:12px;align-items:start}.panel{padding:18px}.controls-panel{display:grid;gap:12px}label{display:grid;gap:6px;color:#43534d;font-size:13px;font-weight:800}input,textarea,select{width:100%;border:1px solid #cbd8d0;border-radius:8px;background:#fff;color:#17201b;outline:none}input,select{min-height:38px;padding:8px 10px}textarea{min-height:260px;padding:10px;resize:vertical;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.45}input:focus,textarea:focus,select:focus{border-color:#1f6f5b;box-shadow:0 0 0 3px #1f6f5b1f}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-row.triple{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.compact-textarea{min-height:118px}.section-heading{display:flex;justify-content:space-between;gap:16px;margin-bottom:16px}.section-heading.compact{align-items:center;margin-bottom:8px}.section-heading p{margin-bottom:0;color:#65756e;font-size:13px}.timeline-chart{display:grid;gap:10px;min-width:0}.track{position:relative;overflow:hidden;border:1px solid #d8e2dc;border-radius:8px;background:#fbfcfb}.boss-track{height:52px}.event-track{height:150px}.boss-action,.groggy-range,.event-marker{position:absolute;display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.boss-action{top:8px;height:34px;padding:0 8px;border-radius:8px;background:#f1c6ad;color:#65351f;font-size:12px;font-weight:800}.groggy-range{top:18px;height:42px;border-radius:8px;background:#4082c92e;color:#245383;font-size:12px;font-weight:900}.event-marker{top:78px;width:88px;max-width:88px;min-height:32px;transform:translate(-44px);padding:0 8px;border:1px solid #cdd8d2;border-radius:8px;background:#fff;color:#23302a;font-size:11px;font-weight:800}.event-marker.skill{border-color:#a6cfbd;background:#e9f7f0}.event-marker.legacy{border-color:#d8c17d;background:#fff6d7}.event-marker.counter{border-color:#c86f60;background:#ffe8e3}.event-marker.just_guard{border-color:#759fd4;background:#e8f1ff}.tick-row{display:grid;grid-template-columns:repeat(7,1fr);color:#75827d;font-size:12px}.tick-row span:last-child{text-align:right}.counter-result{margin-top:18px;padding-top:16px;border-top:1px solid #d8e2dc}.counter-result p{color:#3d4c46;font-size:14px;line-height:1.55}dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}dt{margin-bottom:4px;color:#65756e;font-size:12px;font-weight:800}dd{margin:0;color:#17201b;font-size:14px;font-weight:900}.results-panel{min-width:0}.damage-split{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.damage-split div{padding:12px;border:1px solid #d8e2dc;border-radius:8px;background:#fbfcfb}.damage-split span{display:block;color:#65756e;font-size:12px;font-weight:800}.damage-split strong{display:block;margin-top:6px;color:#17201b;font-size:18px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px 8px;border-bottom:1px solid #e5ece8;text-align:left}th{color:#65756e;font-size:12px}td{color:#25352e;font-weight:700;vertical-align:top}.data-grid{display:grid;grid-template-columns:repeat(4,minmax(280px,1fr));gap:12px;margin-top:12px;align-items:start}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.upload-tile{min-height:210px;align-content:start;border:1px dashed #9fb4aa;border-radius:8px;padding:12px;background:#fbfcfb;cursor:pointer}.upload-tile input{min-height:auto;padding:0;border:0;background:transparent}.upload-tile strong{display:grid;min-height:130px;place-items:center;border-radius:8px;background:#edf3ef;color:#52756a}.upload-tile img{display:block;width:100%;max-height:150px;object-fit:contain;border-radius:8px;background:#111}.json-panel textarea{min-height:330px}.parser-panel,.ocr-panel,.import-panel{display:grid;gap:12px}.status-line{min-height:20px;margin:0;color:#506178;font-size:13px;font-weight:700}.template-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.template-list div{display:grid;grid-template-columns:32px minmax(0,1fr);gap:4px 8px;align-items:center;min-width:0;padding:8px;border:1px solid #d8e2dc;border-radius:8px;background:#fbfcfb}.template-list img{grid-row:span 2;width:32px;height:32px;object-fit:contain;border-radius:6px;background:#111}.template-list span,.template-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-list span{color:#23302a;font-size:12px;font-weight:900}.template-list small{color:#65756e;font-size:11px}.mode-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.mode-button{min-height:36px;border:1px solid #cbd8d0;border-radius:8px;background:#fff;color:#34463d;cursor:pointer;font-weight:800}.mode-button.active{border-color:#1f6f5b;background:#e9f7f0;color:#165342}.timeline-image-review{position:relative;overflow:hidden;width:100%;border:1px solid #cbd8d0;border-radius:8px;background:#111}.timeline-image-review.is-picking{cursor:crosshair;outline:3px solid rgba(31,111,91,.22)}.timeline-image-review img{position:absolute;inset:0;width:100%;height:100%}.calibration-line{position:absolute;z-index:2;pointer-events:none}.calibration-line.vertical{top:0;bottom:0;width:2px;background:#ffe65cf2}.calibration-line.vertical.right{background:#5fd2fff2}.calibration-line.horizontal{right:0;left:0;height:2px;background:#63ff9be6}.calibration-line.horizontal.bottom{background:#ff7878e6}.image-event-dot{position:absolute;z-index:3;display:grid;width:22px;height:22px;transform:translate(-50%,-50%);place-items:center;border:2px solid #fff;border-radius:999px;background:#1f6f5b;color:#fff;font-size:11px;font-weight:900;pointer-events:none}.image-event-dot.legacy{background:#a77a16}.image-event-dot.counter{background:#c24a3d}.image-event-dot.just_guard{background:#2d68ad}.event-review{display:grid;gap:8px;margin-top:12px}.event-review-table{overflow-x:auto;max-height:360px;border:1px solid #e5ece8;border-radius:8px}.event-review-table table{min-width:760px}.event-review-table input,.event-review-table select{min-width:92px;min-height:34px;padding:6px 8px}.file-line input{min-height:auto;padding:8px}.gear-panel,.dataset-grid{margin-top:12px}.dataset-panel textarea{min-height:420px;margin-top:12px}.source-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.source-card{display:grid;gap:6px;min-width:0;padding:12px;border:1px solid #d8e2dc;border-radius:8px;background:#fbfcfb;color:#1e3028;text-decoration:none}.source-card:hover{border-color:#8bb7a8;background:#f2faf6}.source-card strong,.source-card span,.source-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-card strong{font-size:13px}.source-card span,.source-card small{color:#65756e;font-size:12px}.gear-grid{display:grid;grid-template-columns:repeat(6,minmax(180px,1fr));gap:12px}.gear-card{display:grid;gap:10px;min-width:0;padding:14px;border:1px solid #d8e2dc;border-radius:8px;background:#fbfcfb}.gear-card h3{margin-bottom:0}.comparison-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.7fr);gap:12px;margin-top:12px}.simulation-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.8fr);gap:12px;margin-top:12px;align-items:start}.compact-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.compact-summary .metric{min-height:74px}.compact-summary .metric strong{overflow-wrap:anywhere;font-size:17px}.simulator-panel,.simulator-controls{overflow-x:auto}.simulator-controls{display:grid;gap:12px}.simulator-controls textarea{min-height:430px}.simulation-table{overflow-x:auto;max-height:460px;border:1px solid #e5ece8;border-radius:8px}.simulation-table table{min-width:720px}.warning-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.warning-list span{padding:7px 9px;border:1px solid #ead29a;border-radius:8px;background:#fff8e5;color:#7a5710;font-size:12px;font-weight:800}.checkbox-row{display:flex;align-items:center;gap:8px;min-height:38px}.checkbox-row input{width:auto}.comparison-grid .panel{overflow-x:auto}.comparison-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.comparison-summary .metric{min-height:74px}.comparison-summary .metric strong{overflow-wrap:anywhere;font-size:16px}@media(max-width:1180px){.summary-grid,.workspace-grid,.data-grid,.source-card-grid,.gear-grid,.simulation-grid,.comparison-grid{grid-template-columns:1fr 1fr}.timeline-panel{grid-column:1 / -1}}@media(max-width:760px){.app-shell{padding:16px}.topbar,.topbar-actions{align-items:flex-start;flex-direction:column}.summary-grid,.workspace-grid,.data-grid,.gear-grid,.simulation-grid,.comparison-grid,.compact-summary,.comparison-summary,dl,.upload-grid,.mode-row,.field-row,.field-row.triple,.damage-split{grid-template-columns:1fr}.event-marker{width:72px;max-width:72px;transform:translate(-36px)}}:root{color:#17201b;background:#f5f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea,select{font:inherit}button{border:0}
