/* SOP Star — scoped stylesheet (auto-generated from NPD's sopstar.html prototype).
   Every selector is namespaced under .sst so it cannot collide with hub CSS.
   Mounted by apps/hub/public/js/sopstar.js inside the SOP module. */

.sst{ --paper:#FFFFFF; --ink:#1A1D1B; --ink-mut:#5B655F; --hair:#E2E5E0; --hair-2:#F2F4F0;
    --navy:#16243F; --green:#2E6B3E; --lime:#6FA84B; --blue:#2E7FB8; --ccp:#C0392B; --oprp:#C2761A;
    --gold:#F5C24B; --or:#E8820E;
    --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    --mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace; }
.sst *{ box-sizing:border-box }
.sst{ margin:0; background:var(--hair-2); color:var(--ink); font-family:var(--sans); line-height:1.5; -webkit-font-smoothing:antialiased }
.sst button{ font-family:var(--sans) }
.sst input, .sst select, .sst textarea{ font-family:var(--sans) }
.sst .wrap{ max-width:1180px; margin:0 auto; padding:26px 24px 90px }
.sst .hidden{ display:none !important }
.sst .eyebrow{ font-family:var(--mono); font-size:10px; letter-spacing:.3em; text-transform:uppercase; color:var(--ink-mut); margin:26px 0 14px; display:flex; align-items:center; gap:11px }
.sst .paper .band + .eyebrow{ margin-top:28px }
.sst .eyebrow::after{ content:""; flex:1; height:1px; background:var(--hair) }
.sst .sec-num{ color:var(--navy); font-weight:700 }
.sst h1.page{ font-size:30px; font-weight:800; letter-spacing:-.02em; color:var(--navy); margin:0 }
.sst .sub{ color:var(--ink-mut); font-size:13.5px; margin:5px 0 0 }
.sst .btn{ font-size:13px; font-weight:600; color:var(--navy); background:#fff; border:1px solid var(--hair); border-radius:8px; padding:9px 14px; cursor:pointer }
.sst .btn:hover{ border-color:var(--green) }
.sst .btn.prim{ background:var(--green); border-color:var(--green); color:#fff }
.sst .btn.prim:hover{ background:#357a49 }
.sst .btn.navy{ background:var(--navy); border-color:var(--navy); color:#fff }
.sst .pill{ font-family:var(--mono); font-size:9px; font-weight:700; letter-spacing:.05em; padding:3px 8px; border-radius:40px; text-transform:uppercase; white-space:nowrap }
.sst .pill.ccp{ background:var(--ccp); color:#fff }
.sst .pill.oprp{ background:var(--oprp); color:#fff }
.sst .pill.zone-low{ background:rgba(111,168,75,.14); color:var(--green) }
.sst .pill.zone-high{ background:rgba(46,127,184,.13); color:var(--blue) }
.sst .stats{ display:flex; gap:12px; flex-wrap:wrap; margin:20px 0 }
.sst .stat{ flex:1; min-width:120px; border:1px solid var(--hair); border-radius:11px; padding:13px 15px; background:#fff }
.sst .stat .v{ font-size:25px; font-weight:800; color:var(--navy) }
.sst .stat .v.alert{ color:var(--ccp) }
.sst .stat .k{ font-family:var(--mono); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-mut); margin-top:2px }
.sst table.lib{ width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--hair); border-radius:12px; overflow:hidden }
.sst table.lib thead th{ text-align:left; font-family:var(--mono); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-mut); font-weight:600; padding:11px 13px; border-bottom:1.5px solid var(--navy) }
.sst table.lib tbody tr{ border-bottom:1px solid var(--hair); cursor:pointer }
.sst table.lib tbody tr:last-child{ border-bottom:0 }
.sst table.lib tbody tr:hover{ background:var(--hair-2) }
.sst table.lib td{ padding:13px; font-size:13px; vertical-align:middle }
.sst .code{ font-family:var(--mono); font-weight:700; color:var(--green); white-space:nowrap }
.sst .nm{ font-weight:600; color:var(--navy) }
.sst .rowsub{ font-family:var(--mono); font-size:10px; color:var(--ink-mut); margin-top:2px }
.sst .st{ font-family:var(--mono); font-size:9px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:3px 9px; border-radius:40px }
.sst .st.active{ background:rgba(46,107,62,.12); color:var(--green) }
.sst .st.draft{ background:rgba(194,118,26,.13); color:var(--oprp) }
.sst .st.superseded{ background:var(--hair); color:var(--ink-mut) }
.sst .mra{ display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:11px }
.sst .mra .d{ width:8px;height:8px;border-radius:50%;flex:none }
.sst .mra.ok{ color:var(--ink-mut) }
.sst .mra.ok .d{ background:var(--lime) }
.sst .mra.warn{ color:var(--oprp) }
.sst .mra.warn .d{ background:var(--oprp) }
.sst .mra.err{ color:var(--ccp) }
.sst .mra.err .d{ background:var(--ccp) }
.sst .libact{ text-align:right }
.sst .libact .btn{ font-size:11px; padding:6px 11px; margin-left:5px }
.sst .docbar{ display:flex; align-items:center; gap:12px; margin-bottom:18px; flex-wrap:wrap }
.sst .seg{ display:inline-flex; background:#fff; border:1px solid var(--hair); border-radius:9px; padding:3px }
.sst .seg button{ font-size:12.5px; font-weight:600; color:var(--ink-mut); background:none; border:0; padding:7px 14px; border-radius:6px; cursor:pointer }
.sst .seg button.on{ background:var(--navy); color:#fff }
.sst .paper{ background:#fff; border:1px solid var(--hair); border-radius:4px; box-shadow:0 18px 40px -28px rgba(22,36,63,.5); padding:46px 50px 34px; margin:0 auto 24px; max-width:840px }
@media(max-width:680px){
  .sst .paper{ padding:26px 20px }
}
.sst .band{ display:grid; grid-template-columns:auto 1fr auto; border:1px solid var(--navy); border-radius:2px; overflow:hidden }
.sst .band .bl{ padding:9px 14px; border-right:1px solid var(--navy); display:flex; flex-direction:column; justify-content:center; line-height:.9 }
.sst .band .bl .l1{ font-size:13px; font-weight:800; letter-spacing:.12em; color:#111 }
.sst .band .bl .l2{ font-size:13px; font-weight:800; display:flex; align-items:center; margin-top:2px; color:#111 }
.sst .band .bl .o{ width:9px;height:9px;border-radius:50%;margin:0 .5px }
.sst .band .bl .o.or{ background:var(--or) }
.sst .band .bl .o.gr{ background:var(--lime) }
.sst .band .bt{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:8px }
.sst .band .bt .ey{ font-family:var(--mono); font-size:9px; letter-spacing:.3em; text-transform:uppercase; color:var(--ink-mut) }
.sst .band .bt h3{ margin:0; font-size:16px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--navy) }
.sst .band .bm{ display:grid; grid-template-rows:repeat(3,1fr); font-family:var(--mono); font-size:9.5px; border-left:1px solid var(--navy); min-width:170px }
.sst .band .bm div{ display:grid; grid-template-columns:1fr auto; gap:6px; padding:3px 9px; align-items:center }
.sst .band .bm div+div{ border-top:1px solid var(--hair) }
.sst .band .bm .k{ color:var(--ink-mut) }
.sst .band .bm .v{ font-weight:600; text-align:right }
.sst .cover-title{ font-size:36px; font-weight:800; letter-spacing:-.015em; color:var(--navy); margin:38px 0 4px }
.sst .cover-sub{ font-family:var(--mono); font-size:11.5px; color:var(--ink-mut); margin-bottom:30px }
.sst .cover-sub b{ color:var(--green) }
.sst .lead{ font-size:14px; line-height:1.6; color:#333935; max-width:64ch }
.sst .specs{ display:flex; flex-wrap:wrap; gap:9px; margin-top:6px }
.sst .spec{ border:1px solid var(--hair); border-left:3px solid var(--green); border-radius:3px; padding:7px 12px }
.sst .spec .k{ font-family:var(--mono); font-size:8.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-mut) }
.sst .spec .v{ font-size:13px; font-weight:700; margin-top:1px }
.sst table.t{ width:100%; border-collapse:collapse; font-size:12.5px }
.sst table.t th{ text-align:left; font-family:var(--mono); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-mut); padding:8px 10px; border-bottom:1.5px solid var(--ink) }
.sst table.t td{ padding:9px 10px; border-bottom:1px solid var(--hair); vertical-align:top }
.sst table.t tr:last-child td{ border-bottom:0 }
.sst .cver{ font-family:var(--mono); font-weight:600; color:var(--green) }
.sst .cdate{ font-family:var(--mono); font-size:11px; color:var(--ink-mut) }
.sst .legend{ display:flex; flex-wrap:wrap; gap:14px; margin:4px 0 18px; font-family:var(--mono); font-size:10px; color:var(--ink-mut) }
.sst .legend span{ display:inline-flex; align-items:center; gap:6px }
.sst .legend i{ width:12px;height:12px;border-radius:3px }
.sst .lz-low{ background:rgba(111,168,75,.16);border:1px solid var(--lime) }
.sst .lz-high{ background:rgba(46,127,184,.14);border:1px solid var(--blue) }
.sst .lz-ccp{ background:var(--ccp) }
.sst .lz-oprp{ background:var(--oprp) }
.sst .fc{ display:flex; flex-direction:column }
.sst .fc-row{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; width:100% }
.sst .fc-m{ display:flex; flex-direction:column; align-items:center }
.sst .fc-l{ display:flex; justify-content:flex-end; align-items:center }
.sst .fc-r{ display:flex; justify-content:flex-start; align-items:center }
.sst .fc-side{ font-size:11px; border:1px dashed #BFC7C1; background:#fff; border-radius:6px; padding:7px 10px; max-width:150px; color:#333935; line-height:1.3 }
.sst .fc-side.out{ border-style:solid; border-color:var(--hair); background:var(--hair-2) }
.sst .fc-side .sl{ display:block; font-family:var(--mono); font-size:8px; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-mut); margin-bottom:2px }
.sst .fc-conn{ width:16px; border-top:1px dashed #BFC7C1; flex:none }
.sst .fbox{ width:250px; border-radius:9px; padding:11px 15px; color:#fff; text-align:center; display:flex; flex-direction:column; gap:2px }
.sst .fbox.low{ background:var(--lime) }
.sst .fbox.high{ background:var(--blue) }
.sst .fbox.cp{ outline:3px solid var(--ccp); outline-offset:2px }
.sst .fbox.op{ outline:3px solid var(--oprp); outline-offset:2px }
.sst .fbox .bn{ font-family:var(--mono); font-size:9px; opacity:.85 }
.sst .fbox .bt{ font-size:13px; font-weight:700; line-height:1.2 }
.sst .fc-pill{ display:inline-block; margin-top:4px; font-family:var(--mono); font-size:8px; font-weight:700; padding:2px 7px; border-radius:40px; background:rgba(255,255,255,.25) }
.sst .fbox.cp .fc-pill{ background:var(--ccp) }
.sst .fbox.op .fc-pill{ background:var(--oprp) }
.sst .farr{ width:2px; height:22px; background:#C4CBC6; position:relative; margin:5px 0 }
.sst .farr::after{ content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%,1px);border:5px solid transparent;border-top-color:#C4CBC6 }
.sst .fterm{ border-radius:40px; background:#3A4742; color:#fff; padding:10px 26px; font-size:13px; font-weight:700 }
.sst .step{ display:grid; grid-template-columns:52px 1fr; gap:15px; padding:15px 0; border-bottom:1px solid var(--hair-2) }
.sst .step:last-child{ border-bottom:0 }
.sst .step .snum{ font-family:var(--mono); font-size:13px; font-weight:700; color:var(--green) }
.sst .step.cp .snum{ color:var(--ccp) }
.sst .step.op .snum{ color:var(--oprp) }
.sst .step h4{ margin:0 0 6px; font-size:14px; font-weight:700; color:var(--navy); display:flex; align-items:center; gap:8px; flex-wrap:wrap }
.sst .step ul{ margin:5px 0 0; padding-left:17px; font-size:12.5px; color:#333935 }
.sst .step li{ margin:3px 0 }
.sst .step .note{ margin-top:8px; font-size:12px; color:var(--ccp); background:rgba(192,57,43,.06); border-left:3px solid var(--ccp); padding:7px 10px; border-radius:0 3px 3px 0 }
.sst .ctrl{ margin-top:9px; border:1px solid var(--hair); border-left:3px solid var(--ccp); border-radius:0 4px 4px 0; overflow:hidden }
.sst .ctrl.op{ border-left-color:var(--oprp) }
.sst .ctrl-r{ display:grid; grid-template-columns:120px 1fr; gap:8px; padding:6px 11px; font-size:12px }
.sst .ctrl-r+.ctrl-r{ border-top:1px solid var(--hair) }
.sst .ctrl .ck{ font-family:var(--mono); font-size:9px; letter-spacing:.05em; text-transform:uppercase; color:var(--ccp); font-weight:700 }
.sst .ctrl.op .ck{ color:var(--oprp) }
.sst .refs{ margin-top:8px; display:flex; gap:6px; flex-wrap:wrap; align-items:center }
.sst .refs .rl{ font-family:var(--mono); font-size:9px; text-transform:uppercase; color:var(--ink-mut) }
.sst .ref{ font-family:var(--mono); font-size:10px; font-weight:600; padding:3px 8px; border-radius:3px; border:1px solid var(--hair); color:var(--green) }
.sst .ref.miss{ color:var(--ccp); border-style:dashed }
.sst .ref.miss::after{ content:" ⚠" }
.sst .gal{ display:flex; flex-wrap:wrap; gap:9px; margin-top:10px }
.sst .gthumb{ width:150px }
.sst .gthumb img{ width:150px; height:112px; object-fit:cover; border:1px solid var(--hair); border-radius:6px; display:block }
.sst .gthumb figcaption{ font-family:var(--mono); font-size:8.5px; color:var(--ink-mut); margin-top:3px }
.sst .gslot{ width:150px; height:112px; border:1.5px dashed #BFC7C1; border-radius:6px; background:var(--hair-2); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; text-align:center; color:var(--ink-mut) }
.sst .gslot .ph-t{ font-size:10px; font-weight:600; color:#475049 }
.sst .gslot .ph-h{ font-family:var(--mono); font-size:8px }
.sst .camico{ width:14px; height:14px; vertical-align:-2px; color:var(--ink-mut) }
.sst .phc{ font-family:var(--mono); font-size:10px; font-weight:600; color:var(--ink-mut); display:inline-flex; align-items:center; gap:4px }
.sst .phc.req{ color:var(--green) }
.sst table.hsm{ width:100%; border-collapse:collapse; font-family:var(--mono); font-size:11px }
.sst table.hsm th{ background:var(--navy); color:#fff; text-align:left; padding:7px 9px; font-size:9px; letter-spacing:.06em; text-transform:uppercase }
.sst table.hsm td{ padding:5px 9px; border-bottom:1px solid var(--hair) }
.sst table.hsm tr.kill td{ background:rgba(192,57,43,.06) }
.sst table.hsm .s{ color:var(--green); font-weight:700 }
.sst table.hsm tr.kill .s{ color:var(--ccp) }
.sst .anxgap{ margin-top:14px; font-size:12px; color:var(--ccp); background:rgba(192,57,43,.06); border:1px solid rgba(192,57,43,.25); border-radius:4px; padding:9px 12px }
.sst .stat2{ font-family:var(--mono); font-size:9px; font-weight:700; text-transform:uppercase; padding:3px 8px; border-radius:40px }
.sst .stat2.ok{ background:rgba(46,107,62,.1); color:var(--green) }
.sst .stat2.no{ background:rgba(192,57,43,.1); color:var(--ccp) }
.sst .foot{ margin-top:30px; padding-top:9px; border-top:1px solid var(--hair); display:flex; justify-content:space-between; font-family:var(--mono); font-size:9px; color:var(--ink-mut) }
.sst .fl-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:14px; border-bottom:3px solid var(--navy); padding-bottom:13px }
.sst .fl-head .t{ font-size:28px; font-weight:800; color:var(--navy) }
.sst .fl-head .t small{ display:block; font-family:var(--mono); font-size:11px; color:var(--ink-mut); margin-top:4px }
.sst .fl-head .tag{ font-family:var(--mono); font-size:11px; color:var(--ink-mut); text-align:right }
.sst .fl-strip{ display:flex; flex-wrap:wrap; gap:9px; margin:13px 0 }
.sst .fl-si{ flex:1; min-width:190px; border:1px solid var(--hair); border-left:3px solid var(--navy); border-radius:4px; padding:8px 11px; font-size:12px; color:#333935 }
.sst .fl-si b{ display:block; font-family:var(--mono); font-size:8.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-mut); margin-bottom:3px }
.sst .fstep{ display:flex; align-items:center; gap:14px; padding:13px 0; border-bottom:1px solid var(--hair) }
.sst .fstep .fn{ flex:none; width:40px; font-family:var(--mono); font-size:21px; font-weight:800; color:var(--green) }
.sst .fstep.cp .fn{ color:var(--ccp) }
.sst .fstep .ft{ font-size:16px; font-weight:700 }
.sst .fstep .fp{ font-family:var(--mono); font-size:11.5px; color:#333935; margin-top:2px }
.sst .fstep .badge{ font-family:var(--mono); font-size:10px; font-weight:700; padding:5px 10px; border-radius:6px; color:#fff }
.sst .fstep .badge.ccp{ background:var(--ccp) }
.sst .fthumb{ width:84px; height:63px; object-fit:cover; border:1px solid var(--hair); border-radius:6px; flex:none }
.sst .fthumb-ph{ display:flex;align-items:center;justify-content:center; background:var(--hair-2); border:1.5px dashed #BFC7C1 }
.sst .b-grid{ display:grid; grid-template-columns:230px 1fr; gap:22px; align-items:start }
@media(max-width:900px){
  .sst .b-grid{ grid-template-columns:1fr }
}
.sst .rail{ background:#fff; border:1px solid var(--hair); border-radius:12px; padding:12px }
.sst .rail .lbl{ font-family:var(--mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mut); padding:6px 10px 9px }
.sst .sess{ display:flex; align-items:center; gap:10px; padding:10px 11px; border-radius:9px; cursor:pointer; margin-bottom:2px }
.sst .sess:hover{ background:var(--hair-2) }
.sst .sess.on{ background:var(--hair-2); box-shadow:inset 2px 0 0 var(--green) }
.sst .sess .si{ width:22px;height:22px;border-radius:50%;border:1.5px solid var(--hair); display:flex;align-items:center;justify-content:center; font-family:var(--mono); font-size:10px; color:var(--ink-mut); flex:none }
.sst .sess.on .si{ border-color:var(--green); color:var(--green) }
.sst .sess .sn{ flex:1; font-size:13px; font-weight:600 }
.sst .sess .sd{ width:9px;height:9px;border-radius:50%;flex:none }
.sst .sd.ok{ background:var(--lime) }
.sst .sd.warn{ background:var(--oprp) }
.sst .sd.err{ background:var(--ccp) }
.sst .sd.empty{ background:var(--hair) }
.sst .panel{ background:#fff; border:1px solid var(--hair); border-radius:12px; padding:22px 24px }
.sst .b-two{ display:grid; grid-template-columns:1fr 320px; gap:20px; align-items:start }
@media(max-width:1050px){
  .sst .b-two{ grid-template-columns:1fr }
}
.sst .fieldlbl{ font-family:var(--mono); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-mut); margin:14px 0 5px }
.sst input.f, .sst select.f, .sst textarea.f{ width:100%; font-size:13px; color:var(--ink); background:#fff; border:1px solid var(--hair); border-radius:7px; padding:8px 10px; outline:none }
.sst input.f:focus, .sst select.f:focus, .sst textarea.f:focus{ border-color:var(--green) }
.sst textarea.f{ min-height:62px; resize:vertical; line-height:1.5 }
.sst .ecard{ border:1px solid var(--hair); border-radius:10px; padding:11px; margin-bottom:9px; background:#FBFCFA }
.sst .er1{ display:flex; align-items:center; gap:7px; flex-wrap:wrap }
.sst .er2{ display:flex; align-items:center; gap:7px; margin-top:8px; flex-wrap:wrap }
.sst .pickv{ width:120px; flex:none }
.sst .enum{ font-family:var(--mono); font-size:12px; font-weight:700; color:var(--green); width:22px; text-align:center }
.sst .eic{ width:28px;height:28px; border:1px solid var(--hair); background:#fff; border-radius:7px; color:var(--ink-mut); cursor:pointer }
.sst .eic:hover{ border-color:var(--green) }
.sst .eic.del:hover{ border-color:var(--ccp); color:var(--ccp) }
.sst .addrow{ display:flex; gap:8px; align-items:center; margin-top:4px; flex-wrap:wrap }
.sst .addrow select{ flex:1; min-width:180px }
.sst .prev{ position:sticky; top:74px; background:#FBFCFA; border:1px solid var(--hair); border-radius:10px; padding:14px; max-height:calc(100vh - 110px); overflow:auto }
.sst .prev .pl{ font-family:var(--mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-mut); margin-bottom:10px }
.sst .mini-box{ width:100%; max-width:280px; margin:0 auto; border-radius:8px; padding:8px 11px; color:#fff; text-align:center; font-size:12px; font-weight:600 }
.sst .mini-box.low{ background:var(--lime) }
.sst .mini-box.high{ background:var(--blue) }
.sst .mini-box.cp{ outline:2px solid var(--ccp); outline-offset:2px }
.sst .mini-box.term{ background:#3A4742; border-radius:40px; max-width:180px }
.sst .mini-n{ font-family:var(--mono); font-size:9px; opacity:.8; margin-right:4px }
.sst .mini-arr{ width:2px;height:14px;background:#C4CBC6; margin:4px auto }
.sst .mini-pill{ font-family:var(--mono); font-size:8px; background:rgba(255,255,255,.25); padding:1px 6px; border-radius:40px; margin-left:5px }
.sst .pp{ border-bottom:1px solid var(--hair); padding:8px 0 }
.sst .pp:last-child{ border-bottom:0 }
.sst .pp h5{ margin:0 0 2px; font-size:12px; color:var(--navy); display:flex; gap:6px; align-items:center }
.sst .pp .pn{ font-family:var(--mono); font-size:10px; color:var(--green) }
.sst .pp p{ margin:0; font-size:11px; color:#475049 }
.sst .rowi{ display:flex; align-items:center; gap:11px; padding:10px 12px; border:1px solid var(--hair); border-radius:9px; margin-bottom:8px; background:#FBFCFA }
.sst .rowi .rn{ flex:1; font-size:13px }
.sst .rowi .rc{ font-family:var(--mono); font-size:11px; color:var(--ink-mut) }
.sst .mini{ font-size:11px; font-weight:600; padding:5px 10px; border-radius:6px; border:1px solid var(--hair); background:#fff; color:var(--navy); cursor:pointer }
.sst .mini:hover{ border-color:var(--green) }
.sst .tg{ font-family:var(--mono); font-size:9px; font-weight:700; text-transform:uppercase; padding:3px 8px; border-radius:40px }
.sst .tg.ok{ background:rgba(46,107,62,.12); color:var(--green) }
.sst .tg.no{ background:rgba(192,57,43,.1); color:var(--ccp) }
.sst .tg.warn{ background:rgba(194,118,26,.12); color:var(--oprp) }
.sst .finding{ display:flex; gap:10px; padding:10px 12px; border:1px solid var(--hair); border-radius:9px; margin-bottom:8px; background:#FBFCFA }
.sst .finding .fdot{ width:8px;height:8px;border-radius:50%;margin-top:5px;flex:none }
.sst .finding.error .fdot{ background:var(--ccp) }
.sst .finding.warn .fdot{ background:var(--oprp) }
.sst .finding.style .fdot{ background:#6B8FAE }
.sst .finding .ft{ font-size:12.5px; font-weight:600 }
.sst .finding .clause{ font-family:var(--mono); font-size:9px; color:var(--ink-mut); border:1px solid var(--hair); border-radius:40px; padding:1px 7px; margin-left:5px }
.sst .finding .fd{ font-size:11.5px; color:var(--ink-mut); margin-top:2px }
.sst .chk-grp{ font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-mut); margin:16px 0 7px }
.sst .bigv{ width:100%; font-size:14px; font-weight:700; padding:12px; border-radius:9px; border:0; cursor:pointer; background:var(--green); color:#fff; margin-top:8px }
.sst .bigv:disabled{ background:var(--hair); color:#9aa9a0; cursor:not-allowed }
.sst .overlay{ position:fixed; inset:0; background:rgba(22,36,63,.45); display:flex; align-items:center; justify-content:center; z-index:80; padding:20px }
.sst .ovcard{ background:#fff; border-radius:14px; padding:22px; width:min(520px,94vw); box-shadow:0 30px 70px -30px rgba(0,0,0,.6) }
.sst .ovhead{ display:flex; align-items:center; justify-content:space-between; margin-bottom:6px }
.sst .ovhead b{ font-size:16px; color:var(--navy) }
.sst .seedgrid{ display:grid; grid-template-columns:1fr 1fr; gap:10px }
@media(max-width:520px){
  .sst .seedgrid{ grid-template-columns:1fr }
}
.sst .seedcard{ text-align:left; background:#FBFCFA; border:1px solid var(--hair); border-radius:10px; padding:12px 13px; cursor:pointer; display:flex; flex-direction:column; gap:3px }
.sst .seedcard:hover{ border-color:var(--green) }
.sst .seedcard b{ font-size:13.5px; color:var(--navy) }
.sst .seedcard span{ font-family:var(--mono); font-size:10px; color:var(--ink-mut) }
.sst .pphotos{ display:flex; flex-wrap:wrap; gap:8px; margin-top:9px }
.sst .pthumb{ position:relative; width:96px; height:72px }
.sst .pthumb img{ width:96px; height:72px; object-fit:cover; border:1px solid var(--hair); border-radius:6px; display:block }
.sst .pthumb-x{ position:absolute; top:-6px; right:-6px; width:18px; height:18px; border-radius:50%; border:0; background:var(--ccp); color:#fff; font-size:10px; line-height:1; cursor:pointer }
.sst .pdrop{ width:96px; height:72px; border:1.5px dashed #BFC7C1; border-radius:6px; background:var(--hair-2); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; cursor:pointer; color:var(--ink-mut); text-align:center }
.sst .pdrop:hover{ border-color:var(--green) }
.sst .pdrop.over{ border-color:var(--green); background:rgba(111,168,75,.12) }
.sst .pdrop span{ font-size:10px; font-weight:600; color:#475049 }
.sst .pdrop small{ font-size:8px }
.sst .pdrop .camico{ width:18px; height:18px }
.sst .ad-card{ background:#fff; border-radius:14px; width:min(680px,96vw); max-height:88vh; display:flex; flex-direction:column; box-shadow:0 30px 70px -30px rgba(0,0,0,.6) }
.sst .ad-head{ display:flex; align-items:center; justify-content:space-between; padding:15px 18px; border-bottom:1px solid var(--hair) }
.sst .ad-who{ display:flex; align-items:center; gap:10px }
.sst .ad-who b{ font-size:16px; color:var(--navy) }
.sst .ad-who span{ display:block; font-family:var(--mono); font-size:10.5px; color:var(--ink-mut) }
.sst .ad-intro{ padding:13px 18px; font-size:13.5px; font-style:italic; color:#3a4742; background:var(--hair-2); border-bottom:1px solid var(--hair) }
.sst .ad-counts{ display:flex; gap:16px; padding:10px 18px; font-family:var(--mono); font-size:11px; color:var(--ink-mut); border-bottom:1px solid var(--hair) }
.sst .ad-counts b{ font-weight:700 }
.sst .ad-counts .ce b{ color:var(--ccp) }
.sst .ad-counts .cw b{ color:var(--oprp) }
.sst .ad-counts .cs b{ color:var(--blue) }
.sst .ad-list{ overflow:auto; padding:4px 18px 18px }
.sst .ad-grp{ font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-mut); margin:16px 0 7px }
.sst .ad-item{ border:1px solid var(--hair); border-left:3px solid var(--ccp); border-radius:0 9px 9px 0; padding:11px 14px; margin-bottom:9px }
.sst .ad-item.warn{ border-left-color:var(--oprp) }
.sst .ad-item.style{ border-left-color:#6B8FAE }
.sst .ad-item.ig{ border-left-color:var(--hair); opacity:.65 }
.sst .ad-item .t{ font-size:13.5px; font-weight:700; color:var(--navy); display:flex; align-items:center; gap:8px; flex-wrap:wrap }
.sst .ad-item .cl{ font-family:var(--mono); font-size:9px; color:var(--ink-mut); border:1px solid var(--hair); border-radius:40px; padding:1px 7px }
.sst .ad-item .why{ font-size:12.5px; color:#3a4742; margin:6px 0 0; line-height:1.5 }
.sst .ad-item .why b{ color:var(--navy) }
.sst .ad-acts{ display:flex; gap:8px; margin-top:10px }
.sst .ad-b{ font-size:12px; font-weight:600; padding:6px 13px; border-radius:7px; border:1px solid var(--hair); background:#fff; color:var(--navy); cursor:pointer }
.sst .ad-b:hover{ border-color:var(--green) }
.sst .ad-b.open{ background:var(--navy); color:#fff; border-color:var(--navy) }
.sst .ad-b.fix{ background:var(--green); color:#fff; border-color:var(--green) }
.sst .ad-b.ig{ color:var(--ink-mut) }
.sst .ad-clear{ display:flex; align-items:center; gap:14px; padding:22px 4px }
.sst .ad-clear b{ font-size:15px; color:var(--navy) }
.sst .toast{ position:fixed; bottom:22px; left:50%; transform:translateX(-50%) translateY(40px); background:var(--navy); color:#fff; padding:11px 20px; border-radius:9px; font-size:13px; font-weight:600; opacity:0; transition:.25s; z-index:60 }
.sst .toast.show{ opacity:1; transform:translateX(-50%) translateY(0) }
@media (prefers-reduced-motion:reduce){
  .sst *{ transition:none !important }
}
@media print{
  .sst{ background:#fff }
  .sst .docbar, .sst .toast, .sst .overlay{ display:none !important }
  .sst .wrap{ max-width:none; margin:0; padding:0 }
  .sst .paper{ box-shadow:none; border:0; border-radius:0; max-width:none; margin:0; padding:22px 26px; page-break-after:always }
  .sst .paper:last-child{ page-break-after:auto }
  @page{ size:A4; margin:10mm }
}
