@font-face{font-family:Pretendard;src:url(/fonts/PretendardVariable.woff2)format("woff2-variations"),url(/fonts/PretendardVariable.woff2)format("woff2");font-weight:45 920;font-style:normal;font-display:swap}:root{--navy-900:#14275e;--navy-800:#1a3b8b;--navy-700:#1d46a8;--blue-600:#2563eb;--blue-500:#3b82f6;--blue-100:#e8f1ff;--green-500:#22c55e;--green-600:#16a34a;--text-900:#1f2937;--text-600:#4b5563;--text-400:#9ca3af;--line:#e5e9f0;--bg-page:#eef2f7;--bg-card:#fff;--bg-thead:#f4f6fa;--danger:#dc2626;--slate-100:#e6ecf4;--slate-600:#475569;--violet-100:#f1ebfb;--violet-700:#6d3fc0;--warn-100:#fff8e8;--warn-200:#f0d9a8;--warn-700:#7a5200;--grade-a:#2563eb;--grade-b:#16a34a;--grade-c:#f59e0b;--grade-d:#e5484d;--grade-e:#991b1b;--risk-low:#15803d;--risk-mid:#b45309;--risk-high:#dc2626;--member-0:#0072b2;--member-1:#d55e00;--member-2:#009e73;--member-3:#cc79a7;--member-4:#7b4fbf;--member-5:#b8860b;--member-6:#1d8fa6;--member-7:#8c5a3c;--member-none:#6b7280;--radius:12px;--shadow:0 1px 3px #101e3f14, 0 4px 16px #101e3f0f;--row-pad-y:10px;--page-max:1440px;--page-gutter:clamp(14px, 2.4vw, 32px)}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0;padding:0}body{background:var(--bg-page);color:var(--text-900);font-family:Pretendard,Malgun Gothic,맑은 고딕,Apple SD Gothic Neo,sans-serif;font-size:14px;line-height:1.5}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px}a{color:var(--blue-600);text-decoration:none}.app-header{max-width:var(--page-max);padding:14px var(--page-gutter);background:var(--bg-page);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;margin:0 auto;display:flex}.brand{flex:none;width:auto;height:32px;display:block}.brand-link{border-radius:8px;flex:none;align-items:center;display:inline-flex}.brand-link:focus-visible{outline:2px solid var(--blue-600);outline-offset:3px}.header-right{color:var(--text-600);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px 14px;display:flex}.btn-text{color:var(--text-600);background:0 0;border:none;padding:4px 6px;font-size:13px}.btn-text:hover{color:var(--navy-800);text-decoration:underline}.page{max-width:var(--page-max);padding:0 var(--page-gutter) 48px;margin:0 auto}.page-head{text-align:center;margin:8px 0 18px}.page-head-row{text-align:left;flex-wrap:wrap;align-items:center;gap:10px 20px;display:flex}.page-head-row .page-head-text{flex:320px;min-width:0}.page-title{color:var(--text-900);margin:0 0 8px;font-size:26px;font-weight:800}.page-desc{color:var(--text-600);margin:0;font-size:13.5px}.page-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-bottom:12px;display:flex}.page-head-row .page-actions{flex:none;margin-bottom:0;margin-left:auto}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow)}.btn{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:600;transition:filter .12s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--navy-800);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(1.12)}.btn-accent{background:var(--blue-600);color:#fff}.btn-accent:hover:not(:disabled){filter:brightness(1.08)}.btn-outline{color:var(--text-600);border-color:var(--line);background:#fff}.btn-outline:hover:not(:disabled){border-color:var(--text-400)}.btn-block{width:100%}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{text-align:center;width:400px;padding:40px 36px 32px}.login-logo{width:232px;max-width:100%;margin:0 auto 12px;display:block}.login-sub{color:var(--text-600);margin:0 0 26px;font-size:13px}.login-form{text-align:left;flex-direction:column;gap:12px;display:flex}.field label,.field .field-title{color:var(--text-900);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field .required{color:var(--danger);margin-left:2px}.field .optional{color:var(--text-400);margin-left:4px;font-size:12px;font-weight:400}.input,.select,.textarea{border:1px solid var(--line);width:100%;color:var(--text-900);background:#fff;border-radius:8px;padding:10px 12px}.input::placeholder,.textarea::placeholder{color:var(--text-400)}.input:focus,.select:focus,.textarea:focus{border-color:var(--blue-500);outline:none;box-shadow:0 0 0 3px #3b82f626}.login-remember{color:var(--text-600);cursor:pointer;-webkit-user-select:none;user-select:none;align-self:flex-start;align-items:center;gap:8px;font-size:13px;display:flex}.login-remember input{width:16px;height:16px;accent-color:var(--blue-500);margin:0}.login-links{justify-content:flex-end;gap:14px;margin-top:4px;display:flex}.login-links a{color:var(--text-600);font-size:13px}.divider{color:var(--text-400);align-items:center;gap:10px;margin:18px 0 12px;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.btn-google{border-color:var(--line);color:var(--text-900);background:#fff;font-weight:600}.error-msg{color:var(--danger);margin:2px 0 0;font-size:13px}.hint-msg{color:var(--text-400);margin:4px 0 0;font-size:12px}.summary-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:16px 20px;display:flex}.summary-counts{flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:14.5px;font-weight:700;display:flex}.summary-counts>span{white-space:nowrap}.summary-counts .sep{color:var(--line);font-weight:400}.summary-counts .num{color:var(--blue-600);margin-left:4px}.table-wrap{max-width:100%;overflow-x:auto}.projects-table th,.projects-table td,.sv-table th,.sv-table td,.defect-table th,.defect-table td{text-align:center}.cell-clip{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:100%;display:inline-block;overflow:hidden}.projects-table{border-collapse:collapse;width:100%;min-width:860px}.projects-table th{background:var(--bg-thead);color:var(--text-900);padding:var(--row-pad-y) 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;font-size:13px;font-weight:700}.projects-table.with-company{min-width:980px}.projects-table th .sort-btn{font:inherit;color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.projects-table th .sort-btn:hover{color:var(--blue-600)}.projects-table th .sort-btn:focus-visible{outline:2px solid var(--blue-600);outline-offset:2px;border-radius:3px}.projects-table th .sort-mark{color:var(--text-400);font-size:10px;line-height:1}.projects-table th .sort-btn.active,.projects-table th .sort-btn.active .sort-mark{color:var(--blue-600)}.projects-table td{padding:var(--row-pad-y) 10px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:13.5px}.projects-table tr.empty-row td{height:38px;color:var(--text-400)}.cell-name{min-width:200px}.cell-name .name{color:var(--text-900);font-weight:700}.cell-name .region{color:var(--text-400);margin-top:2px;font-size:12px;line-height:1.35}.cell-facility .facility-icon{margin-bottom:2px;font-size:20px;line-height:1;display:block}.cell-period{min-width:180px}.progress-row{align-items:center;gap:8px;margin-top:4px;display:flex}.progress-track{background:#e7ebf2;border-radius:3px;flex:1;height:6px;overflow:hidden}.progress-fill{background:var(--blue-500);border-radius:3px;height:100%}.progress-fill.green{background:var(--green-500)}.progress-label{color:var(--text-600);text-align:right;min-width:34px;font-size:12px;line-height:1.3}.badge{white-space:nowrap;border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:600;display:inline-block}.badge-ongoing{background:var(--blue-100);color:var(--blue-600)}.badge-done{color:var(--green-600);background:#e7f6ec}.btn-icon{border:1px solid var(--line);width:36px;height:36px;color:var(--navy-800);background:#fff;border-radius:8px;justify-content:center;align-items:center;font-size:16px;display:inline-flex}.btn-icon:hover:not(:disabled){border-color:var(--blue-500)}.table-footer{justify-content:center;align-items:center;padding:16px 20px;display:flex;position:relative}.pagination{align-items:center;gap:6px;display:flex}.page-btn{min-width:32px;height:32px;color:var(--text-600);background:0 0;border:none;border-radius:50%;font-size:13px}.page-btn:hover:not(:disabled){background:var(--blue-100)}.page-btn.active{background:var(--navy-800);color:#fff;font-weight:700}.page-btn:disabled{color:var(--text-400);cursor:default}.size-select{position:absolute;right:20px}.status-msg{text-align:center;color:var(--text-600);padding:40px 20px}.status-msg .btn-text{color:var(--navy-800);margin-left:8px;font-weight:600;text-decoration:underline}.wizard-card{padding:28px 32px 24px}.wizard-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px;display:flex}.wizard-title h2{margin:0 0 6px;font-size:22px;font-weight:800}.wizard-title p{color:var(--text-600);max-width:420px;margin:0;font-size:13px}.stepper{align-items:flex-start;display:flex}.step{flex-direction:column;align-items:center;width:76px;display:flex}.step-circle{border:2px solid var(--line);width:40px;height:40px;color:var(--text-400);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:17px;display:flex}.step.active .step-circle{border-color:var(--blue-600);color:var(--blue-600)}.step.done .step-circle{border-color:var(--blue-600);background:var(--blue-600);color:#fff}.step-label{color:var(--text-400);white-space:nowrap;margin-top:7px;font-size:12.5px}.step.active .step-label,.step.done .step-label{color:var(--blue-600);font-weight:700}.step-line{background-image:linear-gradient(to right, var(--line) 55%, transparent 45%);background-size:8px 2px;flex:0 0 24px;height:2px;margin-top:19px}.form-grid{grid-template-columns:1fr 1fr;gap:18px 28px;display:grid}.form-grid .full{grid-column:1/-1}.date-range{align-items:center;gap:8px;display:flex}.date-range .input{flex:1}.upload-box{border-radius:var(--radius);cursor:pointer;background:#f4f8ff;border:1px dashed #bcd0f0;align-items:center;gap:18px;padding:22px 24px;transition:border-color .12s,background-color .12s;display:flex}.upload-box:hover{border-color:var(--blue-500)}.upload-box.is-dragover{border-color:var(--blue-600);background:var(--blue-100);box-shadow:inset 0 0 0 1px var(--blue-600);cursor:copy}@media (prefers-reduced-motion:reduce){.upload-box{transition:none}}.upload-icon{color:var(--blue-500);font-size:30px}.upload-text .t1{color:var(--blue-600);font-weight:700}.upload-text .t1 .optional{color:var(--text-400);margin-left:4px;font-size:12px;font-weight:400}.upload-text .t2{color:var(--text-600);margin-top:3px;font-size:13px}.upload-text .t3{color:var(--text-400);margin-top:2px;font-size:12px}.upload-files{color:var(--text-600);margin:8px 0 0;padding:0;font-size:13px;list-style:none}.upload-files li{align-items:center;gap:8px;padding:3px 0;display:flex}.upload-files .remove{color:var(--text-400);background:0 0;border:none;padding:0 4px;font-size:14px}.upload-files .remove:hover{color:var(--danger)}.wizard-footer{justify-content:center;align-items:center;gap:12px;margin-top:26px;display:flex;position:relative}.wizard-tip{color:var(--text-400);font-size:12.5px;position:absolute;right:0}.placeholder-step{text-align:center;color:var(--text-600);padding:60px 20px}.placeholder-step .big{margin-bottom:12px;font-size:40px}.placeholder-step h3{margin:0 0 8px;font-size:18px}.placeholder-step p{color:var(--text-400);margin:0;font-size:13.5px}.done-step{text-align:center;padding:56px 20px 40px}.done-step .check{background:var(--blue-100);width:72px;height:72px;color:var(--blue-600);border-radius:50%;justify-content:center;align-items:center;margin-bottom:18px;font-size:36px;display:inline-flex}.done-step h3{margin:0 0 8px;font-size:20px}.done-step p{color:var(--text-600);margin:0 0 26px}@media (width<=720px){.form-grid{grid-template-columns:1fr}.wizard-tip{margin-top:8px;position:static}}a.btn-google{color:var(--text-900)}a.btn-arconis{color:#fff;text-decoration:none}.oidc-title{color:var(--text-900);margin:4px 0 10px;font-size:17px}.oidc-org-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.oidc-org{border-color:var(--line);color:var(--text-900);background:#fff;justify-content:space-between;align-items:center;display:flex}.oidc-org-name{font-weight:600}.oidc-org-role{color:var(--text-600);font-size:12px}.google-mark{border:1px solid var(--line);color:#4285f4;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-weight:800;display:inline-flex}.cell-name a.name{color:var(--text-900);font-weight:700;display:block}.cell-name a.name:hover{color:var(--blue-600);text-decoration:underline}.drawing-step{flex-direction:column;gap:14px;display:flex}.upload-progress{border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px}.upload-progress-head{margin-bottom:4px;font-size:13px;font-weight:700}.upload-state{color:var(--text-400);margin-left:auto;font-size:12px}.upload-state.uploading{color:var(--blue-600)}.upload-state.done{color:var(--green-600)}.upload-state.error{color:var(--danger)}.upload-state.queued,.upload-state.running{color:var(--blue-600);font-weight:600}.upload-files li.upload-file{border-bottom:1px solid var(--line);padding:6px 0;display:block}.upload-files li.upload-file:last-child{border-bottom:none}.upload-file-row{align-items:center;gap:8px;display:flex}.upload-file-name{overflow-wrap:anywhere;min-width:0}.upload-job{align-items:center;gap:10px;margin-top:5px;display:flex}.upload-job-bar{background:var(--blue-100);border-radius:3px;flex:1;height:6px;position:relative;overflow:hidden}.upload-job-bar>span{background:var(--blue-500);border-radius:3px;transition:width .6s;position:absolute;inset:0 auto 0 0}.upload-job-bar.is-indeterminate>span{width:30%;animation:1.4s ease-in-out infinite upload-job-slide}@keyframes upload-job-slide{0%{left:-30%}to{left:100%}}@media (prefers-reduced-motion:reduce){.upload-job-bar.is-indeterminate>span{opacity:.4;width:100%;animation:none;left:0}}.upload-titleblock{border:1px solid var(--blue-500);border-radius:var(--radius);background:var(--blue-100);padding:12px 16px}.upload-titleblock-head{font-size:14px;font-weight:700}.upload-titleblock-desc{color:var(--text-600);margin:4px 0 8px;font-size:13px}.upload-titleblock-input{box-sizing:border-box;border:1px solid var(--line);border-radius:6px;width:100%;padding:7px 10px;font-size:13px}.upload-titleblock-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.upload-job-eta{color:var(--text-600);flex-shrink:0;font-size:12px}.drawing-list-title{margin:6px 0 0;font-size:15px}.drawing-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.drawing-item{border:1px solid var(--line);border-radius:10px;align-items:center;gap:12px;padding:8px 12px;display:flex}.drawing-thumb{object-fit:cover;background:var(--bg-thead);border:1px solid var(--line);border-radius:6px;width:56px;height:42px}.drawing-meta{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.drawing-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.badge-none{background:var(--bg-thead);color:var(--text-600)}.survey-step{flex-direction:column;gap:12px;display:flex}.survey-head h3{margin:0 0 4px;font-size:16px}.survey-head .btn-sm{margin-top:8px;padding:6px 12px;font-size:13px}.survey-head-actions{flex-wrap:wrap;gap:6px;display:flex}.survey-precheck{margin:8px 0 0}.survey-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.survey-option{border:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:14px;display:flex}.survey-option:hover{border-color:var(--blue-500)}.survey-option.on{border-color:var(--blue-600);background:var(--blue-100);color:var(--navy-800);font-weight:600}.survey-option input{accent-color:var(--blue-600)}.survey-count{color:var(--text-600);margin:0;font-size:13px;font-weight:600}.detail-card{margin-bottom:16px;padding:22px 26px}.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 16px;margin-bottom:14px;display:flex}.detail-head-title{overflow-wrap:anywhere;min-width:0}.detail-name{margin:0;font-size:20px;font-weight:800}.detail-region{color:var(--text-400);margin:4px 0 0;font-size:13px}.detail-grid{grid-template-columns:1fr 1fr;gap:12px 28px;margin:0;display:grid}.detail-grid dt{color:var(--text-400);margin-bottom:2px;font-size:12.5px}.detail-grid dd{margin:0;font-size:14px;font-weight:600}.detail-grid .detail-full{grid-column:1/-1}.detail-section-title{margin:0 0 14px;font-size:16px}.drawing-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.drawing-card{border:1px solid var(--line);background:#fff;border-radius:10px;flex-direction:column;align-items:center;gap:8px;width:100%;padding:12px;font-family:inherit;display:flex}.drawing-card:hover{border-color:var(--blue-500)}.drawing-card.selected{border-color:var(--blue-600);box-shadow:0 0 0 3px #3b82f626}.drawing-card-thumb{object-fit:cover;background:var(--bg-thead);border:1px solid var(--line);border-radius:6px;width:100%;height:90px}.drawing-card-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:600;overflow:hidden}.drawing-preview{border:1px solid var(--line);background:var(--bg-thead);cursor:zoom-in;border-radius:10px;justify-content:center;align-items:center;width:100%;height:440px;padding:8px;font-family:inherit;display:flex;position:relative}.drawing-preview:hover{border-color:var(--blue-500)}.drawing-pop{z-index:20;border:1px solid var(--line);background:var(--bg-card);border-radius:12px;width:520px;max-width:calc(100vw - 32px);padding:10px 12px 12px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 40px #101e3f40}.drawing-pop-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.drawing-pop-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.drawing-pop .drawing-preview{height:300px}.drawing-preview-msg{cursor:default;color:var(--text-600);gap:12px;font-size:14px}.drawing-preview-msg:hover{border-color:var(--line)}.drawing-preview img{object-fit:contain;background:#fff;max-width:100%;max-height:100%}.drawing-preview-hint{color:#fff;background:#101e3fb3;border-radius:999px;padding:4px 10px;font-size:12px;position:absolute;bottom:12px;right:12px}.drawing-viewer{z-index:120;color:#fff;background:#0f172a;outline:none;flex-direction:column;display:flex;position:fixed;inset:0}.dv-bar{border-bottom:1px solid #ffffff1f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:10px 16px;display:flex}.dv-title{overflow-wrap:anywhere;align-items:baseline;gap:10px;min-width:0;display:flex}.dv-count{color:#ffffffa6;font-size:13px}.dv-tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.dv-btn{color:#fff;background:0 0;border:1px solid #ffffff40;border-radius:8px;min-width:34px;height:32px;padding:0 10px;font-family:inherit;font-size:13px}.dv-btn:hover:not(:disabled){background:#ffffff1f}.dv-btn:disabled{opacity:.35}.dv-zoom{text-align:center;font-variant-numeric:tabular-nums;min-width:52px;font-size:13px}.dv-sep{background:#fff3;width:1px;height:20px;margin:0 4px}.dv-stage{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:1;min-height:0;position:relative;overflow:hidden}.dv-stage.dragging{cursor:grabbing}.dv-img{transform-origin:0 0;background:#fff;max-width:none;position:absolute;top:0;left:0}.dv-msg{color:#fffc;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.dv-help{color:#fff9;text-align:center;border-top:1px solid #ffffff1f;padding:8px 16px;font-size:12px}.pv-bar{color:var(--text-600);flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px;font-size:12px;display:flex}.pv-bar.dark{color:#ffffffbf;border-bottom:1px solid #ffffff1f;margin:0;padding:8px 16px}.pv-seg{border:1px solid var(--navy-800);border-radius:8px;display:inline-flex;overflow:hidden}.pv-seg-btn{background:var(--bg-card);color:var(--navy-800);cursor:pointer;border:0;padding:4px 12px;font-family:inherit;font-size:12px;font-weight:600}.pv-seg-btn+.pv-seg-btn{border-left:1px solid var(--navy-800)}.pv-seg-btn.on{background:var(--navy-800);color:#fff}.pv-bar.dark .pv-seg{border-color:#fff6}.pv-bar.dark .pv-seg-btn{color:#fff;background:0 0}.pv-bar.dark .pv-seg-btn+.pv-seg-btn{border-left-color:#fff6}.pv-bar.dark .pv-seg-btn.on{color:#0f172a;background:#fff}.pv-time{font-variant-numeric:tabular-nums}.pv-dmg-btn{color:#0b7f8c;cursor:pointer;background:0 0;border:1px solid #0e9fb0;border-radius:999px;padding:4px 10px;font-family:inherit;font-size:12px;font-weight:600}.pv-dmg-btn.on{color:#fff;background:#0e9fb0}.pv-bar.dark .pv-dmg-btn{color:#5fd6e3;border-color:#5fd6e3}.pv-bar.dark .pv-dmg-btn.on{color:#fff;background:#0e9fb0;border-color:#0e9fb0}.pv-note{color:var(--text-600)}.pv-bar.dark .pv-note{color:#ffffffbf}.pv-note.warn{color:var(--danger)}.pv-bar.dark .pv-note.warn{color:#fca5a5}.pv-link{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.dmg-overlay{pointer-events:none;position:absolute}.dmg-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.dmg-badge{color:#fff;text-align:center;border-radius:9px;min-width:18px;height:18px;padding:0 4px;font-size:11px;font-weight:700;line-height:18px;position:absolute;transform:translate(-60%,-60%);box-shadow:0 0 0 1.5px #fff}.dmg-badge.hot{z-index:1;border-radius:12px;min-width:24px;height:24px;font-size:13px;line-height:24px;box-shadow:0 0 0 2px #fff,0 2px 8px #00000059}.dmg-badge.guess{box-shadow:0 0 0 1.5px #fff,0 0 0 3.5px #f28c28}.dmg-badge.guess.hot{box-shadow:0 0 0 2px #fff,0 0 0 4.5px #f28c28,0 2px 8px #00000059}.dmg-pos{background:#fff;border:2px solid;border-radius:50%;width:8px;height:8px;position:absolute;transform:translate(-50%,-50%)}.dmg-pos.hot{width:12px;height:12px}.dmg-list-wrap{flex-direction:column;min-height:0;font-size:12px;display:flex}.dmg-list-wrap.in-pop{margin-top:8px}.dmg-list-head{color:var(--text-600);justify-content:space-between;align-items:baseline;gap:8px;padding:0 2px 6px;display:flex}.dmg-list-head strong{color:var(--navy-900);font-size:13px}.dmg-list{border:1px solid var(--line);border-radius:8px;margin:0;padding:0;list-style:none;overflow-y:auto}.dmg-list-wrap.in-pop .dmg-list{max-height:190px}.dmg-list li+li{border-top:1px solid var(--line)}.dmg-row{background:var(--bg-card);width:100%;color:var(--text-900);text-align:left;cursor:pointer;border:0;align-items:center;gap:8px;padding:6px 8px;font-family:inherit;font-size:12px;display:flex}.dmg-row:hover,.dmg-row.hot{background:#e7f7f9}.dmg-row[aria-pressed=true]{box-shadow:inset 3px 0 #0e9fb0}.dmg-row-no{color:#fff;text-align:center;border-radius:11px;flex:none;min-width:22px;height:22px;padding:0 4px;font-size:11px;font-weight:700;line-height:22px}.dmg-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.dmg-row-name{overflow-wrap:anywhere;font-weight:600}.dmg-row-sub{color:var(--text-600);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.dmg-row-state{background:var(--bg-card);overflow-wrap:anywhere;border:1px solid;border-radius:999px;flex:none;max-width:45%;padding:1px 8px;font-size:11px;font-weight:700}.dmg-row-note{font-weight:400}.dmg-row-mark{border:1px solid var(--navy-800);min-width:18px;color:var(--navy-800);text-align:center;vertical-align:1px;border-radius:4px;margin-right:5px;padding:0 4px;font-size:10.5px;font-weight:700;line-height:15px;display:inline-block}.dmg-chip{vertical-align:1px;white-space:nowrap;cursor:help;border:1px solid;border-radius:999px;margin-left:4px;padding:0 6px;font-size:10.5px;font-weight:600;line-height:16px;display:inline-block}.dmg-chip.danger{color:#fff;background:#d92d20;border-color:#d92d20}.dmg-chip.warn{color:#a85300;background:#fff3e6;border-color:#f28c28}.pv-dmg-check{color:#c25e00}.pv-dmg-btn.on .pv-dmg-check,.pv-bar.dark .pv-dmg-check{color:#ffb066}.rn-box{border:1px solid var(--warn-200);background:var(--warn-100);color:var(--text-900);border-radius:8px;padding:8px 10px;font-size:12px}.rn-box.in-pop{margin-top:8px}.dv-side .rn-box{flex:none;max-height:45%;margin-bottom:8px;overflow-y:auto}.rn-box.danger{background:#fef3f2;border-color:#f0a8a2}.rn-head{color:var(--warn-700);justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;font-size:12px;font-weight:700;display:flex}.rn-box.danger .rn-head{color:#b42318}.rn-ref-wrap{flex:none;align-items:center;gap:8px;display:inline-flex}.rn-ref-active{color:#b0125f;background:#fde7f0;border-radius:10px;align-items:center;gap:2px;padding:1px 2px 1px 8px;font-size:11px;font-weight:600;display:inline-flex}.rn-ref-active button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:13px;line-height:1}.rn-ref{color:#1d4ed8;font:inherit;cursor:pointer;background:#fff;border:1px solid #2563eb;border-radius:6px;padding:2px 10px;font-size:12px;font-weight:700;line-height:18px}.rn-ref:hover{background:#eff6ff}.rn-ref[aria-expanded=true]{color:#fff;background:#2563eb}.rn-pop{z-index:40;border:1px solid var(--line);background:var(--bg-card);max-height:50vh;color:var(--text-900);text-align:left;border-radius:8px;font-size:12px;font-weight:400;position:fixed;overflow-y:auto;box-shadow:0 6px 18px #10182838}.rn-pop-list{margin:0;padding:0;list-style:none}.rn-pop-list>li+li{border-top:1px solid var(--line)}.rn-pop-item{width:100%;color:inherit;font:inherit;text-align:left;background:0 0;border:0;flex-direction:column;gap:2px;padding:8px 10px;display:flex}button.rn-pop-item{cursor:pointer}button.rn-pop-item:hover{background:#e7f7f9}.rn-pop-title{align-items:baseline;gap:4px;font-weight:700;display:flex}.rn-pop-count{color:#0e7f8d}.rn-pop-go{color:#0e7f8d;margin-left:auto;font-size:11px;font-weight:600}.rn-pop-detail{color:var(--text-600);line-height:1.4}.rn-quiet{text-align:right;flex:none;margin-bottom:4px}.rn-lead{color:var(--text-900);margin:2px 0 6px;font-size:14px;font-weight:600;line-height:1.5}.rn-box.empty{padding:12px 14px}.rn-list{margin:0;padding:0;list-style:none}.rn-list li{gap:6px;padding:2px 0;line-height:1.45;display:flex}.rn-line{flex-wrap:wrap;align-items:center}.rn-line .dmg-chip{cursor:help;margin-left:0}.rn-no{min-width:20px;height:20px;font:inherit;cursor:pointer;background:#fff;border:1px solid;border-radius:10px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px}.rn-no.danger{color:#b42318;border-color:#d92d20}.rn-no.warn{color:#a85300;border-color:#f28c28}.rn-no:hover{background:var(--bg-thead)}.rn-detail{color:var(--text-600);font-size:11px}.dv-body{flex:1;min-height:0;display:flex}.dv-side{background:var(--bg-card);width:320px;min-height:0;color:var(--text-900);border-left:1px solid #ffffff1f;flex-direction:column;padding:10px;display:flex}.dv-side .dmg-list-wrap{flex:1}@media (width<=760px){.dv-body{flex-direction:column}.dv-side{border-top:1px solid #ffffff1f;border-left:0;width:auto;max-height:40vh}}.drawing-card{position:relative}.reflect-chip{color:#fff;pointer-events:none;background:#0e9fb0;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:80px;left:18px}.cad-survey-sheet-btn{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:space-between;gap:12px;padding:3px 4px;display:flex}.cad-survey-sheet-btn:hover,.cad-survey-sheet-btn:focus-visible{background:var(--blue-100)}.defect-table{border-collapse:collapse;width:100%;min-width:940px}.defect-table th{background:var(--bg-thead);padding:var(--row-pad-y) 8px;border:1px solid var(--line);white-space:nowrap;font-size:13px;font-weight:700}.defect-table td{padding:var(--row-pad-y) 8px;border:1px solid var(--line);vertical-align:middle;font-size:13px}.defect-label{color:var(--blue-600);white-space:nowrap;font-weight:700}.defect-label-no{display:block}.defect-id{color:var(--text-400);cursor:help;margin-top:2px;font-size:11.5px;font-weight:600;display:block}.defect-author{white-space:nowrap}.member-tag{color:var(--member-color,var(--member-none));align-items:center;gap:5px;font-size:12.5px;font-weight:600;display:inline-flex}.member-dot{background:var(--member-color,var(--member-none));border-radius:50%;flex:none;width:10px;height:10px}.member-initial{border:1px solid var(--member-color,var(--member-none));background:var(--bg-card);min-width:20px;height:18px;color:var(--text-900);border-radius:6px;justify-content:center;align-items:center;padding:0 4px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.member-name{color:var(--text-900);font-weight:600}.member-tag-compact .member-name{text-overflow:ellipsis;white-space:nowrap;max-width:96px;overflow:hidden}.member-tag-none .member-name{color:var(--text-400)}.member-legend{flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0;padding:0;font-size:12.5px;list-style:none;display:flex}.member-legend-item{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.member-count{color:var(--text-600);font-weight:600}.team-notice{background:var(--blue-100);color:var(--navy-900);border:1px solid #c3d9fb;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin:0 0 10px;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.grade-badge{white-space:nowrap;color:var(--grade-color,var(--text-600));border:1px solid var(--grade-tint-line,var(--line));background:var(--grade-tint,var(--bg-thead));border-radius:8px;padding:3px 10px;font-size:12.5px;font-weight:700;display:inline-block}.grade-badge.grade-a,.grade-legend-item.grade-a{--grade-color:var(--grade-a);--grade-tint:#e8f1ff;--grade-tint-line:#c3d9fb}.grade-badge.grade-b,.grade-legend-item.grade-b{--grade-color:var(--grade-b);--grade-tint:#e7f6ec;--grade-tint-line:#bce3c9}.grade-badge.grade-c,.grade-legend-item.grade-c{--grade-color:var(--grade-c);--grade-tint:#fdf1da;--grade-tint-line:#f3d69a}.grade-badge.grade-d,.grade-legend-item.grade-d{--grade-color:var(--grade-d);--grade-tint:#fdeaea;--grade-tint-line:#f4bfc1}.grade-badge.grade-e,.grade-legend-item.grade-e{--grade-color:var(--grade-e);--grade-tint:#f6e4e4;--grade-tint-line:#ddb4b4}.defect-photos{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.defect-photos img{object-fit:cover;border:1px solid var(--line);border-radius:4px;width:64px;height:48px}.defect-memo{word-break:keep-all;max-width:160px}.detail-subsection-title{margin:18px 0 10px;font-size:14.5px;font-weight:700}.test-location{word-break:keep-all;max-width:160px}.grade-badge.test-good{--grade-color:var(--grade-b);--grade-tint:#e7f6ec;--grade-tint-line:#bce3c9}.grade-badge.test-bad{--grade-color:var(--grade-d);--grade-tint:#fdeaea;--grade-tint-line:#f4bfc1}.input-sm,.select-sm{max-width:120px;padding:4px 8px;font-size:13px}.defect-actions{white-space:nowrap}.defect-actions .btn-text{padding:2px 6px}.defect-voice{white-space:nowrap}.voice-btn{border:1px solid var(--line);background:var(--navy-700);color:#fff;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:11px;line-height:1;display:inline-flex}.voice-btn:hover{background:var(--navy-800)}.voice-btn.playing{background:var(--grade-d);border-color:var(--grade-d)}.defect-footer{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-top:12px;padding:10px 14px;font-size:13.5px;font-weight:700;display:flex}.grade-legend{color:var(--text-600);flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0;padding:0;font-size:12.5px;font-weight:600;list-style:none;display:flex}.grade-legend-item{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.grade-dot{background:var(--grade-color,var(--text-400));border-radius:50%;flex:none;width:10px;height:10px}@media (width<=720px){.detail-grid{grid-template-columns:1fr}}.modal-overlay{z-index:100;background:#101e3f73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border-radius:var(--radius);flex-direction:column;max-height:calc(100vh - 48px);display:flex;overflow:hidden;box-shadow:0 12px 48px #101e3f47}.modal-head{justify-content:space-between;align-items:center;padding:20px 24px 12px;display:flex}.modal-title{color:var(--text-900);margin:0;font-size:20px;font-weight:800}.modal-close{width:32px;height:32px;color:var(--text-600);background:0 0;border:0;border-radius:8px;font-size:16px;line-height:1}.modal-close:hover{background:var(--bg-thead);color:var(--text-900)}.modal-body{flex:1;min-height:0;padding:4px 24px 16px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);color:var(--text-600);background:#fafbfd;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;font-size:12px;display:flex}.dl-modal{width:min(1000px,100%)}.dl-section-title{color:var(--text-900);margin:12px 0 10px;font-size:14px;font-weight:700}.dl-section-gap{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.dl-presets{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.dl-preset{border:1px solid var(--line);background:var(--bg-card);min-height:116px;color:var(--text-600);text-align:center;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px 8px 12px;font-size:12px;font-weight:600;line-height:1.35;display:flex;position:relative}.dl-preset:hover{border-color:var(--blue-500)}.dl-preset.on{border-color:var(--blue-600);color:var(--blue-600);box-shadow:0 0 0 1px var(--blue-600) inset;background:#f2f7ff}.dl-preset-check{background:var(--blue-600);color:#fff;border-radius:5px;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;line-height:1;display:flex;position:absolute;top:8px;right:8px}.dl-preset-icon{height:30px;color:var(--text-400);justify-content:center;align-items:center;display:flex}.dl-preset.on .dl-preset-icon{color:var(--blue-600)}.dl-preset-label{flex-direction:column;gap:2px;display:flex}.dl-info{color:var(--blue-600);background:#eef4ff;border-radius:8px;align-items:center;gap:8px;margin:12px 0 0;padding:10px 14px;font-size:12px;font-weight:500;display:flex}.dl-columns{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;margin-top:8px;display:grid}.dl-includes{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:8px 16px;padding-bottom:4px;display:grid}.dl-include-col{flex-direction:column;gap:10px;display:flex}.dl-check{color:var(--text-600);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.dl-check.on{color:var(--text-900);font-weight:500}.dl-check input{width:16px;height:16px;accent-color:var(--blue-600);cursor:pointer}.dl-check-icon{color:var(--text-400);flex:none;align-items:center;display:flex}.dl-check.on .dl-check-icon{color:var(--text-600)}.dl-check-end{justify-content:flex-start}.dl-check-end .dl-check-label{flex:1}.dl-options{flex-direction:column;gap:10px;display:flex}.dl-opt{grid-template-columns:76px minmax(0,1fr);align-items:center;gap:12px;display:grid}.dl-opt-label{color:var(--text-600);font-size:13px}.dl-radios{gap:22px;display:flex}.dl-radio{color:var(--text-600);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.dl-radio input{width:16px;height:16px;accent-color:var(--blue-600);cursor:pointer}.dl-right{flex-direction:column;display:flex}.dl-preview{border:1px solid var(--line);background:#fbfcfe;border-radius:10px;flex:1;padding:12px}.dl-preview-sheet{border:1px solid var(--line);background:#fff;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:8px;padding:8px;display:grid}.dl-sheet-map{height:96px;color:var(--text-400);background:repeating-linear-gradient(45deg,#f7f9fc,#f7f9fc 6px,#eef2f8 6px 12px);border:1px dashed #c9d4e6;border-radius:4px;justify-content:center;align-items:center;font-size:11px;display:flex}.dl-sheet-table{border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:4px;height:96px;padding:6px;display:flex}.dl-sheet-table span{background:#e6ecf6;border-radius:2px;height:6px}.dl-sheet-table span:first-child{background:#cfdcf1}.dl-sheet-photos{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.dl-sheet-photos span{background:#dde5f1;border-radius:4px;height:42px}.dl-sheet-memo{border:1px solid var(--line);background:#f4f6fa;border-radius:4px;height:42px}.dl-preview-sheet .off{opacity:.18;filter:grayscale()}.dl-preview-stats{grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.dl-preview-stats li{border:1px solid var(--line);background:#fff;border-radius:6px;flex-direction:column;gap:2px;padding:6px 8px;font-size:12px;display:flex}.dl-preview-stats b{color:var(--text-400);font-size:11px;font-weight:600}.dl-preview-stats span{color:var(--navy-800);font-weight:700}.dl-preview-drawings{max-height:96px;margin:10px 0 0;padding:0;font-size:12px;list-style:none;overflow-y:auto}.dl-preview-drawings li{border-bottom:1px solid var(--line);color:var(--text-600);justify-content:space-between;align-items:center;gap:8px;padding:4px 2px;display:flex}.dl-preview-drawings li:last-child{border-bottom:0}.dl-preview-drawings .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dl-preview-drawings .ct{color:var(--text-400);flex:none}.dl-error{margin:10px 0 0}.dl-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.dl-actions .btn{justify-content:center;min-width:116px}.dl-tip{align-items:center;gap:6px;display:flex}.dl-count{color:var(--text-400);flex:none}.spinner{vertical-align:-2px;border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:13px;height:13px;margin-right:6px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.cad-survey{border:1px solid var(--line);background:var(--bg-thead);border-radius:8px;margin-bottom:14px;padding:10px 12px}.cad-survey-title{color:var(--navy-800);margin:0 0 6px;font-size:13px}.cad-survey-list,.cad-survey-sheets{margin:0;padding:0;list-style:none}.cad-survey-item+.cad-survey-item{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.cad-survey-row,.cad-survey-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;display:flex}.cad-survey-name{color:var(--text-900);overflow-wrap:anywhere;min-width:0;font-size:14px;font-weight:600}.cad-survey-count{color:var(--text-600);margin-left:6px;font-size:12px;font-weight:400}.cad-survey-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cad-survey-panel{background:var(--bg-card);color:var(--text-600);border-radius:6px;margin-top:8px;padding:8px 10px;font-size:13px}.cad-survey-summary{color:var(--navy-900);font-weight:600}.cad-survey-notice{color:var(--green-600);margin:6px 0 0;font-size:13px}.cad-survey-sheets{max-height:220px;margin-top:6px;overflow-y:auto}.cad-survey-sheets li{border-bottom:1px dashed var(--line);justify-content:space-between;gap:12px;padding:3px 0;display:flex}.cad-survey-sheet-name{overflow-wrap:anywhere;min-width:0}.cad-survey-note{color:var(--text-400);font-style:normal}.drawing-select-bar{color:var(--text-600);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin-bottom:12px;font-size:13px;display:flex}.drawing-select-bar .btn-text{padding:0}.drawing-grid li{position:relative}.drawing-pick{z-index:1;width:18px;height:18px;accent-color:var(--blue-600);cursor:pointer;position:absolute;top:8px;left:8px}.drawing-del{z-index:2;cursor:pointer;background:#fffffff0;border-radius:999px;width:28px;height:28px;font-size:14px;position:absolute;bottom:8px;right:8px}.drawing-del:disabled{cursor:not-allowed;opacity:.45}.drawing-del:hover:not(:disabled){border-color:var(--danger);background:#fef2f2}.drawing-del-cell{background:#fef2f2;border-radius:10px;grid-column:1/-1;padding:12px}.detail-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}@media (width<=900px){.dl-presets{grid-template-columns:repeat(2,1fr)}.dl-columns{grid-template-columns:minmax(0,1fr)}}.btn-sm{padding:6px 12px;font-size:13px}.cad-chip{border:1px solid var(--blue-500);background:var(--blue-100);color:var(--navy-700);letter-spacing:.02em;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-block}.cad-dl{z-index:2;position:absolute;top:8px;right:8px}.cad-dl-btn{border:1px solid var(--line);color:var(--navy-700);cursor:pointer;background:#fffffff0;border-radius:999px;padding:3px 8px;font-family:inherit;font-size:11px;font-weight:700}.cad-dl-btn:hover,.cad-dl-btn.on{border-color:var(--blue-600);background:var(--blue-100)}.cad-pop{z-index:5;border:1px solid var(--line);background:var(--bg-card);width:290px;max-width:calc(100vw - 32px);box-shadow:var(--shadow);text-align:left;border-radius:10px;padding:12px;position:absolute;top:calc(100% + 6px);right:0}.cad-pop-head{color:var(--text-900);margin-bottom:10px;font-size:13px;font-weight:700}.cad-row{align-items:center;gap:8px;margin-bottom:10px;font-size:12px;display:flex}.cad-row-block{flex-direction:column;align-items:flex-start;gap:6px}.cad-row-label{color:var(--text-600);flex:0 0 58px;font-weight:600}.cad-row .select{flex:1;min-width:0;padding:6px 8px;font-size:12px}.cad-format{color:var(--navy-700);align-items:baseline;gap:6px;font-weight:700;display:inline-flex}.cad-format em{color:var(--text-400);font-size:11px;font-style:normal;font-weight:400}.cad-modes{flex-direction:column;gap:6px;width:100%;display:flex}.cad-mode{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:6px;padding:6px 8px;display:flex}.cad-mode.on{border-color:var(--blue-600);background:var(--blue-100)}.cad-mode input{accent-color:var(--blue-600);margin-top:2px}.cad-mode-text b{color:var(--text-900);font-size:12px;display:block}.cad-mode-text em{color:var(--text-600);font-size:11px;font-style:normal;line-height:1.35;display:block}.cad-error{margin:0 0 8px;font-size:12px;line-height:1.4}.cad-actions{justify-content:flex-end;gap:8px;display:flex}.header-left{flex-wrap:wrap;align-items:center;gap:6px 24px;min-width:0;display:flex}.app-nav{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.app-nav .nav-link{color:var(--text-600);border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600}.app-nav .nav-link:hover{color:var(--navy-800);background:#ffffffb3}.app-nav .nav-link.active{background:var(--bg-card);color:var(--navy-800);box-shadow:var(--shadow)}.users-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.tabs{gap:4px;display:flex}.tab{border:1px solid var(--line);background:var(--bg-card);color:var(--text-600);cursor:pointer;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600}.tab:hover{border-color:var(--blue-500);color:var(--navy-800)}.tab.active{border-color:var(--blue-600);background:var(--blue-100);color:var(--navy-800)}.users-search{align-items:center;gap:6px;display:flex}.users-toolbar-end{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.users-table td{vertical-align:middle}.users-table .row-actions .hint-msg{margin:0}.member-views{justify-content:center;margin:0 0 12px}.member-views-bar{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:0 0 12px;display:grid}.member-views-bar:before{content:""}.member-views-bar .member-views{margin:0}.member-views-end{justify-self:end}.member-create{border-left:4px solid var(--blue-600);margin:0 0 12px;padding:14px 18px}.member-create .form-grid{gap:12px 20px}.member-created{border-bottom:1px solid var(--line);margin:0;padding:10px 18px}.audit-note{border-bottom:1px solid var(--line);margin:0;padding:12px 18px}.audit-table td.audit-change{white-space:normal;overflow-wrap:anywhere}.users-table .row-actions{white-space:nowrap;flex-wrap:nowrap}.users-table{min-width:1120px}.users-table .th-sort{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.users-table .th-sort:hover{color:var(--blue-600)}.users-table .th-sort .th-arrow{color:var(--text-400);font-size:9px}.users-table .th-sort.active,.users-table .th-sort.active .th-arrow{color:var(--blue-600)}.users-table .cell-email{color:var(--text-900);font-weight:600}.users-table .cell-email .cell-clip{max-width:200px}.badge-pending{color:#b45309;background:#fff4e0}.badge-active{color:var(--green-600);background:#e6f6ec}.badge-disabled{color:var(--text-600);background:#f1f2f6}.row-actions,.row-confirm{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:inline-flex}.row-confirm{color:var(--danger);font-size:12px}.approve-row>td{background:var(--blue-100);padding:12px 18px}.approve-panel{text-align:left;flex-direction:column;gap:8px;display:flex}.approve-applied{color:var(--text-600);margin:0;font-size:13px}.approve-hint{color:var(--blue-600);margin:0;font-size:12px}.approve-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-danger:hover:not(:disabled){border-color:var(--danger);background:#fef2f2}.delete-row>td{background:#fef2f2;padding:12px 18px}.delete-panel{text-align:left;flex-direction:column;gap:8px;display:flex}.delete-warn{color:var(--danger);margin:0;font-size:13px}.delete-target{color:var(--text-600);margin:0;font-size:13px}.edit-row>td{background:#fffbeb;padding:12px 18px}.edit-panel{text-align:left;flex-direction:column;gap:10px;display:flex}.edit-target{color:var(--text-600);margin:0;font-size:13px}.edit-section{flex-direction:column;gap:6px;display:flex}.edit-section+.edit-section{border-top:1px solid var(--line);padding-top:10px}.edit-label{color:var(--text-900);margin:0;font-size:12px;font-weight:700}.edit-warn{color:#b45309;margin:0;font-size:12px}.company-cell{flex-direction:column;align-items:center;gap:2px;display:inline-flex}.company-cell .company-rename{color:var(--text-400);padding:0;font-size:11px}.company-cell .company-rename:hover:not(:disabled){color:var(--blue-600)}.rename-row>td{background:#f5f3ff;padding:12px 18px}.rename-panel{text-align:left;flex-direction:column;gap:8px;display:flex}.rename-warn{color:#6d28d9;margin:0;font-size:13px}.done-msg{color:var(--green-600);margin:4px 0 0;font-size:13px}.signup-done{text-align:center;margin:8px 0 18px}.signup-done .check{background:var(--green-500);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:12px;font-size:26px;font-weight:800;display:inline-flex}.signup-done h2{color:var(--text-900);margin-bottom:8px;font-size:17px;font-weight:700}.signup-done p{color:var(--text-600);font-size:13px;line-height:1.6}.signup-notice{border:1px solid var(--line);background:var(--bg-thead);text-align:left;border-radius:8px;margin-top:10px;padding:10px 12px}.project-edit{flex-direction:column;gap:14px;min-width:0;display:flex}.project-edit-locked{background:var(--bg-thead);border-radius:10px;padding:12px 14px}.project-edit-confirm{background:#fef2f2;border-radius:10px;padding:12px 14px}.project-edit-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.drawing-uploader{flex-direction:column;gap:12px;min-width:0;display:flex}.detail-card .drawing-uploader{margin-bottom:16px}.sv-tabs{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.sv-tab{border:1px solid var(--line);background:var(--bg-card);color:var(--text-600);cursor:pointer;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600}.sv-tab:hover{border-color:var(--blue-500);color:var(--navy-800)}.sv-tab.active{border-color:var(--blue-600);background:var(--blue-100);color:var(--navy-800)}.sv-card{padding:18px 20px 22px}.sv-page-error{margin:0 0 10px}.sv-matrix{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:18px;display:grid}.sv-rail{border-right:1px solid var(--line);flex-direction:column;gap:4px;min-width:0;padding-right:14px;display:flex}.sv-rail-item{text-align:left;color:var(--text-600);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:8px 12px;font-size:13.5px;font-weight:600}.sv-rail-item:hover{background:var(--bg-thead);color:var(--navy-800)}.sv-rail-item.active{border-color:var(--blue-600);background:var(--blue-100);color:var(--navy-800)}.sv-cell{min-width:0}.sv-seg{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.sv-cell-title{color:var(--text-900);margin:0 0 6px;font-size:16px}.sv-cell-sub{color:var(--text-400);font-size:13px;font-weight:500}.sv-cell-hint{line-height:1.6}.sv-grid{margin-top:12px}.survey-option.sv-readonly{cursor:default;background:var(--bg-thead)}.survey-option.sv-readonly:hover{border-color:var(--line)}.sv-option-name{overflow-wrap:anywhere;min-width:0}.sv-chip{white-space:nowrap;border-radius:999px;flex:none;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:700}.sv-chip-on{color:var(--green-600);background:#e7f6ec}.sv-chip-off{color:var(--text-600);background:#f3f4f6}.sv-chip-extra{background:var(--blue-100);color:var(--navy-700)}.sv-chip-legacy{color:#a15c00;background:#fff4e5}.sv-chip-basic{background:var(--blue-600);color:#fff}.sv-chip-optional{background:var(--slate-100);color:var(--slate-600)}.sv-chip-total{background:var(--bg-thead);color:var(--text-900);border:1px solid var(--line)}.sv-chip-dirty{background:var(--warn-100);color:var(--warn-700);border:1px solid var(--warn-200)}.sv-src-guideline{color:var(--green-600);background:#e7f6ec}.sv-src-legacy{color:var(--text-600);background:#f3f4f6}.sv-src-user{background:var(--violet-100);color:var(--violet-700)}.sv-src-scope{color:var(--text-400);margin-left:6px;font-size:12px}.sv-table .sv-chip{margin-left:0;display:inline-block}.sv-note{border:1px solid var(--line);background:var(--bg-thead);color:var(--text-600);border-radius:8px;margin:10px 0 0;padding:10px 12px;font-size:13px;line-height:1.6}.sv-note p{margin:0 0 4px}.sv-note p:last-child{margin-bottom:0}.sv-note-warn{border-color:var(--warn-200);background:var(--warn-100);color:var(--warn-700)}.sv-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin:14px 0 8px;display:flex}.sv-summary-chips{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.sv-summary-chips .sv-chip{margin-left:0;padding:3px 10px;font-size:12px}.sv-summary-actions{gap:8px;display:inline-flex}.sv-dtable-wrap{border:1px solid var(--line);border-radius:10px}.sv-dtable{border-collapse:collapse;width:100%;font-size:13.5px}.sv-dtable th{background:var(--bg-thead);border-bottom:1px solid var(--line);height:38px;color:var(--text-600);text-align:left;white-space:nowrap;padding:0 10px;font-size:12.5px;font-weight:700}.sv-dtable td{height:42px;color:var(--text-900);vertical-align:middle;border-bottom:1px solid #eef1f6;padding:0 10px}.sv-dtable tbody tr:last-child td{border-bottom:none}.sv-dtable tbody tr:hover td{background:#f8fafd}.sv-dtable .sv-dt-no{text-align:right;font-variant-numeric:tabular-nums;width:52px;color:var(--text-400)}.sv-dtable td.sv-dt-no{font-size:12.5px}.sv-dt-name{overflow-wrap:anywhere;font-weight:400}.sv-dt-name .sv-chip{margin-left:8px;display:inline-block}.sv-dtable .sv-dt-cat{width:190px}.sv-cat-text,.sv-dt-cat-inline{color:var(--text-400);font-size:12px}.sv-dt-cat-inline{display:none}.sv-dtable .sv-dt-kind{width:124px}.sv-dtable .sv-dt-move{white-space:nowrap;width:76px}.sv-dtable .sv-dt-out{text-align:center;width:76px}.sv-dt-row-out td{background:var(--bg-thead)}.sv-dt-row-out .sv-dt-name-text{color:var(--text-400);text-decoration:line-through}.sv-dt-row-out .sv-cat-text{text-decoration:line-through}.sv-kind-seg{border:1px solid var(--line);background:var(--bg-card);border-radius:999px;height:28px;display:inline-flex;overflow:hidden}.sv-kind-btn{min-width:48px;color:var(--text-400);background:0 0;border:none;padding:0 12px;font-size:12.5px;font-weight:600;line-height:26px}.sv-kind-btn+.sv-kind-btn{border-left:1px solid var(--line)}.sv-kind-btn:hover:not(:disabled):not(.active){color:var(--navy-800)}.sv-kind-btn:disabled{cursor:default}.sv-kind-basic.active{background:var(--blue-600);color:#fff}.sv-kind-optional.active{background:var(--slate-100);color:var(--slate-600)}.sv-icon-btn{border:1px solid var(--line);background:var(--bg-card);width:26px;height:26px;color:var(--text-600);border-radius:6px;padding:0;font-size:14px;line-height:1}.sv-icon-btn+.sv-icon-btn{margin-left:4px}.sv-icon-btn:hover:not(:disabled){border-color:var(--blue-500);color:var(--navy-800)}.sv-icon-btn:disabled{opacity:.35;cursor:default}.sv-icon-btn-danger{font-size:16px}.sv-icon-btn-danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger);background:#fdecec}.sv-link-btn{color:var(--blue-600);background:0 0;border:none;padding:0;font-size:12.5px;font-weight:600}.sv-link-btn:hover:not(:disabled){text-decoration:underline}.sv-cand{border-top:1px solid var(--line);margin-top:22px;padding-top:16px}.sv-cand-head .hint-msg{margin:0}.sv-cand-tools{margin:10px 0}.sv-cand-count{color:var(--text-400);font-size:12.5px}.sv-search select{border:1px solid var(--line);background:var(--bg-card);border-radius:8px;min-width:0;max-width:240px;padding:7px 10px;font-size:13px}.sv-cand-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;max-height:340px;margin:0;padding:2px;list-style:none;display:grid;overflow-y:auto}.sv-cand-card{border:1px solid var(--line);background:var(--bg-card);border-radius:10px;align-items:center;gap:8px;min-height:52px;padding:8px 10px 8px 12px;display:flex}.sv-cand-card:hover{border-color:var(--blue-500)}.sv-cand-text{flex-direction:column;flex:auto;gap:1px;min-width:0;display:flex}.sv-cand-name{color:var(--text-900);overflow-wrap:anywhere;font-size:13.5px}.sv-cand-cat{color:var(--text-400);font-size:11.5px}.sv-cand-add{border:1px solid var(--blue-600);background:var(--bg-card);color:var(--blue-600);white-space:nowrap;border-radius:999px;flex:none;padding:4px 10px;font-size:12px;font-weight:700}.sv-cand-add:hover:not(:disabled){background:var(--blue-100)}.sv-cand-add:disabled{opacity:.5;cursor:default}.sv-notice{color:var(--green-600);margin:8px 0 0;font-size:13px;font-weight:600}.sv-cell-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.sv-toolbar{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:12px;display:flex}.sv-toolbar-end{margin-left:auto}.sv-check,.sv-search{color:var(--text-600);white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.sv-search input{border:1px solid var(--line);border-radius:8px;min-width:0;padding:7px 10px;font-size:13px}.sv-table{border-collapse:collapse;width:100%;min-width:720px}.sv-table th{background:var(--bg-thead);color:var(--text-900);padding:var(--row-pad-y) 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;font-size:13px;font-weight:700}.sv-table td{padding:var(--row-pad-y) 10px;border-bottom:1px solid var(--line);color:var(--text-900);vertical-align:middle;font-size:13.5px}.sv-table .sv-cell-name{font-weight:600}.sv-table .sv-cell-cat{color:var(--text-600);font-size:12.5px}.sv-row-off .sv-cell-name{color:var(--text-400)}.sv-row-actions{white-space:nowrap}.sv-muted{color:var(--text-400)}.sv-edit-row>td{background:var(--bg-thead);padding:0}.sv-panel{border:1px solid var(--line);background:var(--bg-card);text-align:left;border-radius:10px;margin:10px 0 0;padding:14px 16px}.sv-edit-row .sv-panel{margin:12px}.sv-panel-title{color:var(--text-900);margin:0 0 6px;font-size:13.5px;font-weight:700}.sv-panel-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.sv-panel-row input,.sv-panel-row select{border:1px solid var(--line);border-radius:8px;flex:240px;min-width:0;padding:8px 10px;font-size:13.5px}.sv-divider{border:none;border-top:1px solid var(--line);margin:14px 0}.sv-extra{flex-direction:column;align-items:flex-start;display:flex}.sv-extra .sv-panel{width:100%}.sv-extra-list{margin-top:12px}.sv-extra-list ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sv-extra-list li{border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;display:flex}.sv-scope-note{color:var(--text-600);margin:12px 0 0;padding-left:18px;font-size:12.5px;line-height:1.7}@media (width<=1024px){.sv-matrix{grid-template-columns:minmax(0,1fr);gap:12px}.sv-rail{border-right:none;border-bottom:1px solid var(--line);flex-flow:wrap;padding:0 0 12px}.sv-rail-item{border-color:var(--line);border-radius:999px;padding:6px 12px;font-size:13px}}@media (width<=768px){.sv-card{padding:14px 14px 18px}.sv-toolbar-end{margin-left:0}.sv-search{flex:180px}.sv-search input{width:100%}.sv-cell-foot{justify-content:flex-start}.sv-dtable .sv-dt-cat{display:none}.sv-dt-cat-inline{margin-top:1px;display:block}.sv-dtable td{height:auto;padding-top:7px;padding-bottom:7px}.sv-dtable .sv-dt-no{width:36px}.sv-summary-actions{width:100%}}.log-kinds{gap:4px;margin:0 0 12px;display:flex}.log-pill{border:1px solid var(--line);background:var(--bg-card);color:var(--text-600);white-space:nowrap;border-radius:999px;padding:6px 13px;font-size:13px;font-weight:600}.log-pill:hover{border-color:var(--blue-500);color:var(--navy-800)}.log-pill.active{border-color:var(--blue-600);background:var(--blue-100);color:var(--navy-800)}.log-kinds .log-pill{padding:7px 16px;font-size:13.5px}.log-filters{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px 20px;padding:14px 18px;display:flex}.log-filter{flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0;display:flex}.log-filter-name{color:var(--text-600);font-size:12.5px;font-weight:700}.log-seg{gap:4px;display:flex}.log-dates{color:var(--text-400);align-items:center;gap:6px;display:inline-flex}.log-dates .input-sm{max-width:150px}.log-user-select.select-sm{max-width:300px}.log-search .input-sm{width:230px;max-width:100%}.log-inline-hint{margin:0}.log-summary{min-height:20px;color:var(--text-600);padding:10px 18px 0;font-size:12.5px}.log-table{min-width:1240px}.log-table.is-loading tbody{opacity:.55}.log-table .col-time{white-space:nowrap;width:150px}.log-table .col-user .cell-clip{max-width:180px}.log-table .col-action .cell-clip{max-width:200px}.log-table .col-target .cell-clip{max-width:220px}.log-table .col-result{width:120px}.log-table .col-result .cell-clip{max-width:120px}.log-table .col-ip{width:170px}.log-table .col-ip .cell-clip{max-width:150px}.log-table .col-location .cell-clip{max-width:140px}.log-table .col-device .cell-clip{max-width:180px}.log-strong{color:var(--text-900);font-weight:600}.log-sub{color:var(--text-600);font-size:12px}.log-mono{font-family:ui-monospace,Cascadia Mono,Consolas,SFMono-Regular,monospace;font-size:11.5px}.log-empty{color:var(--text-400)}.log-result{white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.log-result.is-ok{color:var(--green-600);background:#e6f6ec}.log-result.is-fail{color:var(--danger);background:#fdecec}.log-code{margin-left:6px}.log-ip-label{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;background:var(--blue-100);max-width:150px;color:var(--navy-800);border:1px solid #0000;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:600;display:inline-block;overflow:hidden}.log-ip-label.is-button{cursor:pointer;font-family:inherit}.log-ip-label.is-button:hover{border-color:var(--blue-500)}.log-add-label{color:var(--text-400);background:0 0;border:none;padding:0;font-size:11.5px}.log-add-label:hover{color:var(--blue-600);text-decoration:underline}.log-label-editor{flex-direction:column;align-items:center;gap:6px;min-width:170px;display:flex}.log-label-editor .input-sm{width:100%;max-width:170px}.log-label-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.log-labels{margin-bottom:14px;padding-bottom:12px}.log-labels-note{border-bottom:1px solid var(--line);margin:0;padding:12px 18px}.log-label-list{flex-wrap:wrap;gap:8px 22px;margin:0;padding:12px 18px 4px;list-style:none;display:flex}.log-label-list li{align-items:center;gap:8px;display:flex}.log-label-add{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 18px 0;display:flex}.log-label-add .input-sm{max-width:180px}.log-label-add .error-msg{flex-basis:100%}.log-denied{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:36px 24px;display:flex}.log-denied-title{color:var(--text-900);margin:0;font-size:16px;font-weight:700}@media (width<=720px){.log-filters{padding:12px 14px}.log-search{flex:100%}.log-search .input-sm{flex:auto;width:auto}.log-summary{padding:10px 14px 0}}@media (width<=900px){.page-title{font-size:22px}.detail-name{font-size:18px}.summary-bar{padding:14px 16px}.detail-card{padding:18px 16px}.wizard-card{padding:22px 18px 20px}}@media (width<=720px){.app-header{padding:10px var(--page-gutter)}.header-left{gap:8px 12px}.app-nav .nav-link{padding:6px 10px}.table-footer{flex-direction:column;gap:10px;padding:14px 16px}.size-select{position:static;right:auto}.modal-overlay{padding:12px}.modal{max-height:calc(100vh - 24px)}.modal-foot{flex-wrap:wrap}}.policy-page{max-width:820px;padding-top:32px;padding-bottom:64px}.policy-head{text-align:center;margin-bottom:28px}.policy-brand img{width:200px;max-width:100%;margin:0 auto 20px;display:block}.policy-head h1{color:var(--navy-900);margin:0 0 6px;font-size:24px;font-weight:800}.policy-updated{color:var(--text-400);margin:0;font-size:13px}.policy-section{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;padding:20px 24px}.policy-section h2{color:var(--navy-800);margin:0 0 10px;font-size:16px;font-weight:700}.policy-p{color:var(--text-900);margin:0 0 10px;font-size:14px;line-height:1.75}.policy-section>:last-child{margin-bottom:0}.policy-list{color:var(--text-900);margin:0 0 10px;padding-left:20px;font-size:14px;line-height:1.75}.policy-list li{margin-bottom:6px}.policy-list li:last-child{margin-bottom:0}.policy-foot{text-align:center;color:var(--text-400);margin-top:24px;font-size:13px}.login-policy{color:var(--text-400);margin-top:18px;font-size:12.5px}.login-version{text-align:center;margin-top:16px}.login-version+.login-policy{margin-top:8px}.login-version-btn{font:inherit;color:var(--text-400);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.login-version-btn:hover{color:var(--blue-600);text-decoration:underline}@media (width<=640px){.policy-section{padding:16px}}.app-foot{max-width:var(--page-max);padding:8px var(--page-gutter) 28px;text-align:center;color:var(--text-400);margin:0 auto;font-size:12.5px}.header-version{font:inherit;color:var(--text-400);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.header-version:hover{color:var(--blue-600);text-decoration:underline}.release-new-dot{background:var(--blue-600);vertical-align:.1em;border-radius:50%;width:7px;height:7px;margin-left:5px;display:inline-block}.release-sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.release-modal{text-align:left;width:min(520px,100%)}.release-tabs{margin-bottom:10px}.release-section+.release-section{margin-top:18px}.release-section-title{color:var(--text-900);margin:4px 0 8px;font-size:14px;font-weight:700}.release-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.release-item{border-bottom:1px solid var(--line)}.release-row{color:var(--text-900);justify-content:space-between;align-items:center;gap:12px;padding:8px 2px;font-size:13.5px;display:flex}.release-toggle{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;font-size:13.5px}.release-toggle:hover{background:var(--bg-thead)}.release-toggle:focus-visible{outline:2px solid var(--blue-600);outline-offset:-2px;border-radius:4px}.release-main{flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0;display:flex}.release-side{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.release-caret{color:var(--text-400);font-size:12px;transition:transform .15s}.release-toggle.open .release-caret{transform:rotate(180deg)}.release-summary{background:var(--blue-100);color:var(--navy-800);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11.5px;font-weight:600}.release-none{color:var(--text-400);font-size:12px}.release-notes{padding:2px 4px 12px 14px}.release-notes-group+.release-notes-group{margin-top:8px}.release-notes-kind{color:var(--navy-800);margin:4px 0;font-size:12.5px;font-weight:700}.release-kind-fixed .release-notes-kind{color:var(--green-600)}.release-kind-removed .release-notes-kind{color:var(--text-600)}.release-notes-list{color:var(--text-900);margin:0;padding:0 0 0 16px;font-size:13px;line-height:1.55}.release-note+.release-note{margin-top:2px}.release-note-text{overflow-wrap:anywhere}.release-issue{background:var(--slate-100);color:var(--slate-600);font-variant-numeric:tabular-nums;white-space:nowrap;vertical-align:.05em;border-radius:4px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:600;display:inline-block}.release-ver{align-items:center;gap:8px;font-weight:600;display:inline-flex}.release-badge{padding:1px 8px;font-size:11.5px}.release-at{color:var(--text-600);font-variant-numeric:tabular-nums;white-space:nowrap}.release-empty{color:var(--text-400);margin:0;padding:10px 2px;font-size:13px}.release-pdf{flex-wrap:wrap;align-items:center;gap:8px;padding:0 2px 10px;display:flex}.release-pdf-hint{color:var(--text-400);font-size:12px}.release-pdf-error{color:var(--danger);font-size:12px}.badge-risk{padding:3px 10px}.badge-risk-low{color:var(--risk-low);background:#e7f6ec}.badge-risk-mid{color:var(--risk-mid);background:#fff4e0}.badge-risk-high{color:var(--risk-high);background:#fdecec}.badge-risk-range{opacity:.85;font-weight:500}.badge.risk-src{padding:2px 9px;font-size:12px}.badge-src-std{color:var(--text-600);background:#f3f4f6}.badge-src-edited{background:var(--blue-100);color:var(--blue-600)}.badge-src-company{color:var(--green-600);background:#e7f6ec}.risk-company-pick{color:var(--text-600);white-space:nowrap;align-items:center;gap:8px;max-width:100%;font-size:13px;font-weight:600;display:flex}.risk-company-pick .select{width:auto;min-width:0;max-width:260px;padding:7px 10px}.risk-tabs{flex-wrap:wrap;margin-bottom:12px}.risk-disabled{flex-direction:column;align-items:center;gap:4px;display:flex}.risk-disabled-title{color:var(--text-900);margin:0;font-size:16px;font-weight:700}.risk-card{padding:16px 20px 22px}.risk-toolbar{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:12px;display:flex}.risk-search{min-width:0;color:var(--text-600);white-space:nowrap;flex:0 340px;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.risk-search .input{min-width:0;padding:7px 10px;font-size:13px}.risk-toolbar-end{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.risk-note{color:#7a5200;background:#fff8e8;border:1px solid #f0d9a8;border-radius:8px;margin:0 0 12px;padding:10px 12px;font-size:13px;line-height:1.6}.risk-msg{margin:0 0 12px;font-size:13px}.risk-msg-ok{color:var(--green-600);font-weight:600}.risk-layout{grid-template-columns:250px minmax(0,1fr);align-items:start;gap:18px;display:grid}.risk-rail{border-right:1px solid var(--line);flex-direction:column;gap:10px;min-width:0;max-height:calc(100vh - 160px);padding-right:12px;display:flex;position:sticky;top:12px;overflow-y:auto}.risk-rail-group{flex-direction:column;gap:2px;display:flex}.risk-rail-cat{color:var(--navy-800);align-items:center;gap:6px;margin:0 0 2px;padding:0 4px;font-size:12.5px;font-weight:700;display:flex}.risk-rail-common{background:var(--bg-thead);color:var(--text-600);border-radius:999px;padding:0 6px;font-size:11px;font-weight:600}.risk-rail-count{color:var(--text-400);margin-left:auto;font-size:11.5px;font-weight:600}.risk-rail-item{width:100%;color:var(--text-600);text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:6px;padding:7px 10px;font-size:13px;font-weight:600;display:flex}.risk-rail-item:hover{background:var(--bg-thead);color:var(--navy-800)}.risk-rail-item.active{border-color:var(--blue-600);background:var(--blue-100);color:var(--navy-800)}.risk-rail-item.off .risk-rail-name{color:var(--text-400);text-decoration:line-through}.risk-rail-name{overflow-wrap:anywhere;min-width:0}.risk-rail-meta{flex:none;align-items:center;gap:4px;display:flex}.risk-rail-num{background:var(--bg-thead);min-width:22px;color:var(--text-600);text-align:center;border-radius:999px;padding:0 6px;font-size:11.5px}.risk-off-tag{color:var(--text-600);white-space:nowrap;background:#f3f4f6;border-radius:999px;padding:0 6px;font-size:11px}.risk-main{flex-direction:column;gap:12px;min-width:0;display:flex}.risk-main>.risk-note{margin:0}.risk-jsa{border:1px solid var(--line);background:#fafbfd;border-radius:10px;padding:14px 16px}.risk-jsa.off{background:var(--bg-thead)}.risk-jsa-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 16px;display:flex}.risk-jsa-title{flex-wrap:wrap;align-items:center;gap:6px 10px;min-width:0;display:flex}.risk-jsa-title h2{color:var(--text-900);margin:0;font-size:17px;font-weight:800}.risk-jsa.off .risk-jsa-title h2{color:var(--text-400)}.risk-jsa-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.risk-jsa-desc{color:var(--text-600);margin:8px 0 0;font-size:13.5px}.risk-jsa-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;margin:12px 0 0;display:grid}.risk-jsa-grid dt{color:var(--text-600);margin-bottom:3px;font-size:12px;font-weight:700}.risk-jsa-grid dd{color:var(--text-900);overflow-wrap:anywhere;margin:0;font-size:13.5px}.risk-jsa-full{grid-column:1/-1}.risk-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.risk-chip{background:var(--blue-100);color:var(--navy-800);border:1px solid #c9d8f5;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.risk-chip-x{color:var(--text-600);background:0 0;border:none;padding:0 2px;font-size:11px;line-height:1}.risk-chip-x:hover{color:var(--danger)}.risk-chips-input{flex-direction:column;gap:8px;display:flex}.risk-code{color:var(--text-600);font-family:ui-monospace,Cascadia Mono,Consolas,SFMono-Regular,monospace;font-size:12px}.risk-muted{color:var(--text-400)}.risk-table{border-collapse:collapse;width:100%;min-width:1080px}.risk-table th{padding:var(--row-pad-y) 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-thead);color:var(--text-900);text-align:center;white-space:nowrap;font-size:13px;font-weight:700}.risk-table td{padding:var(--row-pad-y) 10px;border-bottom:1px solid var(--line);color:var(--text-900);text-align:center;vertical-align:middle;font-size:13.5px}.risk-table .risk-col-text{text-align:left}.risk-table td.risk-col-text{min-width:220px}.risk-hazard-text{font-weight:600}.risk-col-stage{overflow-wrap:anywhere;max-width:140px}.risk-col-no,.risk-col-sev{white-space:nowrap}.risk-table .risk-band th{color:var(--navy-800);text-align:left;background:#eef2f9;border-top:none;padding:6px 12px;font-size:13px}.risk-band-count{color:var(--text-600);margin-left:6px;font-size:12px;font-weight:600}.risk-empty{color:var(--text-600);padding:28px 10px}.risk-row-off>td:not(.risk-col-use):not(.risk-col-actions){opacity:.5}.risk-row-off>td{background:#fafbfc}.risk-col-photo{width:112px}.risk-thumb{border:1px solid var(--line);vertical-align:middle;background:#fff;border-radius:6px;justify-content:center;align-items:center;width:96px;height:72px;padding:0;display:inline-flex;overflow:hidden}button.risk-thumb{cursor:zoom-in}button.risk-thumb:hover,button.risk-thumb:focus-visible{border-color:var(--blue-500);outline:none;box-shadow:0 0 0 3px #3b82f633}.risk-thumb img{object-fit:cover;width:100%;height:100%;display:block}.risk-thumb-empty{background:var(--bg-thead);color:var(--text-400);border-style:dashed}.risk-measures{margin:0;padding:0;font-size:13px;line-height:1.55;list-style:none}.risk-measures li+li{margin-top:2px}.risk-measure-no{color:var(--navy-800);font-weight:700}.risk-photo-tag{color:var(--text-600);margin-top:4px;font-size:11.5px;display:block}.risk-row-actions{flex-direction:column;align-items:stretch;gap:4px;display:flex}.risk-row-actions .btn{white-space:nowrap}.risk-switch{cursor:pointer;color:var(--text-600);white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex;position:relative}.risk-switch input{opacity:0;width:1px;height:1px;position:absolute}.risk-switch-track{background:#cbd2dd;border-radius:999px;flex:none;width:34px;height:20px;transition:background .15s;position:relative}.risk-switch-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #101e3f40}.risk-switch input:checked+.risk-switch-track{background:var(--navy-800)}.risk-switch input:checked+.risk-switch-track:after{transform:translate(14px)}.risk-switch input:focus-visible+.risk-switch-track{box-shadow:0 0 0 3px #3b82f659}.risk-switch input:disabled+.risk-switch-track{opacity:.55}.risk-use-text{color:var(--green-600);font-size:12.5px;font-weight:600}.risk-use-text.off{color:var(--text-400)}@media (prefers-reduced-motion:reduce){.risk-switch-track,.risk-switch-track:after{transition:none}}.risk-modal{width:min(720px,100%)}.risk-modal-wide{width:min(960px,100%)}.risk-modal:focus{outline:none}.risk-form{flex-direction:column;gap:14px;padding-top:4px;display:flex}.risk-form-meta{color:var(--text-600);margin:0;font-size:13px}.risk-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.risk-field-hint{color:var(--text-600)}.risk-inline{flex-wrap:wrap;gap:8px;display:flex}.risk-inline>.input,.risk-inline>.select{flex:200px;width:auto;min-width:0}.risk-seg{flex-wrap:wrap;gap:6px;display:flex}.risk-original{border:1px solid var(--line);background:var(--bg-thead);border-radius:8px;padding:10px 12px;font-size:13px}.risk-original summary{cursor:pointer;color:var(--navy-800);font-weight:700}.risk-original-list{margin:10px 0}.risk-original-list>div{border-bottom:1px dashed var(--line);grid-template-columns:110px minmax(0,1fr);gap:8px;padding:4px 0;display:grid}.risk-original-list dt{color:var(--text-600);font-weight:600}.risk-original-list dd{overflow-wrap:anywhere;margin:0}.risk-foot-msg{flex:auto;min-width:0}.risk-foot-actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.risk-confirm{font-size:14px;line-height:1.65}.risk-confirm ul{margin:8px 0;padding-left:20px}.risk-confirm-warn{color:var(--danger);font-weight:600}.risk-photo-figure{flex-direction:column;align-items:center;gap:12px;margin:0;display:flex}.risk-photo-large{object-fit:contain;border:1px solid var(--line);background:var(--bg-thead);border-radius:8px;max-width:100%;min-height:120px;max-height:calc(100vh - 300px);display:block}.risk-photo-figure figcaption{width:100%}.risk-photo-text{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 4px;display:flex}.risk-photo-stage{color:var(--text-600);font-size:13px;font-weight:600}.risk-photo-hazard{color:var(--text-900);margin:0;font-size:15px;font-weight:700}.risk-photo-credit{color:var(--text-600);margin:8px 0 0;font-size:12px}.risk-section-title{color:var(--text-900);margin:18px 0 8px;font-size:15px;font-weight:800}.risk-criteria>.risk-section-title:first-child,.risk-criteria>.risk-note+.risk-section-title{margin-top:0}.risk-formula{background:var(--blue-100);color:var(--navy-800);border-radius:8px;margin:0;padding:10px 14px;font-weight:700}.risk-criteria-table{min-width:760px}.risk-criteria-table td.risk-col-text{min-width:260px}.risk-col-range{white-space:nowrap}.risk-reqs{flex-wrap:wrap;justify-content:center;gap:4px 12px;display:flex}.risk-req{white-space:nowrap;align-items:center;gap:4px;font-size:13px;display:inline-flex}.risk-scales{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;display:grid}.risk-scale{min-width:0}.risk-scale-table{min-width:420px}.risk-scale-name{white-space:nowrap;font-weight:700}.risk-guide{border:1px solid var(--line);border-radius:8px;margin:0;padding:10px 12px}.risk-criteria-foot{border-top:1px solid var(--line);color:var(--text-600);flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;padding-top:14px;font-size:13px;display:flex}@media (width<=1024px){.risk-layout{grid-template-columns:minmax(0,1fr);gap:12px}.risk-rail{border-right:none;border-bottom:1px solid var(--line);flex-flow:wrap;align-items:flex-start;gap:6px 10px;max-height:220px;padding:0 0 12px;position:static}.risk-rail-group{flex-flow:wrap;align-items:center;gap:6px}.risk-rail-cat{margin:0}.risk-rail-item{border-color:var(--line);border-radius:999px;width:auto;padding:5px 12px}.risk-scales{grid-template-columns:minmax(0,1fr)}}@media (width<=720px){.risk-card{padding:14px 14px 18px}.risk-search{flex:100%}.risk-toolbar-end{margin-left:0}.risk-jsa-grid,.risk-form-grid{grid-template-columns:minmax(0,1fr)}.risk-company-pick{white-space:normal}}.project-tabs{flex-wrap:wrap;margin:-4px 0 14px}.project-tabs .tab{text-decoration:none}.projects-table.with-risk{min-width:960px}.projects-table.with-company.with-risk{min-width:1080px}.risk-status-link{text-decoration:none}.risk-status-link:hover,.risk-status-link:focus-visible{text-decoration:underline}.sa-status{flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:12px;padding:14px 20px;display:flex}.sa-status-name{color:var(--navy-800);font-weight:800}.sa-status-item{color:var(--text-900);font-size:13.5px}.sa-status-action{margin-left:auto}.sa-card{min-width:0;margin-bottom:12px;padding:16px 20px}.sa-section-title{color:var(--text-900);margin:0 0 10px;font-size:15px;font-weight:800}.sa-error{margin:0 0 10px}.sa-reject{color:var(--danger);overflow-wrap:anywhere;background:#fdecec;border:1px solid #f4bfc1;border-radius:8px;margin:0 0 12px;padding:10px 14px;font-size:13.5px;font-weight:600}.sa-info-row{flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:13.5px;display:flex}.sa-info-item{overflow-wrap:anywhere;align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex}.sa-info-label{color:var(--text-600);white-space:nowrap;font-size:12.5px;font-weight:600}.sa-info-muted{color:var(--text-600);font-size:12.5px}.sa-info-select{width:auto;min-width:110px;max-width:180px;padding:6px 10px;font-size:13px}.sa-info-notes{flex:260px}.sa-info-input{flex:1;min-width:0;padding:6px 10px;font-size:13px}.sa-turn{border:2px solid var(--blue-500);flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:12px;padding:14px 20px;display:flex}.sa-turn-row{align-items:center;gap:8px;display:flex}.sa-turn-title{color:var(--navy-800);font-size:15px}.sa-turn-comment{flex:220px;min-width:0}.sa-turn-actions{gap:8px;margin-left:auto;display:flex}.sa-wt-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.sa-wt-card{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:10px;flex-direction:column;align-items:stretch;gap:4px;min-width:0;padding:6px 6px 8px;display:flex}.sa-wt-card:hover:not(:disabled),.sa-wt-card:focus-visible{border-color:var(--blue-500);outline:none}.sa-wt-card.on{border:2px solid var(--blue-600);background:var(--blue-100);padding:5px 5px 7px}.sa-wt-card:disabled{cursor:progress;opacity:.7}.sa-wt-photo{background:var(--bg-thead);height:84px;color:var(--text-400);border-radius:6px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.sa-wt-photo img{object-fit:cover;width:100%;height:100%}.sa-wt-tick{background:var(--blue-600);color:#fff;text-align:center;border-radius:999px;width:24px;height:24px;font-size:14px;font-weight:800;line-height:24px;position:absolute;top:4px;right:4px}.sa-wt-name{color:var(--text-900);overflow-wrap:anywhere;font-size:13.5px;font-weight:700}.sa-wt-meta{color:var(--text-600);font-size:12px}.sa-picker-foot{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.sa-table-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.sa-filter{color:var(--text-600);cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.sa-table{min-width:1040px}.sa-table-confirmed{min-width:1320px}.sa-band{justify-content:space-between;align-items:center;gap:10px;display:flex}.sa-band-actions{gap:6px;display:flex}.sa-col-check{width:56px}.sa-check{cursor:pointer;width:22px;height:22px}.sa-row-off>td:not(.sa-col-check){opacity:.45}.sa-col-grade{white-space:nowrap}.sa-score-num{color:var(--text-600);margin-left:4px;font-size:12px}.sa-nowrap{white-space:nowrap}.sa-score{border:1px solid #0000;border-radius:8px;gap:3px;padding:2px;display:inline-flex}.sa-score-btn{border:1px solid var(--line);min-width:36px;height:36px;color:var(--text-900);cursor:pointer;background:#fff;border-radius:6px;font-size:14px;font-weight:700;position:relative}.sa-score-btn:hover:not(:disabled){border-color:var(--blue-500)}.sa-score-btn.on{border-color:var(--navy-800);background:var(--navy-800);color:#fff}.sa-score-btn:disabled{cursor:default;opacity:.55}.sa-score-btn.on:disabled{opacity:.85}.sa-score-btn.is-default:after{content:"";opacity:.6;background:currentColor;border-radius:999px;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:3px;left:50%}.sa-missing{box-shadow:0 0 0 1px var(--danger);border-radius:8px;border-color:var(--danger)!important}.sa-req{color:var(--danger);font-weight:700}.sa-detail-row>td{background:#fafbfd;text-align:left!important}.sa-detail{flex-wrap:wrap;align-items:flex-start;gap:10px 16px;display:flex}.sa-field{border:1px solid #0000;flex-direction:column;gap:4px;min-width:0;padding:6px 8px;display:flex}.sa-field-wide{flex:320px}.sa-field-label{color:var(--text-600);font-size:12.5px;font-weight:700}.sa-field .select,.sa-field .input{min-width:140px;padding:7px 10px;font-size:13px}.sa-textarea{width:100%;min-width:0;font-size:13px}.sa-detail-text{white-space:pre-wrap;margin:0;font-size:13px}.sa-after{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sa-after-label{color:var(--text-600);font-size:12px}.sa-submit-bar{z-index:5;border-top:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);background:#fff;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:12px -20px -16px;padding:12px 20px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 12px #101e3f0f}.sa-submit-stats{flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13.5px;display:flex}.sa-stat-warn b{color:var(--danger)}.sa-submit-grades{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.sa-submit-grades .badge-risk{margin-left:6px}.sa-submit-action{align-items:center;gap:10px;min-width:0;margin-left:auto;display:flex}.sa-submit-why{color:var(--text-600);overflow-wrap:anywhere;font-size:12px}.sa-approval{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.sa-sign-box{border:1px solid var(--line);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:10px;display:flex}.sa-sign-head{color:var(--text-600);font-size:12.5px;font-weight:700}.sa-sign-img{justify-content:center;align-items:center;width:100%;height:72px;display:flex}.sa-sign-img img{object-fit:contain;max-width:100%;max-height:72px}.sa-sign-wait{color:var(--text-400);font-weight:600}.sa-sign-reject{color:var(--danger);font-weight:800}.sa-sign-done{border-color:#b7e2c4}.sa-sign-name{overflow-wrap:anywhere;font-size:13.5px;font-weight:700}.sa-sign-date{min-height:16px;color:var(--text-600);font-size:12px}.sa-sign-comment{color:var(--text-900);overflow-wrap:anywhere;margin:4px 0 0;font-size:12.5px}.sa-impl{flex-direction:column;align-items:center;gap:2px;display:inline-flex}.sa-impl-by{color:var(--text-600);white-space:nowrap;font-size:11px}.sig-modal{flex-direction:column;gap:10px;display:flex}.sig-pad{flex-direction:column;gap:8px;display:flex}.sig-canvas{border:1px dashed var(--text-400);touch-action:none;cursor:crosshair;background:#fff;border-radius:8px;width:100%;height:200px;display:block}.sig-actions{justify-content:flex-end;gap:8px;display:flex}@media (width<=720px){.sa-card,.sa-status,.sa-turn{padding:12px 14px}.sa-submit-bar{margin:12px -14px -12px;padding:10px 14px}.sa-status-action,.sa-turn-actions,.sa-submit-action{margin-left:0}.sa-wt-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.sa-approval{grid-template-columns:minmax(0,1fr)}}.sa-status-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.sa-status-actions .btn{text-decoration:none}.tbm-missing-count{color:var(--danger);font-weight:700}.risk-tbm-count{color:var(--text-600);white-space:nowrap;margin-left:6px;font-size:12px;display:inline-block}.tbm-page{padding-bottom:8px;font-size:16px}.tbm-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.tbm-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px;padding:0;list-style:none;display:grid}.tbm-step{border:1px solid var(--line);background:var(--bg-card);min-height:52px;color:var(--text-600);border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:8px 12px;font-size:17px;font-weight:700;display:flex}.tbm-step-n{background:var(--bg-thead);border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;font-weight:800;display:inline-flex}.tbm-step.active{border:2px solid var(--navy-800);color:var(--navy-800)}.tbm-step.active .tbm-step-n{background:var(--navy-800);color:#fff}.tbm-step.done{color:var(--green-600)}.tbm-step.done .tbm-step-n{color:var(--green-600);background:#e7f6ec}.tbm-alert{color:var(--risk-mid);background:#fff8e6;border:1px solid #f6d58e;border-radius:10px;margin:0 0 12px;padding:12px 16px;font-size:16px;font-weight:700}.tbm-section{min-width:0;margin-bottom:12px;padding:18px 22px}.tbm-section-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.tbm-section-title{color:var(--text-900);margin:0;font-size:19px;font-weight:800}.tbm-count{color:var(--text-600);font-size:16px;font-weight:700}.tbm-when{color:var(--navy-800);gap:16px;margin:0 0 12px;font-size:20px;font-weight:800;display:flex}.tbm-wx{border:1px solid var(--line);background:var(--bg-thead);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin:0 0 12px;padding:8px 8px 8px 14px;display:flex}.tbm-wx-text{min-width:0;color:var(--text-600);overflow-wrap:anywhere;font-size:15px;font-weight:600}.tbm-wx.ok{background:var(--blue-100);border-color:#c9dbfb}.tbm-wx.ok .tbm-wx-text{color:var(--navy-800);font-weight:700}.tbm-wx.fail{border-color:var(--warn-200);background:var(--warn-100)}.tbm-wx.fail .tbm-wx-text{color:var(--warn-700)}.tbm-choices{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.tbm-choice{border:1.5px solid var(--line);min-height:52px;color:var(--text-900);background:#fff;border-radius:12px;align-items:center;gap:8px;padding:8px 20px;font-size:17px;font-weight:700;display:inline-flex}.tbm-choice:hover{border-color:var(--blue-500)}.tbm-choice.on{border:2px solid var(--navy-800);background:var(--blue-100);color:var(--navy-800)}.tbm-choice-sm{min-height:48px;padding:6px 16px;font-size:16px}.tbm-choice-warn.on{border-color:var(--danger);color:var(--danger);background:#fdecec}.tbm-check-box{border:2px solid var(--text-400);background:#fff;border-radius:6px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:18px;font-weight:900;line-height:1;display:inline-flex}.tbm-choice.on .tbm-check-box,.tbm-site-check.on .tbm-check-box{border-color:var(--navy-800);background:var(--navy-800);color:#fff}.tbm-input{min-height:52px;font-size:17px}.tbm-input-short{width:120px}.tbm-inline-field{color:var(--text-600);align-items:center;gap:8px;font-size:17px;font-weight:700;display:inline-flex}.tbm-textarea{resize:vertical;width:100%;min-height:64px;font-size:17px}.tbm-add-row{gap:10px;margin-top:4px;display:flex}.tbm-add-row .tbm-input{flex:1;min-width:0}.tbm-btn{white-space:nowrap;min-height:52px;padding:8px 20px;font-size:16px}.tbm-btn-sm{white-space:nowrap;min-height:48px;padding:6px 16px;font-size:15px}.tbm-btn-lg{min-width:140px;min-height:60px;padding:10px 28px;font-size:19px;font-weight:800}.tbm-work-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.tbm-work{border:1.5px solid var(--line);text-align:left;background:#fff;border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;min-height:88px;padding:14px 44px 14px 16px;display:flex;position:relative}.tbm-work.on{border:2px solid var(--navy-800);background:var(--blue-100)}.tbm-work-tick{border:2px solid var(--text-400);text-align:center;border-radius:999px;width:28px;height:28px;font-size:16px;font-weight:900;line-height:24px;position:absolute;top:12px;right:12px}.tbm-work.on .tbm-work-tick{border-color:var(--navy-800);background:var(--navy-800);color:#fff}.tbm-work-name{color:var(--text-900);overflow-wrap:anywhere;font-size:18px;font-weight:800}.tbm-work-meta{color:var(--text-600);font-size:14px}.tbm-high-count{color:var(--risk-high);font-weight:700}.tbm-chips{flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.tbm-chip{background:var(--blue-100);color:var(--navy-800);border-radius:999px;align-items:center;gap:4px;padding:4px 4px 4px 14px;font-size:16px;font-weight:700;display:inline-flex}.tbm-chip-x{width:44px;height:44px;color:var(--text-600);background:0 0;border:0;border-radius:999px;font-size:16px}.tbm-att-list{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.tbm-att{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 12px;display:flex}.tbm-att.issue{background:snow;border-color:#f4bfc1}.tbm-att-name{align-items:center;gap:6px;min-width:100px;font-size:17px;font-weight:800;display:inline-flex}.tbm-guest{font-size:12px}.tbm-health{gap:6px;display:inline-flex}.tbm-att-memo{flex:200px;min-width:0}.tbm-details{display:block}.tbm-summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:6px 14px;min-height:48px;padding:4px 0;display:flex}.tbm-summary-value{color:var(--text-600);overflow-wrap:anywhere;font-size:15px}.tbm-field{flex-direction:column;gap:6px;margin-top:10px;display:flex}.tbm-field-label{color:var(--text-600);font-size:15px;font-weight:700}.tbm-key-line{border:1.5px dashed var(--text-400);color:var(--text-600);border-radius:10px;margin:0 0 12px;padding:12px 16px;font-size:17px}.tbm-key-line.on{border:2px solid var(--risk-high);color:var(--text-900);background:#fff5f5;font-weight:700}.tbm-key-line b{color:var(--risk-high);margin-right:8px}.tbm-hz-list{flex-direction:column;gap:12px;display:flex}.tbm-hz{border:1.5px solid var(--line);background:#fff;border-radius:12px;overflow:hidden}.tbm-hz-high{border-left:6px solid var(--risk-high)}.tbm-hz.is-key{box-shadow:0 0 0 3px #dc262659}.tbm-hz-main{text-align:left;width:100%;color:inherit;background:0 0;border:0;align-items:stretch;padding:0;display:flex}.tbm-hz-photo{background:var(--bg-thead);min-height:190px;color:var(--text-400);flex:0 0 260px;justify-content:center;align-items:center;font-size:14px;display:flex}.tbm-hz-photo img{object-fit:cover;width:100%;height:100%;max-height:260px;display:block}.tbm-hz-body{flex-direction:column;flex:1;gap:8px;min-width:0;padding:14px 18px;display:flex}.tbm-hz-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tbm-hz-top .badge-risk{padding:4px 12px;font-size:15px}.tbm-hz-stage{color:var(--text-600);font-size:14px}.tbm-key-badge{background:var(--risk-high);color:#fff}.tbm-hz-text{color:var(--text-900);overflow-wrap:anywhere;font-size:19px;font-weight:800}.tbm-hz-measures{color:var(--text-900);flex-direction:column;gap:4px;font-size:16px;display:flex}.tbm-hz-measure{overflow-wrap:anywhere}.tbm-site-check{width:100%;min-height:60px;color:var(--risk-high);text-align:left;background:#fff5f5;border:0;border-top:1.5px solid #f4bfc1;align-items:center;gap:12px;padding:10px 18px;font-size:18px;font-weight:800;display:flex}.tbm-site-check.on{color:var(--green-600);background:#eefaf2;border-top-color:#b7e2c4}.tbm-check-at{margin-left:auto;font-size:15px;font-weight:700}.tbm-impl{border-top:1px solid var(--line);color:var(--green-600);margin:0;padding:10px 18px;font-size:14px;font-weight:700}.tbm-warn{color:var(--risk-mid);margin:4px 0 0;font-size:16px;font-weight:800}.tbm-photo-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.tbm-file{cursor:pointer;position:relative}.tbm-file input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.tbm-photo-preview{object-fit:cover;border-radius:8px;width:120px;height:90px}.tbm-photo-hint{color:var(--text-600);margin:0 0 10px;font-size:15px}.tbm-group-photos{flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none;display:flex}.tbm-group-photo{flex-direction:column;align-items:center;gap:6px;display:flex}.tbm-group-photo .tbm-photo-preview{border:1px solid var(--line);width:160px;height:120px}.tbm-photo-empty{background:var(--bg-thead);display:block}.tbm-file.disabled{opacity:.55;cursor:not-allowed}.tbm-photo-note{color:var(--risk-mid);font-size:15px;font-weight:700}.tbm-sign-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.tbm-sign{border:1.5px solid var(--line);border-radius:12px;flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex}.tbm-sign.done{border-color:#b7e2c4}.tbm-sign-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.tbm-health-flag{color:var(--danger);font-size:13px;font-weight:700}.tbm-sign-box{border:2px dashed var(--text-400);height:110px;color:var(--text-600);background:#fafbfd;border-radius:10px;justify-content:center;align-items:center;font-size:17px;font-weight:700;display:flex}.tbm-sign-box.signed{background:#fff;border-style:solid;border-color:#b7e2c4}.tbm-sign-box img{object-fit:contain;max-width:100%;max-height:100px}.tbm-sign-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.tbm-sign-at{color:var(--text-600);font-size:14px}.tbm-bar{z-index:5;border-radius:var(--radius);background:#fff;align-items:center;gap:12px;margin-top:4px;padding:12px 16px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 16px #101e3f1a}.tbm-bar-msg{text-align:center;min-width:0;color:var(--danger);overflow-wrap:anywhere;flex:1;font-size:16px;font-weight:700}.tbm-done{text-align:center;padding:32px 22px}.tbm-done-mark{width:72px;height:72px;color:var(--green-600);background:#e7f6ec;border-radius:999px;justify-content:center;align-items:center;margin:0 auto 8px;font-size:40px;font-weight:900;display:inline-flex}.tbm-done-title{color:var(--navy-800);margin:0 0 16px;font-size:26px;font-weight:800}.tbm-done-list{text-align:left;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;max-width:560px;margin:0 auto 20px;font-size:17px;display:grid}.tbm-done-list dt{color:var(--text-600);font-weight:700}.tbm-done-list dd{overflow-wrap:anywhere;margin:0}.tbm-done-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.tbm-done-actions .btn{text-decoration:none}@media (width<=900px){.tbm-hz-main{flex-direction:column}.tbm-hz-photo{flex:none;height:240px;min-height:0}}@media (width<=560px){.tbm-step{gap:6px;padding:6px;font-size:15px}.tbm-section{padding:14px}.tbm-btn-lg{min-width:0;padding:10px 16px}.tbm-add-row{flex-wrap:wrap}}.tbm-table{min-width:960px}.tbm-row{cursor:pointer}.tbm-row:hover>td{background:#f7f9fd}.tbm-row-link{font-weight:700}.tbm-missing-row>td{background:#fdecec;border-bottom-color:#f4bfc1;font-weight:700;color:var(--danger)!important}.tbm-unconfirmed{margin-left:6px;font-size:11.5px}.tbm-cell-warn{color:var(--risk-mid);font-weight:700}.tbm-reports{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tbm-report{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 10px;display:flex}.tbm-report-body{flex:260px;min-width:0}.tbm-report-text{overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:600}.tbm-report-meta{color:var(--text-600);margin:2px 0 0;font-size:12.5px}.tbm-report-actions{gap:6px;display:inline-flex}.tbm-journal{flex-direction:column;gap:8px;font-size:13.5px;display:flex}.tbm-j-info{border-collapse:collapse;width:100%}.tbm-j-info th,.tbm-j-info td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:7px 10px}.tbm-j-info th{background:var(--bg-thead);white-space:nowrap;width:120px;font-weight:700}.tbm-j-title{color:var(--navy-800);margin:10px 0 2px;font-size:15px;font-weight:800}.tbm-j-key{border:2px solid var(--risk-high);background:#fff5f5;border-radius:8px;margin:0;padding:9px 12px;font-weight:600}.tbm-j-key b{color:var(--risk-high);margin-right:6px}.tbm-j-table{min-width:720px}.tbm-j-sub{color:var(--text-600);font-size:12px;display:block}.tbm-j-pre{white-space:pre-wrap}.tbm-j-check{min-width:140px;font-size:12.5px}.tbm-j-muted{color:var(--text-600);margin:0;font-size:13px}.tbm-j-ppe{white-space:nowrap;margin-right:12px;display:inline-block}.tbm-j-ppe.missing{color:var(--danger);font-weight:700}.tbm-j-reports{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tbm-j-reports li{border:1px solid var(--line);border-radius:8px;align-items:flex-start;gap:10px;padding:6px 8px;display:flex}.tbm-j-report-photo{object-fit:cover;border-radius:6px;width:96px;height:72px}.tbm-j-photos{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.tbm-j-photos a{border:1px solid var(--line);cursor:zoom-in;border-radius:6px;display:block;overflow:hidden}.tbm-j-photos a:hover,.tbm-j-photos a:focus-visible{border-color:var(--blue-500);outline:none;box-shadow:0 0 0 3px #3b82f633}.tbm-j-photos img{object-fit:cover;width:192px;height:144px;display:block}.tbm-j-photos .tbm-j-sub{text-align:center;padding:2px 0}.tbm-photo-chip{margin-left:6px;padding:2px 8px;font-size:11.5px}.tbm-j-issue{color:var(--danger);font-weight:700}.tbm-j-sig{object-fit:contain;max-width:140px;max-height:48px}.tbm-out-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.tbm-out{border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:10px;min-width:0;padding:16px;display:flex}.tbm-out-title{margin:0;font-size:15px;font-weight:800}.tbm-out-range{align-items:center;gap:6px;display:flex}.tbm-out-range .input{flex:1;min-width:0;padding:7px 8px;font-size:13px}.tbm-out .btn{margin-top:auto}.tbm-out-error{color:var(--danger);margin:0 0 10px}@media (width<=720px){.sa-status-actions{margin-left:0}}.tbm-out-note{margin:0 0 10px}.sa-revise{margin-left:auto}.sa-revision{border-left:4px solid var(--blue-600)}.sa-applied{border:1px solid var(--blue-100);background:#f3f7ff;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;padding:10px 14px;display:flex}.sa-history{gap:12px;margin:0;padding:0;list-style:none;display:grid}.sa-history-head{flex-wrap:wrap;align-items:center;gap:10px;font-weight:600;display:flex}.sa-history-rows{gap:4px;margin:8px 0 0;padding:0 0 0 12px;font-size:14px;list-style:none;display:grid}.sa-chg{text-align:center;border-radius:4px;min-width:34px;margin-right:6px;padding:1px 6px;font-size:12px;font-weight:700;display:inline-block}.sa-chg-added{color:var(--risk-low);background:#e7f6ec}.sa-chg-changed{color:var(--risk-mid);background:#fff4e0}.sa-chg-removed{color:var(--risk-high);background:#fdecec}.sa-chg-grade{white-space:nowrap;margin-left:8px}.member-picker{border:1px solid var(--line);background:var(--bg-card);border-radius:8px;padding:10px 12px}.member-picker-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.member-picker-summary{color:var(--navy-800);font-size:13px;font-weight:600}.member-picker-search{width:200px;max-width:100%}.member-picker-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 12px;max-height:240px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.member-picker-row{border:1px solid #0000;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;display:flex}.member-picker-row.is-on{background:var(--blue-100);border-color:#cfe0ff}.member-picker .mp-member,.member-picker .mp-pm{color:var(--text-900);cursor:pointer;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:500;display:inline-flex}.member-picker .mp-member{min-width:0}.member-picker .mp-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.member-picker .mp-me{background:var(--slate-100);color:var(--slate-600);border-radius:999px;padding:0 6px;font-size:11px}.member-picker .mp-lock{color:var(--text-600);white-space:nowrap;font-size:11px}.member-picker .mp-pm{border:1px solid var(--line);color:var(--text-600);border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:12px;font-weight:700}.member-picker .mp-pm.is-on{border-color:var(--navy-800);background:var(--navy-800);color:#fff}.member-names{flex-wrap:wrap;gap:4px 10px;display:inline-flex}.pm-badge{background:var(--navy-800);color:#fff;vertical-align:1px;border-radius:999px;margin-left:4px;padding:0 6px;font-size:11px;font-weight:700;display:inline-block}.project-edit-members{margin-top:18px}.cad-survey-check{color:#a85300;white-space:nowrap;background:#fff3e6;border:1px solid #f28c28;border-radius:999px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:600;line-height:16px;display:inline-block}.dmg-match{color:var(--navy-900);background:#eef9fb;border:1px solid #b9e6ec;border-radius:6px;margin:0 0 6px;padding:6px 8px;font-size:12px;font-weight:600}.dmg-match.warn{background:#fff6ec;border-color:#f5c48f}.dmg-row.missing{color:var(--text-600);cursor:default;background:#fafafa}.dmg-row.missing .dmg-row-no{color:#6b7480;background:#fff;border:1.5px dashed #9aa4b2}.rv-page{box-sizing:border-box;flex-direction:column;max-width:none;height:calc(100vh - 60px);min-height:640px;padding-bottom:12px;display:flex}.rv-top{flex-direction:column;flex:none;gap:10px;margin-bottom:12px;padding:14px 18px;display:flex}.rv-top-row{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.rv-project{color:var(--navy-900);font-size:17px}.rv-drawing-pick{align-items:center;gap:6px;margin-left:auto;display:flex}.rv-drawing-select{width:auto;min-width:260px;padding:6px 10px}.rv-total{color:var(--warn-700);background:var(--warn-100);border:1px solid var(--warn-200);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700}.rv-counts{gap:8px;display:flex}.rv-count{background:var(--bg-thead);border-radius:999px;padding:2px 10px;font-size:13px}.rv-seg{border:1px solid var(--navy-800);border-radius:8px;display:inline-flex;overflow:hidden}.rv-seg-btn{color:var(--navy-800);background:#fff;border:0;padding:6px 12px;font-size:13px}.rv-seg-btn+.rv-seg-btn{border-left:1px solid var(--navy-800)}.rv-seg-btn.on{background:var(--navy-800);color:#fff}.rv-bulk{gap:6px;margin-left:auto;display:flex}.rv-notice{color:var(--green-600);margin:0;font-size:13px}.pdf-cad-form{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.pdf-cad-form label{align-items:center;gap:4px;font-size:13px;display:inline-flex}.pdf-cad-form .input{width:90px}.pdf-cad-form .select{width:auto}.pdf-cad-form .hint-msg{flex-basis:100%;margin:0}.rv-app-photos{color:var(--slate-600);margin:0;font-size:12px}.rv-merge-guide{border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;margin:0;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.rv-merge-todo{color:var(--warn-700);background:var(--warn-100)}.rv-merge-done{color:var(--green-600);background:var(--slate-100)}.rv-grid{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(280px,340px) minmax(0,1fr) minmax(320px,400px);gap:12px;min-height:0;display:grid}.rv-grid>.card{min-height:0;padding:12px;overflow:auto}.rv-grid>.rv-panel-card{padding:0;overflow:hidden}@media (width<=1100px){.rv-page{height:auto}.rv-grid{grid-template-rows:none;grid-template-columns:1fr}.rv-grid>.card{height:auto}}.rv-filters{border-bottom:1px solid var(--line);flex-direction:column;gap:6px;margin-bottom:6px;padding-bottom:8px;display:flex}.rv-chip-row{flex-wrap:wrap;gap:4px;display:flex}.rv-chip{border:1px solid var(--line);color:var(--text-600);background:#fff;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:12px;display:inline-flex}.rv-chip.on{background:var(--navy-800);border-color:var(--navy-800);color:#fff}.rv-chip-author{border-width:2px}.rv-chip-author.on{background:var(--blue-100);color:var(--navy-900)}.rv-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.rv-list{margin:0;padding:0;list-style:none}.rv-row{text-align:left;border:1px solid #0000;border-bottom-color:var(--line);background:#fff;border-radius:6px;align-items:center;gap:8px;width:100%;padding:7px 6px;display:flex}.rv-row:hover{background:var(--bg-thead)}.rv-row.on{border-color:var(--navy-700);background:var(--blue-100)}.rv-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.rv-row-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.rv-row-size{color:var(--text-600);font-weight:400}.rv-row-sub{color:var(--text-600);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.rv-mode{color:#fff;border-radius:4px;flex:none;padding:1px 6px;font-size:12px;font-weight:700}.rv-state{border:1px solid var(--line);white-space:nowrap;border-radius:999px;flex:none;padding:1px 8px;font-size:11px}.rv-state-draft{color:var(--text-600);border-style:dashed;border-color:#9aa4b2}.rv-state-confirmed{color:var(--green-600);background:#e7f6ec;border-color:#9fd8b1}.rv-state-rejected,.rv-state-merged{color:var(--text-400);background:#f3f4f6}.rv-flag{color:var(--warn-700);background:var(--warn-100);border:1px solid var(--warn-200);border-radius:4px;padding:0 5px;font-size:11px}.rv-overlap{color:var(--violet-700);background:var(--violet-100);border-radius:4px;padding:0 5px;font-size:11px}.rv-canvas-card{flex-direction:column;display:flex}.rv-canvas-bar{align-items:center;gap:10px;margin-bottom:8px;display:flex}.rv-zoom{align-items:center;gap:6px;margin-left:auto;font-size:12px;display:inline-flex}.rv-canvas{border:1px solid var(--line);cursor:grab;-webkit-user-select:none;user-select:none;background:#f8fafc;border-radius:8px;flex:1;min-height:0;overflow:auto}.rv-canvas.dragging{cursor:grabbing}.rv-canvas-inner{margin:0 auto;position:relative}.rv-canvas-img{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.rv-canvas-blank{background:#fff}.rv-canvas-svg{width:100%;height:100%;position:absolute;inset:0}.rv-marker{cursor:pointer}.rv-panel{flex-direction:column;gap:10px;display:flex}.rv-panel-head{align-items:center;gap:8px;display:flex}.rv-panel-title{flex:1;min-width:0;font-size:15px}.rv-sub{color:var(--navy-900);margin:4px 0 0;font-size:13px}.rv-ink{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.rv-ink svg{width:100%;height:100%;display:block}.rv-ink-empty{color:var(--text-400);justify-content:center;align-items:center;font-size:13px;display:flex}.rv-flags{flex-wrap:wrap;gap:4px;margin:0;display:flex}.rv-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;margin:0;font-size:13px;display:grid}.rv-meta dt{color:var(--text-400);font-size:11px}.rv-meta dd{margin:0}.rv-damage{background:var(--bg-thead);border-radius:6px;padding:6px 10px;font-size:13px}.rv-damage-label{color:var(--text-600);margin-right:6px}.rv-form{flex-direction:column;gap:8px;display:flex}.rv-field{color:var(--text-600);flex-direction:column;gap:2px;font-size:12px;display:flex}.rv-field .input{padding:7px 10px;font-size:14px}.rv-readings,.rv-name-chips{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.rv-readings-label{color:var(--text-600);margin-right:4px;font-size:12px}.rv-actions{flex-wrap:wrap;gap:6px;display:flex}.rv-next{margin-left:auto}.rv-group{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding-top:8px;display:flex}.rv-group-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.rv-group-list li{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:4px;padding:6px;display:flex}.rv-group-list li.on{border-color:var(--navy-700)}.rv-group-pick{align-items:center;gap:4px;font-size:12px;display:flex}.rv-group-meta{flex-wrap:wrap;align-items:center;gap:4px;font-size:12px;display:flex}.review-bar{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 12px;display:flex}.review-bar-badge{color:var(--navy-800);background:#fff;border-radius:999px;margin-left:6px;padding:0 8px;font-size:12px;font-weight:700;display:inline-block}.review-chip{color:var(--warn-700);background:var(--warn-100);border:1px solid var(--warn-200);border-radius:999px;padding:0 7px;font-size:11px;font-weight:700;position:absolute;top:80px;right:18px}.fp-modal{width:min(760px,100%)}.fp-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px;display:grid}.fp-form label{color:var(--text-600);flex-direction:column;gap:4px;font-size:13px;display:flex}.fp-table{border-collapse:collapse;width:100%;font-size:13px}.fp-table th,.fp-table td{border-bottom:1px solid var(--line);text-align:left;padding:6px 8px}.fp-table th{background:var(--bg-thead)}.fp-miss{color:var(--danger)}.rv-bar{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.rv-bar .rv-drawing-pick{flex:1;justify-content:center;gap:8px;min-width:0;margin-left:0}.rv-bar .rv-drawing-pick .btn{width:44px;height:44px;color:var(--navy-900);border:2px solid var(--navy-900);padding:0;font-size:22px;font-weight:700}.rv-bar .rv-drawing-pick .btn:disabled{color:#c8cfdb;border-color:#c8cfdb}.rv-progress{flex-direction:column;flex:none;gap:4px;width:190px;display:flex}.rv-progress-text{color:#4a5468;white-space:nowrap;font-size:12px}.rv-progress-text strong{color:#1b2333}.rv-progress-track{background:#e8ecf3;border-radius:2px;height:4px;overflow:hidden}.rv-progress-fill{background:#2f9e44;height:100%;transition:width .3s;display:block}.rv-bar .rv-drawing-select{min-width:320px;height:44px;color:var(--navy-900);border:2px solid var(--navy-900);background-color:#eef4ff;border-radius:8px;flex:0 640px;padding:0 14px;font-size:17px;font-weight:700}.rv-overlap-btn{color:#d9480f;background:#fff4e6;border:1px solid #ffc078;font-weight:700}.rv-overlap-btn:hover,.rv-overlap-btn.on{background:#ffe8cc;border-color:#fd7e14}.rv-tabs{gap:6px;display:flex}.rv-tab{color:#4a5468;cursor:pointer;background:#f1f3f7;border:0;border-radius:9px;flex:1;padding:9px 0;font-size:14px}.rv-tab strong{margin-left:2px;font-size:16px}.rv-tab.on{background:var(--navy-800);color:#fff;font-weight:700}.rv-more{align-self:flex-start;margin:6px 0 2px;font-size:13px}.rv-list-card{flex-direction:column;display:flex}.rv-list-head{color:#7a8599;margin:12px 2px 4px;font-size:12.5px;font-weight:600}.rv-list-groups{flex:1}.rv-auto-note{border-top:1px solid var(--line);color:#4a5468;margin:10px 0 0;padding:10px 4px 0;font-size:12.5px}.rv-auto-note strong{color:#2b8a3e}.rv-dot-state{border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;font-weight:800;display:inline-flex}.rv-dot-state.warn{color:#d9480f;background:#fff4e6;border:1.5px solid #ffa94d}.rv-dot-state.ok{color:#2b8a3e;background:#ebfbee;border:1.5px solid #8ce99a}.rv-seg-sm .rv-seg-btn{padding:4px 10px;font-size:12.5px}.rv-state-check{color:#d9480f;background:#fff4e6;border-color:#ffa94d}.rv-meta-line{color:#7a8599;flex-wrap:wrap;align-items:center;gap:2px 4px;margin:-4px 0 0;font-size:12.5px;display:flex}.rv-panel{flex-direction:column;gap:0;height:100%;display:flex}.rv-panel-scroll{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 14px;display:flex;overflow:auto}.rv-panel-actions{border-top:1px solid var(--line);background:#fafbfd;flex:none;padding:12px 14px}.rv-panel-actions .rv-actions{flex-wrap:nowrap}.rv-confirm{flex:1;padding-top:11px;padding-bottom:11px;font-size:16px}.rv-actions kbd,.rv-readings kbd{opacity:.75;border:1px solid;border-radius:4px;margin-left:4px;padding:0 5px;font-family:inherit;font-size:11px;font-weight:600}.rv-readings kbd{margin:0 2px 0 0}.rv-keys{color:#7a8599;text-align:center;margin:6px 0 0;font-size:12px}.rv-field-name .input,.rv-field-size_text .input,.rv-field-count .input{font-size:16px;font-weight:600}.rv-need{color:#d9480f;font-style:normal;font-weight:600}.rv-input-need{background:#fffbf5;border-color:#ffa94d}.rv-row-dot{border-radius:50%;flex:none;width:9px;height:9px}.rv-row{align-items:flex-start}.rv-row-ink{border:1px solid var(--line);background:#fff;border-radius:6px;flex:none;width:76px;overflow:hidden}.rv-row-ink .rv-ink{border:0;border-radius:0}.rv-row-ink-none{height:48px;color:var(--text-400);justify-content:center;align-items:center;font-size:11px;display:flex}.rv-row-title.warn{color:#d9480f}.rv-row-todo{color:var(--text-600);font-size:12px}.rv-row-todo.warn{color:#d9480f;font-weight:600}.rv-row-read{color:var(--text-600);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.rv-row-who{color:var(--text-400);align-items:center;gap:5px;font-size:11.5px;display:flex}.rv-overlap-group{background:#fff9f2;border:1px solid #ffc078;border-radius:8px;margin:6px 0;padding:2px 4px 4px}.rv-overlap-group-head{color:#d9480f;padding:3px 4px 2px;font-size:11.5px;font-weight:700;display:block}.rv-overlap-group .rv-row{background:0 0}.rv-overlap-group .rv-row.on{background:var(--blue-100)}.rv-overlap-group li:last-child .rv-row{border-bottom-color:#0000}.media-att{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.media-att-photos{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;display:grid}.media-att-thumb{border:1px solid var(--line);aspect-ratio:4/3;cursor:zoom-in;background:#f3f5f9;border-radius:6px;padding:0;position:relative;overflow:hidden}.media-att-thumb img{object-fit:cover;width:100%;height:100%;display:block}.media-att-no{color:#fff;background:#0009;border-radius:4px;padding:0 5px;font-size:11px;position:absolute;bottom:4px;left:4px}.media-att-voice{align-items:center;gap:8px;display:flex}.media-att-voice audio{flex:1;min-width:0;height:36px}.media-att-label{color:var(--text-600);font-size:12px}.media-att-full{z-index:1000;background:#0a0e18e0;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:fixed;inset:0}.media-att-full img{object-fit:contain;border-radius:6px;max-width:100%;max-height:calc(100% - 60px)}.media-att-full-bar{color:#fff;align-items:center;gap:10px;display:flex}.rv-row-media{color:var(--navy-700);font-weight:600}.rv-row-photo{object-fit:cover;width:100%;height:48px;display:block}.dmg-row-media{color:var(--navy-700);font-weight:600}.dmg-row-media-box{padding:8px 6px 4px 34px}.dmg-badge.has-media:after{content:"📷";font-size:10px;line-height:1;position:absolute;top:-10px;right:-10px}
