:root{font-family:Inter,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:#1d2a36;background:#eef3f7;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;margin:0;background:#eef3f7}button,input,select,textarea{font:inherit}button,a{transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.app-layout{min-height:100vh;background:linear-gradient(180deg,#f5f8fbf5,#e6edf3),#eef3f7}.sidebar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:72px;padding:12px 28px;border-bottom:1px solid #d5e0ea;background:#f7fafcf5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px}.brand>span{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;background:#e35d3f;color:#fff;font-weight:800}.brand strong,.brand small{display:block}.brand small,.panel-title span,.muted,dt,.result-card dt,.timeline-item span{color:#647586}.sidebar nav{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.sidebar a{min-height:38px;padding:8px 12px;border:1px solid transparent;border-radius:8px;color:#405061}.sidebar a:hover,.sidebar a.active{border-color:#b8c8d8;background:#eaf1f7;color:#172635}.page-shell{width:min(1440px,100%);margin:0 auto;padding:28px 32px 40px}.page-stack{display:grid;gap:22px}.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.page-title h1{margin:0;font-size:32px;line-height:1.15}.page-title.split{align-items:center}.title-actions,.action-bar,.filter-bar,.form-footer,.row-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.panel,.summary-card{border:1px solid #d7e1ea;border-radius:8px;background:#fff;box-shadow:0 16px 34px #1f34481a}.panel{padding:18px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.panel-title h2,.panel-title h3{margin:0;font-size:18px}.summary-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:0;overflow:hidden;border:1px solid #e1e9f0;border-radius:8px;background:#ffffff94}.summary-card{display:grid;gap:12px;min-height:92px;padding:16px 18px;border:0;border-radius:0;background:transparent;box-shadow:none}.summary-card+.summary-card{border-left:1px solid #e1e9f0}.summary-card span{color:#687989}.summary-card strong{font-size:34px}.summary-card .summary-text{font-size:18px;line-height:1.35;overflow-wrap:anywhere}.summary-warning,.summary-danger{border-color:transparent;background:transparent}.dashboard-grid,.detail-grid,.form-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.85fr);gap:18px}.list-stack{display:grid;gap:10px}.recent-issue{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:13px;border:1px solid #d8e2eb;border-radius:8px;background:#f8fbfd}.recent-issue strong,.recent-issue span,.table-panel td strong,.table-panel td span{display:block}.recent-issue.risk-1{border-color:#e15f4c;background:#fff1ef}.snapshot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.snapshot-tile{overflow:hidden;border:1px solid #d8e2eb;border-radius:8px;background:#f8fbfd}.snapshot-tile img{width:100%;aspect-ratio:4 / 3;object-fit:cover}.snapshot-tile div{display:flex;justify-content:space-between;gap:8px;padding:10px;color:#405061}.badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.level-1{background:#e35d3f;color:#fff}.level-2{background:#d8963a;color:#1a1208}.level-3{background:#d8c65b;color:#1a1808}.level-4,.level-empty{background:#d9e3ec;color:#263746}.issue-status-real_fire,.report-status-sent{background:#d9f3e3;color:#17643a}.issue-status-candidate,.issue-status-vlm_analyzing,.report-status-draft{background:#fff0cf;color:#7a4b00}.issue-status-false_alarm,.issue-status-closed,.report-status-canceled{background:#e2e9ef;color:#3e4f60}.issue-status-reported,.report-status-approved{background:#dceeff;color:#195783}.report-status-failed{background:#ffe1dc;color:#9d2e20}.status-active{background:#d9f3e3;color:#17643a}.status-inactive{background:#e2e9ef;color:#3e4f60}.filter-bar,.action-bar{padding:14px;border:1px solid #d7e1ea;border-radius:8px;background:#fff}input,select,textarea{width:100%;border:1px solid #c7d4df;border-radius:8px;background:#fbfdff;color:#1d2a36;padding:11px 12px}select{width:auto;min-width:170px}label{display:grid;gap:8px;color:#344657;font-weight:700}.checkbox-row{display:flex;align-items:center;justify-content:flex-start}.checkbox-row input{width:auto}.form-panel,.settings-form{display:grid;gap:16px}.settings-form{grid-template-columns:repeat(2,minmax(0,1fr))}.full-span,.form-footer{grid-column:1 / -1}.file-list{display:flex;flex-wrap:wrap;gap:8px}.file-chip{min-height:32px;padding:6px 10px;border-color:#c7d4df;background:#fbfdff;color:#405061;font-size:13px}.file-chip.active{border-color:#e35d3f;background:#fff0ec;color:#9d2e20}button,.ghost-button,.primary-button,.secondary-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 14px;border:1px solid transparent;border-radius:8px;cursor:pointer;font-weight:800;white-space:nowrap}.primary-button{background:#e35d3f;color:#fff}.secondary-button,.ghost-button{border-color:#bdccd9;background:#eef5fb;color:#24384a}.danger-button{background:#b83d32;color:#fff}button:hover,.ghost-button:hover{transform:translateY(-1px)}.upload-preview img{width:100%;aspect-ratio:16 / 10;border-radius:8px;object-fit:cover}.issue-overview-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.75fr);gap:18px;align-items:start}.issue-summary-panel{position:sticky;top:94px}.issue-detail-page{gap:18px}.issue-hero{display:flex;align-items:stretch;justify-content:space-between;gap:18px;padding:22px;border:1px solid #d5e0ea;border-left-width:6px;border-radius:8px;background:#fff;box-shadow:0 12px 28px #1f344814}.hero-danger{border-left-color:#e35d3f}.hero-warning{border-left-color:#d8963a}.hero-calm{border-left-color:#6fa985}.issue-hero-title{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:6px}.issue-hero h1{margin:0;font-size:34px}.issue-hero p{margin:10px 0 0;color:#566879;font-size:15px}.hero-level{display:inline-flex;align-items:center;min-height:34px;padding:6px 12px;border-radius:999px;color:#fff;font-size:15px;font-weight:900}.level-tone-1{background:#e35d3f}.level-tone-2{background:#d8963a;color:#241504}.level-tone-3{background:#d8c65b;color:#242008}.level-tone-4,.level-tone-empty{background:#d9e3ec;color:#263746}.hero-status-card{display:grid;min-width:240px;align-content:center;gap:5px;padding:14px 16px;border:1px solid #d8e2eb;border-radius:8px;background:#f8fbfd}.hero-status-card span,.hero-status-card small{color:#647586}.hero-status-card strong{color:#172635;font-size:20px}.control-grid,.operations-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(360px,.85fr);gap:18px;align-items:start}.operations-main{display:grid;gap:18px}.detection-card .panel-title{align-items:flex-start}.detection-card .panel-title span{display:block;margin-top:4px}.image-badge-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.signal-badge{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;font-size:13px;font-weight:900}.signal-badge.danger{background:#ffe1dc;color:#9d2e20}.signal-badge.warning{background:#fff0cf;color:#7a4b00}.signal-badge.calm{background:#e2e9ef;color:#3e4f60}.snapshot-stage,.snapshot-preview{position:relative;overflow:hidden;margin-bottom:14px;border:1px solid #d8e2eb;border-radius:8px;background:#0f1720}.snapshot-stage img,.snapshot-preview img{width:100%;height:auto;object-fit:contain}.snapshot-placeholder{display:grid;min-height:180px;margin-bottom:14px;place-items:center;border:1px dashed #bdccd9;border-radius:8px;color:#6c7d8d;background:#f5f8fb}.timeline-thumb{width:76px;height:54px;border:1px solid #d8e2eb;border-radius:6px;object-fit:cover;background:#f8fbfd}.image-caption{display:flex;justify-content:space-between;gap:12px;color:#647586;font-size:13px;overflow-wrap:anywhere}.image-caption strong{flex:0 0 auto;color:#273746}.image-note{margin:12px 0 0;font-size:13px}.decision-card{position:sticky;top:94px;border-top-width:5px}.decision-danger{border-top-color:#e35d3f}.decision-warning{border-top-color:#d8963a}.decision-calm{border-top-color:#6fa985}.decision-header{display:grid;gap:4px;padding-bottom:14px;border-bottom:1px solid #e0e8ef}.decision-header span{color:#647586;font-weight:800}.decision-header strong{font-size:30px;line-height:1.15}.decision-metrics,.report-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 0}.decision-metrics div,.report-meta-grid div{min-width:0;padding:11px;border:1px solid #d8e2eb;border-radius:8px;background:#f8fbfd}.decision-summary{margin:14px 0;padding:14px;border:1px solid #d7e1ea;border-radius:8px;background:#f6f9fc;line-height:1.6}.decision-summary p{margin:8px 0 0;white-space:pre-wrap}.compact-summary{margin-bottom:0}.decision-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.decision-actions .action-strong{grid-column:1 / -1;min-height:48px;font-size:16px}.report-card-list,.vlm-round-list,.snapshot-select-list{display:grid;gap:12px}.report-event-card,.vlm-round-card{padding:14px;border:1px solid #d8e2eb;border-radius:8px;background:#f8fbfd}.vlm-round-card.active{border-color:#e35d3f;background:#fff7f3;box-shadow:inset 0 0 0 1px #e35d3f2e}.report-event-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.report-event-head strong,.report-event-head span{display:block}.report-event-head span{margin-top:3px;color:#647586;font-size:13px}.report-message,.raw-response{margin:12px 0}.report-message summary,.raw-response summary,.vlm-round-card summary{cursor:pointer;font-weight:900}.report-message p,.raw-response pre{margin:10px 0 0;white-space:pre-wrap;line-height:1.6}.raw-response pre{max-height:260px;overflow:auto;padding:12px;border-radius:8px;background:#eef3f7}.vlm-round-card summary{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.vlm-round-card summary span{color:#647586}.vlm-round-card summary em{color:#647586;font-style:normal;font-weight:800}.round-image-link{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0;padding:10px 12px;border:1px solid #d8e2eb;border-radius:8px;background:#fff}.round-image-link span{color:#647586;font-size:13px;font-weight:900}.round-image-button{min-height:34px;padding:6px 12px;white-space:nowrap}.timeline-panel{position:sticky;top:94px}.snapshot-select-item{display:grid;grid-template-columns:72px auto minmax(0,1fr);gap:10px;align-items:center;width:100%;min-height:auto;padding:8px;border:1px solid #d8e2eb;border-radius:8px;background:#f8fbfd;color:#273746;text-align:left}.snapshot-select-item.active{border-color:#e35d3f;background:#fff3ef;box-shadow:inset 0 0 0 1px #e35d3f47}.snapshot-select-item img{width:72px;height:48px;border-radius:6px;object-fit:cover;background:#e8eef4}.snapshot-select-item span{font-weight:900}.snapshot-select-item strong{color:#647586;font-size:13px;font-weight:700}.timeline-more-button{width:100%;margin-top:12px}.empty-panel{display:grid;min-height:150px;place-items:center;border:1px dashed #bdccd9;border-radius:8px;color:#6c7d8d;background:#f5f8fb}.result-card,.kv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0 0}.kv-grid.single{grid-template-columns:1fr}.result-card div,.kv-grid div{min-width:0;padding:12px;border:1px solid #d8e2eb;border-radius:8px;background:#f8fbfd}dt{margin-bottom:5px;font-size:12px}dd{margin:0;overflow-wrap:anywhere}.table-panel{overflow-x:auto;padding:0}.table-panel .padded-title{padding:18px 18px 0}table{width:100%;min-width:760px;border-collapse:collapse}th,td{padding:14px;border-bottom:1px solid #e0e8ef;text-align:left;vertical-align:middle}th{color:#6d7f8f;font-size:12px;text-transform:uppercase}td{color:#283847}.wide-cell{max-width:360px;overflow-wrap:anywhere;line-height:1.5}.stepper{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:10px;padding:0;margin:0;list-style:none}.stepper.vertical{grid-template-columns:1fr}.step{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid #d7e1ea;border-radius:8px;background:#f8fbfd;color:#687989}.step span{display:grid;width:26px;height:26px;flex:0 0 26px;place-items:center;border-radius:999px;background:#d8e4ee;color:#314456;font-size:12px;font-weight:900}.step.done{border-color:#8fc5a4;color:#224033}.step.done span{background:#2d8f55;color:#fff}.step p{margin:0;font-size:13px;font-weight:800}.image-panel{min-width:0}.detection-viewer{position:relative;overflow:hidden;border-radius:8px;background:#e8eef4}.detection-viewer img{width:100%;height:auto}.detection-box{position:absolute;min-width:44px;min-height:28px;border:2px solid;box-shadow:0 0 0 1px #ffffffb8;pointer-events:none}.detection-box span{position:absolute;left:-2px;top:-28px;padding:4px 6px;border-radius:6px 6px 0 0;font-size:12px;font-weight:900;white-space:nowrap}.detection-fire{border-color:#ff6547}.detection-fire span{background:#ff6547;color:#fff}.detection-smoke{border-color:#ffd166}.detection-smoke span{background:#ffd166;color:#18130a}.side-stack,.report-list{display:grid;gap:18px}.compact-list{display:grid;gap:8px;margin-top:14px}.compact-list div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;padding:10px;border-radius:8px;background:#f8fbfd}.compact-list.single div{grid-template-columns:1fr}.error-text{color:#a83327;font-weight:800}.message-box p{margin:8px 0 0}.message-box pre{overflow-x:auto;margin:10px 0 0;white-space:pre-wrap}.timeline{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.timeline-item{overflow:hidden;border:1px solid #d8e2eb;border-radius:8px;background:#f8fbfd}.timeline-item img{width:100%;aspect-ratio:4 / 3;object-fit:cover}.timeline-item strong,.timeline-item span{display:inline-block;padding:10px 10px 0}.timeline-item span{padding-bottom:10px}.message-box{margin:16px 0 0;padding:14px;border:1px solid #d7e1ea;border-radius:8px;background:#f6f9fc;line-height:1.6}.judgement-box{margin:14px 0;padding:14px;border:1px solid #d7e1ea;border-radius:8px;background:#f6f9fc;line-height:1.55}.judgement-box p,.history-message-list p{margin:8px 0 0;white-space:pre-wrap}.history-message-list{display:grid;gap:10px;padding:0 18px 18px}.history-message-list details{padding:12px;border:1px solid #d8e2eb;border-radius:8px;background:#f8fbfd}.history-message-list summary{cursor:pointer;font-weight:800}.text-link{color:#8dbff4;font-weight:800}.report-card details{margin-top:14px}.report-card summary{overflow:hidden;cursor:pointer;color:#243647;text-overflow:ellipsis;white-space:nowrap}.report-card p{margin:12px 0 0;color:#526577;line-height:1.6}.report-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:#536678}@media(max-width:1120px){.sidebar{align-items:flex-start;flex-direction:column}.sidebar nav{justify-content:flex-start;overflow-x:auto}.summary-grid,.dashboard-grid,.detail-grid,.form-grid,.issue-overview-grid,.control-grid,.operations-grid{grid-template-columns:1fr}.issue-summary-panel,.decision-card,.timeline-panel{position:static}.stepper{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.page-shell{padding:18px}.sidebar{padding:12px 18px}.sidebar nav{width:100%}.sidebar a{flex:1 1 120px;text-align:center}.page-title{align-items:flex-start;flex-direction:column}.issue-hero{flex-direction:column}.hero-status-card{min-width:0}.issue-hero h1{font-size:28px}.decision-metrics,.report-meta-grid,.decision-actions{grid-template-columns:1fr}.vlm-round-card summary{grid-template-columns:1fr}.snapshot-select-item{grid-template-columns:64px auto}.snapshot-select-item strong{grid-column:2}.summary-grid,.settings-form,.result-card,.kv-grid,.stepper,.recent-issue,.snapshot-grid{grid-template-columns:1fr}}
