:root{font-family:Inter,"Noto Sans KR",system-ui,sans-serif;color:#172235;background:#f4f6f9;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.file-button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.file-button:focus-within{outline:3px solid #88d5c2;outline-offset:2px}.app{display:flex;min-height:100vh}aside{width:228px;background:#101c2e;color:#d8e1ef;padding:28px 18px;display:flex;flex-direction:column;flex-shrink:0}.brand{display:flex;align-items:center;gap:11px;margin:0 5px 58px}.brand strong{display:block;font-size:17px;color:#fff}.brand small{font-size:9px;letter-spacing:1.3px;color:#8291a6}.mark{width:38px;height:38px;background:#b7eadc;color:#104538;display:grid;place-items:center;border-radius:11px;font-weight:800;font-size:23px}.side-label{font-size:11px;color:#718099;padding:0 12px;margin-bottom:12px}nav{display:grid;gap:6px}nav a{padding:13px;border-radius:8px;color:#9eacc0;text-decoration:none;display:flex;gap:13px;align-items:center}nav a.active,nav a:hover{background:#26394b;color:#d2f4e9}.side-bottom{margin-top:auto;border-top:1px solid #304052;padding:22px 8px 0;line-height:2;color:#c2d1d7;font-size:12px}.side-bottom small{color:#8392a3}.dot{display:inline-block;width:7px;height:7px;background:#5dc7a4;border-radius:50%;margin-right:6px}main{width:min(1500px,calc(100% - 228px));padding:40px 48px 24px;margin:auto}header,.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.eyebrow,.kicker{font-size:10px;font-weight:750;letter-spacing:1.4px;color:#438f7e}.eyebrow{color:#8b98a6}h1{font-size:29px;letter-spacing:-1px;margin:9px 0}h2{font-size:21px;letter-spacing:-.6px;margin:7px 0}p{color:#778598;margin:7px 0;line-height:1.6}.header-badge,.pill{border:1px solid #d8e4e1;background:#fff;border-radius:30px;padding:9px 13px;font-size:12px;color:#5c766f;white-space:nowrap}.overview{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:29px 0}.overview article{background:white;border:1px solid #e8edf0;border-radius:12px;padding:19px 22px;box-shadow:0 3px 14px #253a4e08}.stat-label,.overview small{display:block;color:#8794a3;font-size:12px}.overview strong{display:block;font-size:23px;margin:9px 0 4px}.overview strong em{font-size:13px;font-style:normal}.panel{background:white;border:1px solid #e5eaee;border-radius:14px;padding:25px 27px;margin-bottom:18px;box-shadow:0 3px 16px #1b324409;scroll-margin-top:15px}.section-head{margin-bottom:20px}.section-head p{font-size:13px}.camera-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}button,.file-button{border:0;border-radius:7px;padding:10px 14px;font-weight:650;white-space:nowrap}.secondary,.file-button{background:white;border:1px solid #dce4e8;color:#344555}.secondary:hover,.file-button:hover{background:#f3f8f6}.ghost{background:transparent;color:#6a7b89}.primary{background:#218d75;color:white}.primary:hover{background:#176f5c}.notice{padding:11px 14px;border-radius:7px;color:#54776d;background:#eef8f4;font-size:12px;line-height:1.6}.feedback{color:#778598;font-size:12px;margin:12px 0}.camera-grid,.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.cam-card{border:1px solid #e6ecef;border-radius:10px;overflow:hidden}.card-head{padding:14px;display:flex;justify-content:space-between;align-items:center}.card-head small{color:#a1adb6;font-size:9px;letter-spacing:.9px;margin-left:7px}.tiny-dot{display:inline-block;width:7px;height:7px;background:#c5d2d6;border-radius:100%;margin-right:8px}.state{font-size:11px;color:#87939d}.camera-preview{background:#172534;aspect-ratio:16/8;position:relative;overflow:hidden}.camera-preview video{width:100%;height:100%;object-fit:contain;display:none}.camera-preview.live video{display:block}.camera-preview.live .placeholder{display:none}.placeholder{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#80909f;font-size:24px;gap:7px}.placeholder span{font-size:11px;color:#9eacb6}.camera-controls{display:flex;gap:8px;padding:12px 12px 5px}select,input,textarea{border:1px solid #dce4e8;border-radius:7px;background:white;color:#263a46;padding:10px;width:100%}select{min-width:0}.camera-meta{padding:5px 13px 13px;color:#8c99a5;font-size:11px}.checklist{margin-top:17px;color:#788794;font-size:12px}.checklist span{color:#2a8d75;font-weight:700;margin-right:10px}.checklist i{color:#bac6c6;margin:0 8px}.review-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:22px}.field-row{display:grid;grid-template-columns:2fr 1fr;gap:12px}label{display:block;font-size:12px;font-weight:700;color:#485a68}label input,label textarea{margin-top:8px;font-weight:400}.video-files{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.file-button{display:inline-block;font-size:12px}.file-button input{display:none}.video-grid video{display:block;width:100%;aspect-ratio:16/9;background:#172534;border-radius:8px}.video-label{font-size:10px;letter-spacing:1px;color:#688276;font-weight:800;margin:4px 0 8px}.video-label span{letter-spacing:0;font-weight:400;color:#94a2ab;margin-left:6px}.help{font-size:11px;color:#97a3ad;line-height:1.6}.label-box{background:#f6f9f8;border:1px solid #e5eeea;border-radius:10px;padding:18px}.label-title{font-weight:800;font-size:15px}.label-box p{font-size:11px}.outcomes{display:flex;flex-direction:column;gap:7px;margin:15px 0}.outcomes button{text-align:left;border:1px solid #e0e9e5;background:white;color:#64776e}.outcomes button.selected{color:#167760;border-color:#43a78c;background:#e5f6ef}.label-box label span{font-weight:400;color:#a0adaa}.label-box textarea{height:78px;resize:vertical}.label-box .primary{width:100%;margin-top:12px;display:flex;justify-content:space-between}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;min-width:620px}th{background:#f7f9fa;color:#8c99a2;font-size:11px;padding:12px}td{border-bottom:1px solid #edf1f2;padding:12px;color:#51606d;font-size:12px}.result{color:#167b65;background:#e7f6ef;border-radius:20px;padding:5px 9px}.result.fail{color:#b45851;background:#fcefeb}.empty{text-align:center;padding:30px;color:#a0abb3;font-size:12px}.records .help{margin-top:15px}footer{font-size:11px;color:#a1adb5;padding:12px 0}footer span{margin:0 8px}@media(max-width:1000px){main{padding:30px 24px}.review-layout{grid-template-columns:1fr}.outcomes{flex-direction:row}.outcomes button{flex:1}}@media(max-width:700px){.app{display:block}aside{width:auto;padding:14px;display:block}.brand{margin:0 0 15px}.side-label,.side-bottom{display:none}nav{display:flex}nav a{padding:9px;font-size:12px}main{width:100%;padding:25px 15px}.overview{gap:7px}.overview article{padding:14px 10px}.overview strong{font-size:18px}.camera-grid,.video-grid{grid-template-columns:1fr}.section-head,header{flex-wrap:wrap}.header-badge{display:none}.panel{padding:20px 16px}}
:focus-visible{outline:3px solid #88d5c2;outline-offset:2px}
.capture-check{margin-top:20px;border:1px solid #e1eae7;border-radius:10px;padding:18px;background:#f8fbfa}.capture-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.capture-head h3{margin:0;font-size:15px}.capture-head p,.capture-note{font-size:12px;margin:5px 0;color:#718278}.capture-status{border-radius:18px;padding:7px 11px;font-size:12px;white-space:nowrap}.capture-status.pending{background:#edf0f2;color:#66747f}.capture-status.good{background:#def4e8;color:#126640}.capture-status.bad{background:#fce6e4;color:#a33831}.capture-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:15px 0 10px}.capture-items label{line-height:1.5}.capture-items select{display:block;margin-top:7px;background:#fff}.capture-items select:disabled{background:#eff2f1;color:#8c9994;cursor:not-allowed}.capture-items select.check-yes{border-color:#3b9f68;color:#126640;background:#effaf3}.capture-items select.check-no{border-color:#d47a73;color:#a33831;background:#fff4f3}@media(max-width:1000px){.capture-items{grid-template-columns:1fr}}

.auto-intro{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0;color:#475a53;font-size:12px}.auto-intro span{color:#788794}.auto-camera{margin:0 13px 13px;padding:9px 11px;border-radius:7px;font-size:12px;font-weight:650}.auto-camera.pending{background:#edf0f2;color:#66747f}.auto-camera.good{background:#def4e8;color:#126640}.auto-camera.bad{background:#fce6e4;color:#a33831}

.view-check{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 13px 13px}.view-result{flex:1;min-width:150px;padding:8px 10px;border-radius:7px;font-size:12px;font-weight:650}.view-result.pending{background:#edf0f2;color:#66747f}.view-result.good{background:#def4e8;color:#126640}.view-result.warn{background:#fff1cf;color:#805b06}.view-check button{font-size:11px;padding:8px 10px}.view-check button:disabled{opacity:.55;cursor:not-allowed}

.intrusion-notice{margin:12px 0}.intrusion-hand,.intrusion-object{margin:0 13px 9px;padding:9px 11px;border-radius:7px;font-size:12px;font-weight:650}.intrusion-hand.pending,.intrusion-object.pending{background:#edf0f2;color:#66747f}.intrusion-hand.clear,.intrusion-object.clear{background:#eef4f1;color:#526960}.intrusion-hand.bad,.intrusion-object.bad{background:#fce6e4;color:#a33831;border:1px solid #e6aba6}.zone-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 13px 13px}.zone-actions button{font-size:11px;padding:8px 10px}.zone-actions button:disabled{opacity:.55}.zone-note{color:#718278;font-size:11px}.zone-overlay{position:absolute;inset:0;pointer-events:none;touch-action:none}.zone-overlay.selecting{pointer-events:auto;cursor:crosshair;background:#ffffff1a}.zone-rect{display:none;position:absolute;border:2px dashed #fff;background:#5bc1a433;box-shadow:0 0 0 1px #155742}.zone-rect.visible{display:block}
