@charset "UTF-8";
:root{--bg:#f7f8fc;--paper:#fff;--ink:#202436;--muted:#858b9b;--line:#e9ebf2;--purple:#6556ca;--pale:#f0edfc;--green:#38876c;--amber:#ac7f33;--shadow:0 12px 36px #24243d09;font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}
*{box-sizing:border-box}html,body,#app{width:100%;min-width:0;min-height:100%}body{margin:0;min-height:100vh}#app{min-height:100vh}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #b7aaf1}a{color:var(--purple);text-decoration:none}button{border:1px solid var(--line);border-radius:8px;padding:10px 15px;background:white;color:var(--ink);transition:background .15s,box-shadow .15s}button:hover:not(:disabled){background:#f6f4fc;border-color:#d2cbed}button.primary{color:white;background:#28263f;border-color:#28263f}button.primary:hover:not(:disabled){background:#433b68}button.accent{background:var(--pale);color:var(--purple);border-color:#e4dcf9}button.danger{color:#b64b54}button.link{border:0;background:transparent;color:var(--purple);padding:5px 0}button.small{font-size:12px;padding:7px 10px}.btn-icon{padding:8px;width:36px;height:36px}button svg{vertical-align:middle;margin-right:7px}svg{width:18px;height:18px;flex-shrink:0;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}input,select,textarea{border:1px solid #e0e3ed;border-radius:7px;padding:10px 12px;background:#fdfdff;color:var(--ink);min-width:0;max-width:100%}input:focus,select:focus,textarea:focus{border-color:#a292e1;outline:2px solid #ede8fc}textarea{width:100%;resize:vertical;min-height:84px;line-height:1.7}input[type=checkbox]{width:16px;height:16px;accent-color:var(--purple);cursor:pointer}input[type=file]{max-width:100%}label{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;margin-bottom:12px}h2{font-size:21px;letter-spacing:-.4px;margin-bottom:8px}h3{font-size:16px;margin-bottom:12px}p{line-height:1.8}.muted{color:var(--muted)}.tiny{font-size:12px}.eyebrow{color:#9691ac;font-size:11px;letter-spacing:1.6px;font-weight:650;margin-bottom:12px}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack{display:grid;gap:16px}.spacer{flex:1}.grow{flex:1;min-width:0}.hidden{display:none!important}.page{width:100%;min-width:0;margin:0;padding:35px 40px 45px}.page-header{margin-bottom:28px}.page-header p{margin-bottom:0}.card{background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px #22203302}.pad{padding:24px}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;line-height:1.4;padding:5px 10px;border-radius:20px;background:#f0f1f5;color:#818796;white-space:nowrap}.pill.purple{background:#efecfc;color:var(--purple)}.pill.green{background:#eaf6ef;color:var(--green)}.pill.amber{background:#fff5e3;color:var(--amber)}.pill.red{background:#fff0f0;color:#ae5760}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#efedf9;color:#7663b6;font-size:12px;width:30px;height:30px;flex-shrink:0}.avatar.large{width:38px;height:38px;background:#f1e9de;color:#9f8667}.badge-count{font-size:11px;color:#9b96ad;background:#f1eff7;padding:2px 7px;border-radius:6px}.sidebar{width:218px;position:fixed;inset:0 auto 0 0;background:white;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:26px 16px 14px;z-index:20}.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:750;padding:0 6px;margin-bottom:42px}.brand-icon{display:flex;justify-content:center;align-items:center;background:var(--purple);color:white;width:33px;height:33px;border-radius:9px;font-size:25px}.nav-label{font-size:11px;color:#a1a4b0;padding:0 12px;margin:0 0 13px}.nav{display:grid;gap:6px}.nav button{display:flex;align-items:center;gap:11px;text-align:left;background:transparent;border:0;padding:11px 12px;color:#777e90;font-size:13px}.nav button svg{margin:0;color:#8c91a2}.nav button.active{background:var(--pale);color:var(--purple);font-weight:650}.nav button.active svg{color:var(--purple)}.nav-sep{margin-top:30px}.sidebar-bottom{margin-top:auto}.quota{background:#f8f7fc;border-radius:10px;padding:16px;margin:24px 0}.quota h3{font-size:12px}.quota strong{font-size:23px}.progress{height:5px;background:#eeedf5;border-radius:4px;overflow:hidden}.progress i{display:block;height:100%;background:#9586dd;border-radius:4px}.userbox{border-top:1px solid var(--line);padding-top:15px;display:flex;gap:10px;align-items:center}.workspace{margin-left:218px;min-height:100vh}.topbar{height:73px;display:flex;align-items:center;justify-content:space-between;padding:0 39px;border-bottom:1px solid var(--line);background:#ffffffb8;gap:16px}.breadcrumbs{color:#969aaa;font-size:12px}.topbar select{font-size:12px;background:#fff;max-width:240px}.preview-ribbon{font-size:11px;color:#9386aa;background:#f3f0fa;border-bottom:1px solid #eae5f4;padding:7px 40px;display:flex;justify-content:space-between;gap:12px}.preview-ribbon a{color:#7d6ba3}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:28px}.stat{padding:20px 22px;position:relative}.stat label{display:block;color:#969bab;font-size:12px}.stat strong{display:inline-block;font-size:31px;margin-top:15px;line-height:1;color:var(--purple)}.stat span{font-size:12px;color:#a0a4b0;margin-left:12px}.stat .stat-icon{position:absolute;right:20px;top:20px;background:#f7f6fc;color:#9d93be;padding:8px;border-radius:8px;line-height:0}.tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin-bottom:22px;overflow:auto}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;padding:10px 0 15px;white-space:nowrap;color:#989dab}.tabs button.active{color:#4a425f;border-bottom-color:var(--purple);font-weight:650}.project-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:start}.table-wrap{overflow-x:auto}.table-toolbar{display:flex;align-items:center;gap:12px;padding:18px}.table-toolbar input[type=search]{flex:1;max-width:360px;background:#f9f9fd;font-size:12px}.table-toolbar select{font-size:12px}.table-toolbar .spacer{min-width:0}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;white-space:nowrap}th{font-weight:400;color:#9aa0af;background:#fbfcfe;font-size:11px;padding:15px 18px}td{padding:17px 18px;border-top:1px solid #f0f1f6}td strong{font-size:14px;font-weight:650}td small{display:block;color:#a5a9b5;font-size:10px;margin-top:5px}.device-row:hover{background:#fcfbff}td button{white-space:nowrap}.table-footer{padding:17px 20px;font-size:11px;color:#9da2b0;display:flex;justify-content:space-between}.task-item{display:flex;gap:12px;border-bottom:1px solid var(--line);padding:22px 0}.task-item:last-of-type{border:0}.task-item .num{font-size:11px;background:#f2effb;color:#9587c8;border-radius:7px;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.task-item h3{font-size:13px;margin:1px 0 8px}.task-item p{font-size:11px;color:#a1a6b3;margin:0}.full{width:100%}.empty{text-align:center;padding:48px 22px;color:#8d94a3}.empty svg{width:34px;height:34px;color:#b6afcc;margin-bottom:12px}.empty h3{color:#606a7b;font-size:16px;margin:6px 0}.empty p{font-size:12px;max-width:470px;margin:10px auto 18px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.project-card{padding:25px;transition:transform .15s,box-shadow .15s}.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.project-card .folder{color:#9a8cc6;background:#f3effc;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:11px;margin-bottom:22px}.project-card h2{font-size:18px;margin:0 0 10px}.project-card p{font-size:12px;color:#9ca2af}.project-card footer{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.member-stack{display:flex;padding-left:4px}.member-stack .avatar{border:2px solid white;margin-left:-4px;width:25px;height:25px;font-size:9px}.notice{border-radius:9px;padding:13px 16px;font-size:12px;line-height:1.8;background:#f4f1fc;color:#8b79ac}.notice.amber{background:#fff7e8;color:#a8874c}.notice.green{background:#edf8f1;color:#549278}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:22px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.field{display:grid;gap:8px;font-size:12px;color:#7b8290}.field b{font-weight:500;color:#656d7e}.field input,.field select{width:100%}.field-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.field-header button{font-size:10px}.field.wide{grid-column:1/-1}.focus-header{height:73px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:0 28px}.focus-header h2{margin:0;font-size:22px}.focus-title{border-left:1px solid var(--line);padding-left:22px;display:flex;align-items:center;gap:20px}.focus-tabs{background:#f9faff;padding:10px 28px 0}.focus-tabs .tabs{margin-bottom:0;gap:36px}.focus-page{padding:24px 28px 35px}.review-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(380px,1fr);gap:22px;align-items:start}.source-pane{background:#e9ecf3;border-radius:12px;padding:20px;min-height:690px;display:flex;flex-direction:column;position:relative}.source-toolbar{color:#7b8596;font-size:12px;display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.source-toolbar select{max-width:230px;background:#f5f6fa;font-size:12px}.source-paper{margin:0 auto;background:white;width:min(100%,570px);min-height:535px;box-shadow:0 3px 8px #30364d06;padding:36px;color:#7c8795}.source-paper h2{text-align:center;font-size:22px;color:#384252;margin-bottom:30px}.source-paper .source-line{border-bottom:1px solid #e9edf3;padding:15px 0;display:flex;gap:25px;font-size:12px}.source-paper .source-line span{width:95px;flex-shrink:0;color:#99a1af}.source-actions{display:flex;gap:10px;margin-top:20px;align-items:center;flex-wrap:wrap}.source-frame{height:570px;width:100%;border:0;background:#fff;border-radius:4px}.source-image{max-width:100%;max-height:565px;object-fit:contain;display:block;margin:auto;transform-origin:center}.edit-card{padding:25px}.edit-card .form-grid{margin:24px 0}.save-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:18px;margin-top:22px;flex-wrap:wrap}.save-state{font-size:11px;color:#999fad}.config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.check-card{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);padding:13px;border-radius:8px;font-size:12px;color:#737c8f;line-height:1.7}.check-card:has(input:checked){border-color:#bcb0e5;background:#fcfaff}.check-card input{flex-shrink:0;margin-top:3px}.risk-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,.95fr);gap:22px}.risk-catalog{max-height:590px;overflow:auto}.catalog-item{border-top:1px solid var(--line)}.catalog-item summary{padding:16px;cursor:pointer;display:list-item;font-size:13px;line-height:1.8}.catalog-item summary span{color:#a3a8b4;font-size:11px;margin-left:10px}.problem{padding:12px 17px;border-top:1px solid #f0f1f5;font-size:12px;line-height:1.7;display:flex;align-items:flex-start;gap:12px}.problem:hover{background:#faf8ff}.problem .description{flex:1;min-width:0}.problem small{display:block;color:#a6aab6;margin-top:6px}.problem button{flex-shrink:0}.risk-card{padding:18px;border-bottom:1px solid var(--line)}.risk-card:last-child{border-bottom:0}.risk-card textarea{font-size:12px;min-height:65px}.risk-card label{font-size:11px;color:#989eac}.assessment{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:12px}.assessment select{padding:7px;width:67px}.assessment small{color:#959aac}.risk-title{display:flex;align-items:center;gap:10px;margin-bottom:14px}.risk-title strong{font-size:14px}.scroll-table{max-height:650px;overflow:auto}.scroll-table th{position:sticky;top:0;z-index:1}.photos-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.photo-slot{padding:18px}.photo-stage{margin:15px 0;background:#f6f7fb;border:1px dashed #d8dce8;border-radius:9px;min-height:190px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#a4aaba;gap:10px;overflow:hidden}.photo-stage img{width:100%;height:210px;object-fit:contain}.photo-stage svg{width:30px;height:30px}.photo-actions{display:flex;gap:8px;flex-wrap:wrap}.activity{display:grid;gap:0}.activity-item{padding:17px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.8}.activity-item small{display:block;color:#a3a9b6}.file-item{padding:20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px}.file-item .file-icon{background:#f0edfa;color:#9c8bc5;padding:13px;border-radius:10px}.file-item h3{margin-bottom:6px;font-size:14px}.member-card{padding:22px;display:flex;align-items:center;gap:14px}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.capability{padding:20px}.capability p{color:#969dac;font-size:12px;margin:12px 0 0}.boot{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:100vh}.boot h1{margin:25px 0 10px}.boot p{color:#929aaa}.boot button{margin-top:12px}#toasts{position:fixed;bottom:24px;right:24px;display:grid;gap:10px;z-index:200;max-width:430px}.toast{background:#2e2b43;color:white;border-radius:10px;padding:14px 18px;font-size:12px;box-shadow:0 8px 30px #24233c25;line-height:1.8}.toast.error{background:#8a4557}dialog{border:1px solid #e9e6f2;border-radius:15px;padding:0;max-width:min(820px,94vw);width:560px;box-shadow:0 30px 100px #1f183522;color:var(--ink)}dialog.wide{width:820px}dialog::backdrop{background:#17152b38;backdrop-filter:blur(3px)}.modal-head{padding:24px 25px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.modal-head h2{font-size:20px;margin:0}.modal-body{padding:24px 25px;max-height:70vh;overflow:auto}.modal-footer{padding:18px 25px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:10px}.modal-body .field{margin-bottom:18px}.modal-body p{color:#8990a0;font-size:12px}.modal-error{margin-top:14px;color:#b65a65;font-size:12px;line-height:1.8}.number-list{max-height:230px;overflow:auto;border:1px solid var(--line);border-radius:8px;margin:20px 0}.number-list div{display:flex;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);font-size:12px}.help-list{font-size:12px;color:#8990a0;line-height:2}.file-drop{padding:32px;border:1px dashed #cfc8e6;border-radius:10px;text-align:center;background:#fcfaff}.status-dot{display:inline-block;width:6px;height:6px;background:#67a38c;border-radius:50%;margin-right:6px}.dirty{color:#b6955f}.layout-toggle{display:none}.snapshot-note{margin-bottom:20px}.crop-area{position:relative;user-select:none;cursor:crosshair;overflow:hidden}.crop-rect{position:absolute;border:2px solid #8361d1;background:#9470df25;pointer-events:none}.table-toolbar.wrapping{flex-wrap:wrap}.page-note{margin-top:22px;font-size:11px;color:#a0a6b3;line-height:1.8}.role-options{display:flex;gap:10px}.role-option{flex:1;border:1px solid var(--line);padding:14px;border-radius:9px}.signature-preview{height:60px;max-width:130px;object-fit:contain}.row-selected{background:#faf8ff}.error-card{color:#a85a69;background:#fff5f5;border:1px solid #f2dce1;padding:20px;border-radius:10px}
@media(min-width:1800px){.page{padding-top:42px}.review-layout{grid-template-columns:minmax(0,1.1fr) minmax(500px,1fr)}}
@media(max-width:1250px){.sidebar{width:190px}.workspace{margin-left:190px}.page{padding:28px 25px}.topbar{padding:0 25px}.preview-ribbon{padding-left:25px}.project-layout{grid-template-columns:minmax(0,1fr)}.project-layout>aside{display:none}.review-layout{grid-template-columns:minmax(0,1fr) minmax(360px,1fr)}.focus-header{gap:12px}.focus-header .focus-project-name{display:none}.form-grid{gap:16px}.risk-layout{grid-template-columns:minmax(0,1fr) minmax(360px,1fr)}td,th{padding-left:13px;padding-right:13px}}
@media(max-width:900px){.sidebar{width:72px;padding:25px 8px}.brand{padding:0;justify-content:center}.brand>span:last-child,.nav-label,.nav button span,.nav-sep,.quota,.userbox .user-text{display:none}.nav button{justify-content:center;padding:12px}.nav-sep+.nav{margin-top:30px}.workspace{margin-left:72px}.sidebar-bottom{display:flex;justify-content:center}.userbox{border:0}.page{padding:24px 18px}.topbar{padding:0 18px}.preview-ribbon{padding:7px 18px;font-size:10px}.review-layout,.risk-layout{grid-template-columns:1fr}.source-pane{min-height:400px}.source-paper{min-height:400px}.source-frame{height:470px}.focus-header{padding:0 15px}.focus-title{padding-left:12px}.focus-tabs{padding:8px 18px 0}.focus-tabs .tabs{gap:22px}.focus-tabs button{font-size:12px}.focus-page{padding:20px 18px}.grid-two{grid-template-columns:1fr}.page-header h1{font-size:26px}.source-paper{max-height:450px;overflow:auto}.stats{gap:12px}.stat{padding:16px}.stat .stat-icon{display:none}.stat strong{font-size:27px}}
@media(max-width:600px){.sidebar{display:none}.workspace{margin-left:0}.topbar{height:60px}.topbar select{max-width:190px;font-size:10px}.breadcrumbs{font-size:10px}.page-header.row{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr 1fr}.stats .stat:last-child{grid-column:1/-1}.stat strong{font-size:24px}.stat span{margin-left:6px;font-size:10px}.form-grid,.photos-grid,.config-grid{grid-template-columns:1fr}.preview-ribbon{display:block}.preview-ribbon span{display:none}.focus-title{gap:12px}.focus-header h2{font-size:18px}.focus-header button{font-size:11px;padding:8px}.focus-header .save-state{display:none}.focus-tabs .tabs{gap:20px}.table-toolbar{padding:12px;flex-wrap:wrap}.table-toolbar input[type=search]{max-width:none;width:100%;flex-basis:100%}.projects-grid{grid-template-columns:1fr}.source-paper{padding:20px}.source-actions button{font-size:11px}.focus-header .focus-title>span{display:none}dialog{max-width:96vw}.modal-head,.modal-body,.modal-footer{padding:18px}.photo-stage{min-height:140px}.topbar:before{content:'安检';color:var(--purple);font-weight:750}.topbar .breadcrumbs{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.mobile-nav{display:none}.number-list input{width:65%;min-width:190px}.source-image{max-width:100%;height:auto}
@media(max-width:600px){.mobile-nav{display:flex;gap:6px;overflow-x:auto;padding:10px 14px;border-bottom:1px solid var(--line);background:white;position:sticky;top:0;z-index:5}.mobile-nav button{flex:none;padding:8px;font-size:11px}.mobile-nav svg{width:15px;height:15px;margin-right:3px}.number-list>div{flex-wrap:wrap;gap:8px}.number-list input{width:100%}.source-toolbar{flex-wrap:wrap}}

/* Device workspaces follow the available viewport, including browser zoom. */
#app:has(>.focus-header){width:100%;height:100vh;height:100dvh;display:flex;flex-direction:column;min-width:0}
.focus-header,.focus-tabs,.focus-header+.preview-ribbon{flex-shrink:0}
.focus-header{height:auto;min-height:73px;flex-wrap:wrap;padding-block:12px}
.focus-title{min-width:0}.focus-title h2{overflow-wrap:anywhere}.focus-project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:35vw}
.focus-page{width:100%;max-width:none;margin:0;flex:1;min-height:0;overflow:auto;scrollbar-gutter:stable}
.review-layout>*,.risk-layout>*,.grid-two>*{min-width:0}
.focus-page[data-view=risk]{display:flex;flex-direction:column}
.focus-page[data-view=risk]>.row,.focus-page[data-view=risk]>.notice{flex-shrink:0}
.risk-layout{flex:1;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.risk-layout>section{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.risk-layout .table-toolbar{flex-wrap:wrap;flex-shrink:0}
.risk-layout .table-toolbar input[type=search]{max-width:none;flex:1 1 180px}
.risk-catalog{flex:1;min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain}
#selected-risks{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
.risk-layout>section>.pad{flex-shrink:0}
.source-pane{min-height:0;position:sticky;top:0}
.source-paper{min-height:360px}
.source-image{max-height:clamp(240px,calc(100dvh - 340px),1100px)}
.modal-footer{flex-wrap:wrap}dialog{max-height:94vh;max-height:94dvh}dialog[open]{display:flex;flex-direction:column}.modal-head,.modal-footer{flex-shrink:0}.modal-body{min-height:0;max-height:none;overflow:auto}
.paste-zone{outline-offset:4px}.paste-zone:focus{outline:2px solid #a292e1}.paste-preview{display:grid;gap:12px;margin-top:16px}.paste-preview figure{margin:0}.paste-preview img{display:block;max-width:100%;max-height:220px;object-fit:contain;margin:auto}.paste-preview figcaption{overflow-wrap:anywhere;font-size:12px;margin:8px 0}
@media(max-width:900px){
 #app:has(>.focus-header){height:auto;min-height:100dvh}
 .focus-page{overflow:visible;flex:auto;scrollbar-gutter:auto}
 .focus-page[data-view=risk]{display:block}
 .risk-layout{display:grid;grid-template-columns:minmax(0,1fr)}
 .risk-layout>section{overflow:visible}
 .risk-catalog{flex:auto;max-height:55dvh;min-height:200px}
 #selected-risks{overflow:visible;flex:auto}
 .source-pane{position:static}
 .source-image{max-height:65dvh}
 .focus-header .spacer{display:none}.focus-title{flex:1}.focus-header .save-state{margin-left:auto}
 .focus-header+.preview-ribbon{flex-wrap:wrap}
}
@media(max-width:600px){
 .focus-header{gap:8px;min-height:0}.focus-title{border:0;padding-left:0;flex-basis:55%}.focus-header .focus-title .pill{display:none}
 .focus-header button{min-height:36px}.focus-header #return-device{margin-left:auto}
 .focus-page>.row>.row{flex-wrap:wrap}.edit-card{padding:18px}.edit-card>.row{flex-wrap:wrap}.field-header{flex-wrap:wrap}
 .risk-layout .pad{padding:16px}.risk-layout .pad>.row{flex-wrap:wrap}
 .modal-footer button{flex:1 1 auto}.file-drop{padding:22px 12px}
}
.risk-heading{margin-bottom:14px;flex-shrink:0}.risk-heading p{margin-bottom:0}
.risk-config{flex-shrink:0;margin-bottom:12px;border:1px solid var(--line);border-radius:9px;background:white}
.risk-config>summary{cursor:pointer;padding:13px 18px;font-weight:600;color:#655a83}
.risk-config>.card{max-width:none!important;border:0;border-top:1px solid var(--line);border-radius:0;max-height:36dvh;overflow:auto;padding:18px}
.risk-config h2{font-size:17px}.risk-config .config-grid{margin:12px 0}.risk-config .check-card{padding:9px}
.risk-stats{display:flex;flex-wrap:wrap;gap:10px 22px;padding:13px 18px;margin-bottom:14px;background:white;border:1px solid var(--line);border-radius:9px;flex-shrink:0;font-size:13px}
.risk-stats strong{font-size:19px}.risk-stats small{flex-basis:100%;color:var(--muted)}.category-i{color:#ae5760}.category-ii{color:#a47a2d}.category-iii{color:var(--green)}
.focus-page[data-view=risk] .risk-layout{min-height:320px}
.requirement-block{background:#f7f8fc;border-left:3px solid #c1b9e2;padding:12px 15px;margin:0 14px 14px;font-size:13px;line-height:1.9;color:#4f586b}
.requirement-block>b{color:#70628d;font-size:12px}.requirement-block p{margin:5px 0 0}.requirement-block summary{cursor:pointer;color:#70628d}.risk-card .requirement-block{margin:0 0 14px}
.problem .description>b{font-size:11px;color:#8d7eaa}.problem .description>p{margin:3px 0 5px;font-size:13px;color:#36415a;line-height:1.8}.problem small{color:#737d8e;line-height:1.8}
.not-applicable>summary{background:#f4f5f7;color:#9399a5}.not-applicable .problem,.condition-blocked{background:#fafafa;color:#9298a3}.not-applicable .problem .description>p{color:#9298a3}
.field-origin{overflow-wrap:anywhere;max-height:4.8em;overflow:auto;line-height:1.6}.risk-title{flex-wrap:wrap}
@media(max-width:900px){.risk-config>.card{max-height:none}.focus-page[data-view=risk] .risk-layout{min-height:0}.risk-stats{gap:8px 16px}.risk-stats strong{font-size:17px}}

.appendix-filter-summary{margin-bottom:14px}.appendix-count{font-size:13px;color:var(--muted);margin:0;overflow-wrap:anywhere}.appendix-count strong{color:var(--ink)}.appendix-column-filter{display:flex;flex-direction:column;gap:8px;min-width:82px}.appendix-column-filter select{width:100%;padding:7px 8px;font-size:12px}.appendix-table th{vertical-align:top}.appendix-table td:first-child,.appendix-table td:nth-child(5){white-space:nowrap}.appendix-table th:nth-child(2){min-width:180px}.risk-rating{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-top:12px;font-size:12px;line-height:1.8}.risk-rating label{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.risk-rating select{width:auto;min-width:65px}

/* Shared project material picker */
.material-drop{position:relative;border:2px dashed #d5cdea;border-radius:10px;background:#fcfbff;padding:24px 16px;text-align:center;margin-bottom:12px}.material-drop.dragging{border-color:var(--purple);background:var(--pale)}.material-drop>svg{width:28px;height:28px;color:var(--purple)}.material-drop p{margin:10px 0}.material-choose{display:inline-block;padding:10px 16px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--purple)}.material-input{position:absolute;width:1px;height:1px;opacity:0;padding:0;overflow:hidden}.material-drop:focus-within{outline:3px solid #b7aaf1;outline-offset:3px}.material-drop.uploading{opacity:.6}.material-list{margin-top:12px}.material-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.material-item>span{min-width:0;overflow-wrap:anywhere}.material-item button{flex-shrink:0}

.field-tools{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.field-header{gap:8px;flex-wrap:wrap}.field-tools button{font-size:11px}.source-viewport{display:block;overflow:auto;max-height:clamp(260px,calc(100dvh - 340px),1100px);min-height:240px;overscroll-behavior:contain;text-align:center}.source-viewport .source-image{display:block;margin:0 auto;flex-shrink:0}.source-toolbar{flex-wrap:wrap}@media(max-width:900px){.source-viewport{max-height:65dvh}}

/* Compact risk review: keep the problem, action and rating together. */
.risk-summary{container-type:inline-size}
.risk-summary>.pad{padding:14px 18px}
.risk-card{padding:12px 16px}
.risk-title{gap:6px 9px;margin-bottom:7px}
.risk-title strong{overflow-wrap:anywhere}
.risk-card .requirement-block{padding:3px 9px;margin:0 0 8px;font-size:12px;line-height:1.6}
.risk-card .requirement-block[open]{padding:7px 9px}
.risk-edit-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 146px;gap:10px;align-items:start}
.risk-edit-row>label{display:flex;flex-direction:column;gap:4px;min-width:0}
.risk-card textarea{display:block;height:76px;min-height:76px;padding:7px 9px;line-height:1.6;font-size:13px}
.risk-edit-row .assessment{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;margin:0;align-items:start}
.risk-edit-row .assessment label{display:flex;flex-direction:column;gap:4px;min-width:0}
.risk-edit-row .assessment select{width:100%;padding:7px 8px;min-height:34px}
.risk-edit-row .assessment small{grid-column:1/-1;display:block;margin:0;font-size:11px;line-height:1.5;overflow-wrap:anywhere}
.risk-edit-row .assessment>.pill{grid-column:1/-1;white-space:normal}
@container (max-width:540px){
 .risk-edit-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .risk-edit-row .assessment{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
 .risk-edit-row .assessment label{flex-direction:row;align-items:center}
 .risk-edit-row .assessment select{width:62px}
 .risk-edit-row .assessment small{flex:1 1 140px}
}
@container (max-width:360px){
 .risk-edit-row{grid-template-columns:minmax(0,1fr)}
 .risk-card{padding:10px 12px}
}

.source-location{margin:0 0 10px;color:#6c6085;overflow-wrap:anywhere}.source-viewport{position:relative}#source-highlights{position:absolute;pointer-events:none;z-index:1}.source-highlight{position:absolute;box-sizing:border-box;border:2px solid #d88d00;background:rgba(255,213,54,.32);box-shadow:0 0 0 1px rgba(255,255,255,.7)}

/* Frequent risk editing takes priority over the overview. */
.focus-product-no{font-size:12px;color:#657084;overflow-wrap:anywhere}
.focus-header{min-height:48px;padding-top:8px;padding-bottom:8px}.focus-tabs .tabs{margin:0}.focus-tabs .tabs button{padding-top:10px;padding-bottom:10px}
.focus-page[data-view=risk]{padding-top:10px;gap:0}
.risk-heading{margin-bottom:7px;gap:8px}.risk-heading h2{font-size:17px;margin:0}.risk-heading p{display:none}.risk-heading button{padding:6px 10px;font-size:12px}
.risk-config{margin-bottom:7px}.risk-config>summary{padding:7px 12px;font-size:12px}
.risk-stats{padding:7px 12px;margin-bottom:8px;gap:5px 15px;font-size:12px;align-items:center}.risk-stats strong{font-size:16px}.risk-stats small{flex-basis:auto;font-size:10px}
.risk-summary>.pad{padding:9px 14px}.risk-summary>.pad p{margin-top:5px!important}.risk-summary h3{font-size:15px}.risk-summary #save-risks{padding:8px}
.risk-card{padding:8px 12px}.risk-title{margin-bottom:5px;gap:5px 8px}.risk-title strong{font-size:13px}.risk-title .pill{padding:3px 7px;font-size:10px}.risk-card .requirement-block{margin-bottom:5px;padding:2px 8px}
.risk-edit-row{gap:8px}.risk-edit-row>label{gap:3px}.risk-edit-row input{width:100%;height:32px;min-height:32px;padding:5px 8px;font-size:13px}
.risk-description-control{display:flex;min-width:0}.risk-description-control input{border-top-right-radius:0;border-bottom-right-radius:0;min-width:0}.risk-problem-select{flex:0 0 30px;width:30px;max-width:30px;min-height:32px;padding:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;font-size:0;cursor:pointer}.risk-problem-select option{font-size:13px;color:var(--ink)}
.risk-edit-row .assessment{gap:3px 7px}.risk-edit-row .assessment select{min-height:32px;height:32px;padding:4px 7px}.risk-edit-row .assessment small{font-size:10px;line-height:1.3}.risk-edit-row .assessment small br{display:none}
.source-viewport{cursor:grab;touch-action:pan-y}.source-viewport.panning{cursor:grabbing;touch-action:none}.source-viewport .source-image{user-select:none;-webkit-user-drag:none}

/* Compact candidates; searches never expand the requirement text automatically. */
@media(min-width:901px){.risk-layout{grid-template-columns:minmax(270px,.65fr) minmax(0,1.35fr);gap:14px}}
.risk-catalog .catalog-item>summary{padding:8px 12px;font-size:12px;gap:6px;min-height:0}.risk-catalog .catalog-item>summary strong{font-size:12px}.risk-catalog .catalog-item>summary .pill{font-size:10px;padding:3px 6px}.risk-catalog .catalog-item>summary>span{font-size:10px}
.risk-catalog .problem{padding:7px 12px;gap:8px;align-items:center}.risk-catalog .problem .description{min-width:0}.risk-catalog .problem .description>b{display:none}.risk-catalog .problem .description>p{font-size:12px;margin:0 0 2px;line-height:1.5}.risk-catalog .problem small{font-size:11px;line-height:1.4}.risk-catalog .problem button{padding:5px 8px;font-size:11px}.risk-catalog .catalog-requirement{font-size:11px;line-height:1.6;margin:0 10px 5px;padding:4px 8px}

.signing-targets{border:1px solid var(--line);border-radius:8px;padding:12px;margin:14px 0}.signing-targets legend{font-size:13px;font-weight:600}.signing-targets p{margin:0 0 8px}.signing-target-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin-top:10px;max-height:190px;overflow:auto}.signing-target-list label{display:flex;gap:8px;align-items:flex-start;font-size:12px}.signing-target-list small{display:block;color:var(--muted);margin-top:3px}
