:root{color-scheme:light;font-family:Inter,Segoe UI,Microsoft YaHei,Arial,sans-serif;background:#eef2f0;color:#17211e}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,#148f7714,#2f6fed0f),#eef2f0}button,input{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:minmax(320px,410px) minmax(0,1fr);gap:18px;min-height:100vh;padding:18px}.left-panel,.details-band,.overflow-band{background:#ffffffdb;border:1px solid rgba(31,50,44,.1);border-radius:8px;box-shadow:0 18px 42px #2a39331f}.left-panel{display:flex;flex-direction:column;gap:14px;padding:18px;overflow:auto}.brand-row{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;color:#fff;background:#148f77}h1,h2,p{margin:0}h1{font-size:22px;letter-spacing:0}.brand-row p,.scene-toolbar p,.control-label,.metric span,.solution-list span,.source-note,.table-header span{color:#65746f;font-size:13px}.upload-zone{display:grid;place-items:center;gap:8px;min-height:118px;border:1px dashed #80a49a;border-radius:8px;color:#126d5c;background:#f7fbf9}.upload-zone.is-dragging{border-color:#148f77;background:#e9f7f3}.upload-zone input{display:none}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{padding:12px;border:1px solid #e0e7e4;border-radius:8px;background:#fff}.metric strong{display:block;margin-top:5px;font-size:20px;color:#17211e}.control-group{display:grid;gap:8px}.segmented,.tabs{display:flex;gap:6px;flex-wrap:wrap}.segmented button,.tabs button,.ghost-button{border:1px solid #d7e0dc;border-radius:8px;background:#fff;color:#243631}.segmented button{flex:1;min-width:92px;padding:10px 12px}.tabs button{padding:8px 10px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.segmented .active,.tabs .active{border-color:#148f77;color:#fff;background:#148f77}.switch-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.switch-row label{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border:1px solid #dfe7e4;border-radius:8px;background:#fff;font-size:14px}.switch-row input{width:17px;height:17px;accent-color:#148f77}.result-banner,.message{display:flex;gap:10px;align-items:flex-start;padding:13px;border-radius:8px}.result-banner p{margin-top:4px;color:#32433e;line-height:1.45}.result-banner.success{background:#e9f8f2;color:#0f6b48;border:1px solid #bdebd8}.result-banner.warning,.error-message{background:#fff5e6;color:#8a5200;border:1px solid #f4d29a}.message{background:#f8faf9;border:1px solid #e2e9e6;color:#4d5d58;line-height:1.45}.solution-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.solution-list div{padding:11px;border-radius:8px;background:#f7f9f8;border:1px solid #e1e8e5}.solution-list strong{display:block;margin-top:5px}.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;margin-top:auto}.main-panel{display:grid;grid-template-rows:auto minmax(420px,52vh) auto minmax(240px,1fr);gap:14px;min-width:0}.scene-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;padding:4px 2px 0}.scene-toolbar h2{margin-top:4px;font-size:24px;letter-spacing:0}.toolbar-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.toolbar-stats span{padding:8px 10px;border-radius:8px;color:#183831;background:#ffffffc2;border:1px solid #dde6e2;font-size:13px}.scene{width:100%;min-height:420px;border:1px solid rgba(31,50,44,.12);border-radius:8px;overflow:hidden;background:#eef2f0;box-shadow:0 22px 52px #2a393329}.scene canvas{display:block;width:100%;height:100%}.details-band{display:grid;min-height:0;padding:14px}.overflow-band{padding:14px}.overflow-list{display:grid;gap:8px}.overflow-row{display:grid;grid-template-columns:minmax(64px,auto) minmax(220px,1.3fr) minmax(220px,1fr) minmax(90px,auto);gap:12px;align-items:center;padding:11px 12px;border:1px solid #f0d2bf;border-radius:8px;background:#fff7f0}.overflow-row div{display:grid;gap:4px}.overflow-row span,.empty-overflow span{color:#697772;font-size:13px}.overflow-row strong{color:#7c2d12}.empty-overflow{display:flex;align-items:center;gap:8px;min-height:44px;color:#0f6b48}.table-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.table-header div,.item-name,.source-note{display:flex;align-items:center;gap:8px}.table-wrap{overflow:auto;border:1px solid #e1e8e5;border-radius:8px}table{width:100%;min-width:840px;border-collapse:collapse;background:#fff}th,td{padding:11px 12px;border-bottom:1px solid #edf1ef;text-align:left;font-size:14px}th{position:sticky;top:0;z-index:1;background:#f6f8f7;color:#5b6a65;font-weight:650}td{color:#22342f}.item-name span{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill{display:inline-flex;align-items:center;min-height:26px;padding:4px 8px;border-radius:8px;font-size:12px}.pill.ok{color:#0d6b48;background:#e8f7f0}.pill.danger{color:#9a3412;background:#fff0e6}.source-note{margin-top:10px}@media (max-width: 980px){.app-shell{grid-template-columns:1fr;padding:12px}.left-panel{overflow:visible}.main-panel{grid-template-rows:auto 460px auto auto}}@media (max-width: 560px){.summary-grid,.solution-list,.switch-row{grid-template-columns:1fr}.scene-toolbar{align-items:flex-start;flex-direction:column}.overflow-row{grid-template-columns:1fr}.toolbar-stats{justify-content:flex-start}.scene-toolbar h2{font-size:20px}}
