/* SOS (S0b 2026-09-28; leads screens the same day). The site stylesheet carries the
   fonts, colors and tokens; this file lays out the owner's screens, phone first, on
   the site's own look: blueprint grid, framed panels with corner brackets, // eyebrows,
   Barlow Condensed headings and the beveled buttons. No inline styles anywhere in SOS:
   the policy for /sos refuses them. Checked by machine at 390 and 1440 wide for
   overlapping, covered and cut-off text (owner standard 2026-09-28). */
.sos{--or:#e06a16;--cy:#65d9ff;--gd:#f5b33c;--bad:#ff8a7a;--ok:#5fd38d;--lav:#c9b8ff;--mut:#8898b4;--txt:#f0eee8;--bod:#cdd9ed;--ln:rgba(126,160,200,.22);--pan:#080d18;
  background-color:#050810;background-image:linear-gradient(rgba(126,160,200,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(126,160,200,.055) 1px,transparent 1px);background-size:24px 24px;
  color:var(--bod);min-height:100vh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}
.sos .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sos-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:16px;padding:10px 16px;background:linear-gradient(#0c1426,#070c18);border-bottom:1px solid rgba(224,106,22,.45)}
.sos-brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}
.sos-brand img{border-radius:50%;flex:none}
.sos-brand-t{display:flex;flex-direction:column;min-width:0}
.sos-brand-t b{font:900 1.15rem/1.05 "Barlow Condensed",system-ui,sans-serif;color:#fff;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}
.sos-brand-t em{font-style:normal;color:var(--or)}
.sos-brand-t small{font:700 .8rem/1.3 Barlow,system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--mut);white-space:nowrap}
.sos-topnav{display:none}
.sos-hq{color:var(--or);font:700 .9rem/1 "Barlow Condensed",system-ui,sans-serif;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;border:1px solid var(--or);padding:.55rem .8rem;min-height:40px;display:inline-flex;align-items:center;white-space:nowrap}
.sos-main{max-width:760px;margin:0 auto;padding:16px}
.sos-main.is-wide{max-width:1480px}
.sos-hero{border-left:3px solid var(--or);padding:2px 0 2px 14px;margin:6px 0 16px}
.sos .eyebrow{font:700 .8rem/1.3 Barlow,system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--or);margin:0}
.sos .eyebrow span{color:var(--bod)}
.sos-main h1{font:900 clamp(1.9rem,6vw,3rem)/1.02 "Barlow Condensed",system-ui,sans-serif;color:#fff;margin:.2rem 0 0;text-transform:uppercase;letter-spacing:.01em;overflow-wrap:anywhere}
.sos-h2{font:800 1.3rem/1.2 "Barlow Condensed",system-ui,sans-serif;color:var(--txt);margin:0 0 .7rem;text-transform:uppercase;letter-spacing:.04em}
.sos-sec{margin:0 0 1.6rem}
.sos-sec h2{font:800 1.3rem/1.2 "Barlow Condensed",system-ui,sans-serif;color:var(--txt);margin:0 0 .6rem;text-transform:uppercase;letter-spacing:.04em;scroll-margin-top:72px}
.sos-sec h2.sos-gh{font:700 .8rem/1.3 Barlow,system-ui,sans-serif;letter-spacing:.16em;color:var(--cy)}
.sos-count{color:var(--or);margin-left:.3rem}
.sos-lede{color:var(--mut);margin:0 0 1rem}
.sos-empty{color:var(--mut);font-style:italic}
.sos-meta{color:var(--mut);font-size:.9rem}
.sos-warn,.sos-flash{border:1px solid var(--gd);color:var(--gd);background:rgba(245,179,60,.06);padding:10px 12px;margin:0 0 14px}
.sos-flash{border-color:var(--ok);color:var(--ok);background:rgba(95,211,141,.06)}
.sos-flash.is-bad{border-color:var(--bad);color:var(--bad);background:rgba(255,138,122,.06)}
.c-bad{color:var(--bad)!important}.c-warn{color:var(--gd)!important}
.c-info{color:var(--lav)!important}
.sos-main a{color:var(--cy)}
.sos a:focus-visible,.sos button:focus-visible,.sos input:focus-visible,.sos select:focus-visible,.sos textarea:focus-visible{outline:2px solid var(--gd);outline-offset:2px}

/* frames and buttons, measured from theroofshepherd.com */
.sos .frame{position:relative;background:var(--pan);border:1px solid rgba(42,88,168,.72)}
.sos .frame::before,.sos .frame::after{content:"";position:absolute;top:-1px;width:16px;height:16px;pointer-events:none;border-top:2px solid #2a58a8}
.sos .frame::before{left:-1px;border-left:2px solid #2a58a8}
.sos .frame::after{right:-1px;border-right:2px solid #2a58a8}
.sos .bev{clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);font:800 1rem/1 "Barlow Condensed",system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;border:0;color:#fff!important;cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px}
.sos .bev-o{background:linear-gradient(#b8550f,#9f440a 42%,#853806 70%,#5d2603);box-shadow:inset 0 1.5px 0 rgba(255,255,255,.55),inset 0 -4px 10px rgba(70,20,0,.6)}
.sos .bev-s{background:linear-gradient(#1e2a42,#121a2c);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 0 0 1px rgba(126,160,200,.28);color:var(--txt)!important}
.sos .chip{min-height:36px;padding:0 12px;display:inline-flex;align-items:center;background:#0a1020;border:1px solid var(--ln);color:var(--bod)!important;font:700 .8rem/1.2 Barlow,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;text-decoration:none}
.sos .chip.on{background:#1b2a47;border-color:var(--or);color:var(--txt)!important}
.sos-tags{display:flex;flex-wrap:wrap;gap:6px}
.sos-trade{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;font:700 .8rem/1.2 Barlow,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border:1px solid currentColor}
.t-roof{color:var(--or)}.t-gutters{color:var(--cy)}.t-paint{color:var(--lav)}.t-other{color:var(--mut)}

/* top of the leads screens */
.sos-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 12px}
.sos-bar .sos-lede{margin:0;flex:1 1 260px}
.sos-search{display:flex;gap:8px;flex:1 1 300px;max-width:520px}
.sos-search input{flex:1;min-width:0;min-height:44px;padding:0 12px;background:#0a1020;border:1px solid var(--ln);color:var(--txt);font:400 1rem Barlow,system-ui,sans-serif}
.sos-seg{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sos-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px}
.sos-chips-l{font:700 .8rem/1 Barlow,system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}

/* board: six stage columns on a wide screen, stacked on a phone */
.sos-board{display:grid;grid-template-columns:1fr;gap:14px;margin:0 0 12px}
@media (min-width:700px){.sos-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.sos-board{grid-template-columns:repeat(5,minmax(0,1fr)) minmax(96px,.45fr)}}
.sos-col{padding:12px;min-width:0}
.sos-col h2{font:900 1.3rem/1.1 "Barlow Condensed",system-ui,sans-serif;color:var(--txt);text-transform:uppercase;margin:0;letter-spacing:.02em}
.sos-col h2 span{color:var(--or)}
.sos-col-h{color:var(--mut);font-size:.9rem;margin:.2rem 0 0}
.sos-col-w{color:var(--bad);font-size:.8rem;font-weight:700;margin:.15rem 0 0}
.sos-cards{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.sos-lcard{display:flex;flex-direction:column;gap:6px;padding:12px;background:#0c1322;border:1px solid var(--ln);text-decoration:none;color:var(--bod)!important;min-width:0}
.sos-lcard:hover{border-color:rgba(224,106,22,.6)}
.sos-lcard.is-bad{border-color:rgba(255,138,122,.55)}
.sos-lcard.is-job{border-style:dashed}
.sos-lcard-t{color:var(--txt);font-weight:700;overflow-wrap:anywhere}
.sos-lcard-w{color:var(--mut);font-size:.9rem;overflow-wrap:anywhere}
.sos-clock,.sos-next{font-size:.9rem;overflow-wrap:anywhere}
.sos-clock{font-weight:700;color:var(--txt)}
.sos-col.is-closed h2{font-size:1.15rem;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:6px;row-gap:2px}

/* list with its views rail */
.sos-listwrap{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:1000px){.sos-listwrap{grid-template-columns:230px minmax(0,1fr)}}
.sos-rail{display:flex;flex-direction:column;gap:2px}
.sos-rail .eyebrow{margin:0 0 8px}
.sos-rail-a{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px;padding:0 12px;color:var(--bod)!important;text-decoration:none;border-left:3px solid transparent}
.sos-rail-a b{color:var(--mut);font-weight:600}
.sos-rail-a.on{background:#1b2a47;border-left-color:var(--or);color:#fff!important}
.sos-tablewrap{overflow-x:auto;display:none}
.sos-listcards{margin-top:0}
@media (min-width:760px){.sos-tablewrap{display:block}.sos-listcards{display:none}}
@media (max-width:999px){.sos-rail{flex-direction:row;flex-wrap:wrap;gap:6px}.sos-rail .eyebrow{flex-basis:100%}.sos-rail-a{border:1px solid var(--ln);min-height:44px}.sos-rail-a.on{border-color:var(--or)}}
.sos-table{width:100%;border-collapse:collapse}
.sos-table th{padding:12px 10px;text-align:left;font:700 .8rem/1.2 Barlow,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);border-bottom:1px solid var(--ln)}
.sos-table td{padding:12px 10px;vertical-align:middle;border-bottom:1px solid rgba(126,160,200,.12)}
.sos-num{text-align:right;white-space:nowrap}
.sos-rowlink{display:flex;flex-direction:column;text-decoration:none;color:var(--bod)!important;min-width:0}
.sos-rowlink b{color:var(--txt)}
.sos-rowlink span{color:var(--mut);font-size:.9rem}
.sos-dot{display:inline-block;width:8px;height:8px;margin-right:8px;background:var(--cy)}
.d-prospect{background:#7f9cff}.d-contract{background:var(--gd)}.d-lost{background:var(--bad)}

/* Today, phone first */
.sos-today{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:900px){.sos-today{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sos-tcard{background:#0c1322;border:1px solid rgba(42,88,168,.72);border-left:3px solid var(--cy);padding:12px;display:flex;flex-direction:column;gap:8px;min-width:0}
.sos-tcard.is-bad{border-color:rgba(255,138,122,.45);border-left-color:var(--bad)}
.sos-tcard-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;text-decoration:none;color:var(--bod)!important}
.sos-tcard-id{display:flex;flex-direction:column;min-width:0}
.sos-tcard-id b{color:var(--txt);font-size:1rem;overflow-wrap:anywhere}
.sos-tcard-top .sos-tags{flex:none;justify-content:flex-end;max-width:45%}
.sos-tcard-mid{display:flex;justify-content:space-between;gap:10px;margin:0;flex-wrap:wrap}
.sos-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:6px}
.sos-acts.is-big{display:flex;flex-wrap:wrap;gap:8px}
.sos-more{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 24px}

/* one lead */
.sos-lhead{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;justify-content:space-between;margin:0 0 16px}
.sos-lhead-id{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1 1 320px}
.sos-lhead-sub{margin:0;color:var(--bod);overflow-wrap:anywhere}
.sos-panel{padding:16px;margin:0 0 16px;min-width:0}
.sos-stagebar{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
@media (min-width:760px){.sos-stagebar{grid-template-columns:repeat(6,minmax(0,1fr))}}
.sos-stagebar li{display:flex;align-items:center;justify-content:center;min-height:40px;padding:4px;text-align:center;background:#101829;color:var(--mut);font:800 .9rem/1.1 "Barlow Condensed",system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase}
.sos-stagebar li.done{background:#1b2a47;color:var(--bod)}
.sos-stagepick{all:unset;display:flex;align-items:center;justify-content:center;width:100%;min-height:40px;cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.sos-stagepick:focus-visible{outline:2px solid var(--gd);outline-offset:-2px}
.sos-stagebar li.on{background:var(--gd);color:#1a1205}
.sos-stagebar.is-lost li{opacity:.55}
.sos-two{display:grid;grid-template-columns:1fr;gap:18px}
@media (min-width:900px){.sos-two{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sos-big{font:700 1.3rem/1.3 Barlow,system-ui,sans-serif;color:var(--txt);margin:.2rem 0 .6rem;overflow-wrap:anywhere}
.sos-detail{display:grid;grid-template-columns:1fr;gap:0 16px}
@media (min-width:1000px){.sos-detail{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}}
.sos-tl{list-style:none;margin:14px 0 0;padding:0}
.sos-tl li{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:10px;padding:12px 0;border-top:1px solid rgba(126,160,200,.12)}
.sos-tl p{margin:0;overflow-wrap:anywhere}
.sos-tl-k{color:var(--or);font:700 .8rem/1.4 Barlow,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.sos-dl{display:grid;grid-template-columns:minmax(0,8rem) minmax(0,1fr);gap:8px 12px;margin:0 0 14px}
.sos-dl dt{color:var(--mut)}
.sos-dl dd{margin:0;color:var(--txt);overflow-wrap:anywhere}

/* forms */
.sos-form{display:flex;flex-direction:column;gap:6px;margin:0 0 8px}
.sos-form label,.sos-form legend{font:700 .8rem/1.3 Barlow,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);margin-top:6px}
.sos-form input:not([type=checkbox]):not([type=radio]),.sos-form select,.sos-form textarea{min-height:44px;padding:8px 12px;background:#0a1020;border:1px solid var(--ln);color:var(--txt);font:400 1rem/1.4 Barlow,system-ui,sans-serif;width:100%;box-sizing:border-box}
.sos-form button{align-self:flex-start;margin-top:8px}
.sos-checks{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.sos-checks label{display:inline-flex;align-items:center;gap:8px;min-height:40px;text-transform:none;letter-spacing:0;font:400 1rem Barlow,system-ui,sans-serif;color:var(--bod);margin:0}
.sos-picks{border:0;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sos-picks legend{grid-column:1/-1;font:800 1.15rem/1.2 "Barlow Condensed",system-ui,sans-serif;color:var(--txt);margin-bottom:8px}
.sos .pick{position:relative;margin:0;display:block}
.sos .pick input{position:absolute;opacity:0;width:1px;height:1px}
.sos .pick span{display:flex;align-items:center;justify-content:center;min-height:48px;padding:4px;text-align:center;background:#080d18;border:1px solid rgba(126,160,200,.3);color:var(--bod);font:600 1rem/1.2 Barlow,system-ui,sans-serif;text-transform:none;letter-spacing:0}
.sos .pick input:checked+span{background:#1b2a47;border:2px solid var(--or);color:var(--txt);font-weight:700}
.sos .pick input:focus-visible+span{outline:2px solid var(--gd);outline-offset:2px}
.sos-callform .sos-save{align-self:stretch;min-height:54px;font-size:1.15rem}

/* jobs and calendar (rebuilt 2026-09-28 evening) */
.sos-grid{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:700px){.sos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.sos-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.sos-tiles{margin:0 0 1.6rem}
.sos-pager b{font:900 1.3rem/1.1 "Barlow Condensed",system-ui,sans-serif;color:var(--txt);text-transform:uppercase;text-align:center;flex:1 1 0;min-width:0}
.sos-days{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:760px){.sos-days{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1200px){.sos-days{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sos-day{padding:12px 14px;min-width:0}
.sos-day.is-today{border-color:var(--or)}
.sos-day h2{font:900 1.15rem/1.1 "Barlow Condensed",system-ui,sans-serif;color:var(--txt);text-transform:uppercase;margin:0 0 8px;letter-spacing:.02em}
.sos-day h2 span{color:var(--or)}
.sos-day h2 em{font-style:normal;font-size:.8rem;letter-spacing:.14em;color:#1a1205;background:var(--gd);padding:2px 6px;margin-left:6px;vertical-align:middle}
.sos-day ul{list-style:none;margin:0;padding:0}
.sos-day li{display:grid;grid-template-columns:minmax(0,6.5rem) minmax(0,1fr);gap:10px;padding:8px 0;border-top:1px solid rgba(126,160,200,.12)}
.sos-kind{font:700 .8rem/1.4 Barlow,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--cy);overflow-wrap:anywhere}
.k-inspection,.k-appointment{color:var(--or)}.k-deadline{color:var(--bad)}.k-storm{color:var(--gd)}.k-post,.k-refresh,.k-live{color:var(--lav)}
.sos-ev{display:flex;flex-direction:column;min-width:0}
.sos-ev b{color:var(--txt);font-weight:600;overflow-wrap:anywhere}

/* existing S0b pieces */
.sos-tile{display:flex;flex-direction:column;gap:4px;padding:14px;background:#0e1628;border:1px solid var(--ln);border-left:3px solid var(--or);color:var(--bod);text-decoration:none}
.sos-tile b{overflow-wrap:anywhere}
.sos-tile b{font:800 1.6rem/1 "Barlow Condensed",system-ui,sans-serif;color:var(--txt)}
.sos-list,.sos-rows{list-style:none;margin:0;padding:0}
.sos-row{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:2px 12px;padding:10px 0;border-bottom:1px solid var(--ln)}
.sos-row .sos-meta{grid-column:2}
.sos-row span{overflow-wrap:anywhere}
/* 2026-10-01 (David: "sloppy on mobile view"): a long word in the left column (an email, a table name)
   ran over the right one. Both columns may shrink and break, and on a phone the row stacks: the name
   on its own line, the details under it. */
.sos-row>*{min-width:0;overflow-wrap:anywhere}
@media (max-width:560px){.sos-row{grid-template-columns:minmax(0,1fr);gap:2px 0}.sos-row .sos-meta{grid-column:1}}
.sos-date{color:var(--or);font-weight:700}
.sos-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 1rem}
.sos-pager a{min-height:40px;display:inline-flex;align-items:center}

/* bottom bar on a phone, top bar on a wide screen */
.sos-nav{position:fixed;left:0;right:0;bottom:0;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);background:#070c18;border-top:1px solid rgba(224,106,22,.45);padding-bottom:env(safe-area-inset-bottom)}
.sos-nav a,.sos-topnav a{display:flex;align-items:center;justify-content:center;min-height:56px;color:var(--mut);text-decoration:none;font:800 1rem/1 "Barlow Condensed",system-ui,sans-serif;text-transform:uppercase;letter-spacing:.06em}
.sos-nav a.on{color:var(--or);box-shadow:inset 0 3px 0 var(--or)}
@media (min-width:1000px){
  .sos{padding-bottom:0}
  .sos-nav{display:none}
  .sos-topnav{display:flex;gap:4px;margin-left:24px}
  .sos-topnav a{padding:0 14px;font-size:1rem}
  .sos-topnav a.on{color:#fff;box-shadow:inset 0 -3px 0 var(--or)}
}

/* mockup fidelity pass (2026-09-28 evening): header search and new lead, board view chips,
   lost bar, list preview, work at this house, back links, phone lead buttons */
.sos-hsearch{margin-left:auto;display:flex;align-items:center;gap:0;min-width:0}
.sos-hsearch input{display:none;min-height:40px;width:300px;padding:0 12px;background:#0a1020;border:1px solid var(--ln);border-right:0;color:var(--txt);font:400 1rem Barlow,system-ui,sans-serif}
.sos-ibtn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:linear-gradient(#1e2a42,#121a2c);border:1px solid rgba(126,160,200,.28);color:var(--txt);cursor:pointer}
.sos-newlead{min-height:44px;padding:0 14px;font-size:1.3rem!important}
.sos-newlead-t{display:none}
@media (max-width:560px){.sos-brand-t{display:none}.sos-top{gap:10px}}
@media (min-width:1000px){.sos-newlead{font-size:1rem!important}.sos-newlead-t{display:inline}}
@media (min-width:1320px){.sos-hsearch input{display:block}}
@media (min-width:1000px) and (max-width:1199px){.sos-brand-t small{display:none}.sos-topnav a{padding:0 10px}}
.sos-chips-sep{width:1px;height:28px;background:var(--ln);margin:0 6px}
.sos-lostbar{border:1px dashed rgba(255,138,122,.55);color:var(--bod);padding:14px;text-align:center;margin:0 0 10px}
.sos-listwrap{align-items:start}
@media (min-width:1300px){.sos-listwrap{grid-template-columns:220px minmax(0,1fr) 320px}}
.sos-preview{display:none;border-left:1px solid var(--ln);padding:0 0 0 16px;min-width:0}
@media (min-width:1300px){.sos-preview{display:flex;flex-direction:column;gap:10px}}
.sos-preview-h{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sos-preview-t{font:800 1.6rem/1.1 "Barlow Condensed",system-ui,sans-serif;color:#fff;margin:0;text-transform:none;overflow-wrap:anywhere}
.sos-preview .sos-tags{margin:0}
.sos-preview-c{margin:0;color:var(--bod);overflow-wrap:anywhere}
.sos-callout{padding:12px;border-color:rgba(245,179,60,.7)}
.sos-callout-t{font:800 1.15rem/1.2 "Barlow Condensed",system-ui,sans-serif;color:var(--gd);text-transform:uppercase;margin:0 0 4px}
.sos-callout p{margin:0 0 10px}
.sos-table tr.is-sel td{background:#101b30}
.sos-table tr.is-sel td:first-child{box-shadow:inset 3px 0 0 var(--or)}
.sos-back{display:flex;gap:18px;margin:0 0 10px}
.sos-back a{min-height:36px;display:inline-flex;align-items:center}
.sos-work{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:700px){.sos-work{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.sos-work{grid-template-columns:repeat(4,minmax(0,1fr))}}
.sos-wcard{padding:12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.sos-wcard b{color:var(--txt)}
.sos-wcard-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.sos-wcard-st{font:800 .8rem/1 "Barlow Condensed",system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--gd)}
.sos-wcard.is-add{border:1px dashed var(--ln);align-items:center;justify-content:center;min-height:80px}
.sos-wcard-a{display:flex;flex-direction:column;gap:6px;min-width:0;min-height:44px;color:inherit!important;text-decoration:none}
.sos-wcard-a:hover b,.sos-wcard-a:focus-visible b{text-decoration:underline}
.sos-also{color:var(--mut);font-size:.8rem;align-self:center;overflow-wrap:anywhere}
.sos-jobno{font:700 .8rem/1.2 "Barlow Condensed",system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--gd)}
.sos-panel .sos-h2 .sos-tags{display:inline-flex;vertical-align:middle}
.sos-wcard.is-add a{font:800 1rem/1 "Barlow Condensed",system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--txt)!important;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.sos-h2 .sos-meta{display:block;text-transform:none;letter-spacing:0;font:400 .9rem/1.4 Barlow,system-ui,sans-serif;margin-top:4px}
.sos-jobside{display:flex;flex-direction:column;min-width:0}
@media (max-width:699px){.sos-lhead .sos-acts.is-big{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.sos-lhead .sos-acts.is-big .bev{padding:0 6px;min-height:54px}}
@media (max-width:699px){.sos-lhead .sos-acts.is-big.is-one{grid-template-columns:1fr}}
/* customer search results (2026-09-28 evening) */
.sos-sr-house{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding-top:8px;border-top:1px solid var(--ln);min-width:0}
.sos-sr-house>b{flex:1 1 100%;color:var(--txt);font-size:.9rem;overflow-wrap:anywhere}
.sos-sr-job{display:inline-flex;align-items:center;gap:6px;color:var(--mut);font-size:.8rem;white-space:nowrap}
.sos-searchform{display:grid;grid-template-columns:1fr;gap:8px;max-width:640px;margin:0 0 16px}
@media (min-width:640px){.sos-searchform{grid-template-columns:1fr auto;align-items:end}.sos-searchform label{grid-column:1 / -1}}
/* tasks and snoozes (2026-09-28 night) */
.sos-tasks{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}
.sos-task{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--ln);background:#0e1628;min-width:0}
.sos-task-t{display:flex;flex-direction:column;gap:4px;min-width:0}
.sos-task-t b{color:var(--txt);overflow-wrap:anywhere}
.sos-task-t .sos-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.sos-task-done{flex:none;margin:0}
.sos-done,.sos-snooze{margin-top:12px}
.sos-done summary,.sos-snooze summary{cursor:pointer;color:var(--mut);font:700 .9rem/1.2 "Barlow Condensed",system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;min-height:44px;display:flex;align-items:center}
/* job photos (2026-09-28 night) */
.sos-phgrid{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:700px){.sos-phgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1200px){.sos-phgrid{grid-template-columns:repeat(6,minmax(0,1fr))}}
.sos-ph{display:flex;flex-direction:column;gap:4px;min-width:0}
.sos-ph a{display:block;border:1px solid var(--ln);background:#0e1628}
.sos-ph img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.sos-ph-m{display:flex;flex-wrap:wrap;align-items:center;gap:6px;color:var(--mut);font-size:.8rem}
.sos-ph-c{color:var(--bod);font-size:.9rem;overflow-wrap:anywhere}
.sos-ph-p{color:var(--mut);font-size:.8rem;line-height:1.3;overflow-wrap:anywhere}
.sos-ph-s{display:flex;gap:6px;align-items:center;margin:0}
.sos-ph-s select{min-width:0;flex:1 1 auto;font-size:.8rem;padding:2px 4px}
.sos-ph-x{margin:0}
.sos-linkbtn{background:none;border:0;padding:0 4px;min-height:40px;display:inline-flex;align-items:center;color:var(--mut);font:inherit;font-size:.8rem;text-decoration:underline;cursor:pointer}
.sos-gh a{color:inherit!important;text-decoration:none}
.sos-gh a:hover,.sos-gh a:focus-visible{text-decoration:underline}
.sos-nightly{margin:0 0 8px;padding-left:1.4em;display:flex;flex-direction:column;gap:6px;color:var(--bod)}
.sos-nightly li{overflow-wrap:anywhere}
.sos-doclog{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.sos-doclog-i{color:var(--mut);font-size:.9rem;overflow-wrap:anywhere}
.sos-doclog-i.is-ok{color:var(--txt)}
.sos-doclog-i.is-bad{color:#ff8a7a}
.sos-brands{list-style:none;margin:0 0 6px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.sos-brands li{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--ln);background:#0e1628;min-width:0}
.sos-brands b{color:var(--txt)}
.sos-brands span{color:var(--mut);font-size:.9rem}
.sos-draft{margin-top:10px}
.sos-draft summary{cursor:pointer;color:var(--mut);font:700 .9rem/1.2 "Barlow Condensed",system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;min-height:44px;display:flex;align-items:center}
.sos-draft-t{margin:6px 0 10px;padding:10px 12px;border-left:3px solid var(--or);background:#0e1628;color:var(--txt);overflow-wrap:anywhere}
.sos-draft summary::-webkit-details-marker{display:none}
.sos-draft summary::before{content:"\25B8";margin-right:8px}
.sos-draft[open] summary::before{content:"\25BE"}
.sos-draft-f{margin-top:8px}
.sos-guard{margin:8px 0;padding:10px 12px 10px 28px;border-left:3px solid var(--bad);background:rgba(255,138,122,.06);color:var(--bad)}
.sos-guard li{margin:4px 0}
.sos-inline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.sos-replies>li{list-style:none}
.sos-hold{display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border:1px solid var(--bad);color:var(--bad);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}
.sos-notices>li{list-style:none;padding:10px 0;border-top:1px solid var(--ln)}
.sos-notices>li:first-child{border-top:0}
.sos-notice>b{display:block}
.sos-clocks{margin:6px 0 8px;padding-left:18px}
.sos-clocks li{margin:3px 0}
.sos-contacts>li{list-style:none;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid var(--ln)}
.sos-contacts>li:first-child{border-top:0}
.sos-contact>div:first-child{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
.sos-inline-f{display:inline}
.sos-check{display:flex;gap:8px;align-items:center;min-height:44px}
.sos-omw{margin:0 0 12px}
.sos-readyl{list-style:none;margin:6px 0;padding:0}
.sos-readyl li{padding:4px 0;overflow-wrap:anywhere}
.sos-readyl li>span{display:inline-block;min-width:64px;font-weight:700}
.sos-readyl li.is-ok>span{color:var(--ok)}
.sos-readyl li.is-no>span{color:var(--gd)}
.sos-hq-f{display:inline;margin:0}
.sos-hq-f button.sos-hq{background:none;cursor:pointer}
.sos-team>li{list-style:none}
.sos-team .sos-inline{margin-top:8px}

/* Cards name first, and Today laid out for a desktop (David 2026-09-29) */
.sos-tcard-id{gap:2px}
.sos-tcard-id b,.sos-lcard-t{font-size:1.15rem;line-height:1.25}
.sos-addr{color:var(--bod);font-size:.9rem;overflow-wrap:anywhere}
.sos-kind{margin-top:4px;color:var(--or);font:700 .8rem/1.2 Barlow,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.sos-tcard>.sos-acts:last-child{margin-top:auto}
.sos-jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 1.4rem}
.sos-jump .chip.is-bad{border-color:rgba(255,138,122,.55)}
.sos-sec[id]{scroll-margin-top:84px}
@media (min-width:900px){.sos-today{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}}
@media (min-width:1000px){.sos-tcard{padding:14px 16px}.sos-tcard .sos-acts .bev{min-height:40px;font-size:1rem}}
@media (min-width:1000px){.is-today .sos-sec>.sos-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:10px}.is-today .sos-sec>.sos-list>li{min-width:0}.is-today .sos-sec>.sos-list .sos-lcard{height:100%}}
@media (max-width:699px){.sos-jump{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-16px;padding-right:16px}.sos-jump::-webkit-scrollbar{display:none}.sos-jump .chip{flex:none}}
.bev.is-off{opacity:.55;cursor:not-allowed;display:inline-flex;align-items:center;justify-content:center}
/* Money panel (Phase 3, 2026-09-29) */
.sos-invs>li{padding:10px 0;border-bottom:1px solid var(--ln)}
.sos-inv p{margin:0 0 4px}
.sos-copy{width:100%;font:inherit;font-size:.9rem;color:var(--bod);background:#0a1524;border:1px solid var(--ln);padding:6px 8px;margin:4px 0 8px}
.sos-tag{display:inline-block;margin-left:6px;padding:1px 6px;border:1px solid var(--gd,#e0b34a);color:var(--gd,#e0b34a);font:700 .8rem/1.4 Barlow,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}
/* Insurance claim (Phase 4, 2026-09-29) */
.sos-h3{font:700 1rem/1.3 Barlow,system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--bod);margin:18px 0 6px}
.sos-claimclocks li .sos-meta{display:block}
.sos-dates{gap:10px 18px}
/* a carrier letter read by Claude, waiting for David (migration 068) */
.sos-draft-read{border:1px solid var(--ln);border-left:3px solid var(--gd);padding:10px 12px;margin:10px 0}
.sos-draft-read ul.sos-meta{margin:4px 0 8px 18px;padding:0}
/* Phase 7 (2026-10-01): a staged letter, as written, wrapped to the screen */
.sos-letter{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;margin:8px 0}
.sos-blogprev{overflow-wrap:anywhere}
.sos-binbar{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.sos-inl{display:inline}
.sos-mono{font-family:ui-monospace,Consolas,monospace;font-size:.9rem}
.sos-spark{width:120px;height:28px;display:block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.sos-spark circle{fill:currentColor;stroke:none}
.sos-spark.is-up,.sos-pct.is-up{color:var(--bad)}
.sos-spark.is-down,.sos-pct.is-down{color:var(--ok)}
.sos-mat{display:grid;gap:4px;grid-template-columns:1fr}
/* blog writing help (2026-10-01): the assist result, shown for review, never applied by itself */
.sos-assist-text{margin:6px 0 10px;padding:10px 12px;border-left:3px solid var(--or);background:#0e1628;color:var(--txt);white-space:pre-wrap;overflow-wrap:anywhere;font:400 1rem/1.55 system-ui,sans-serif}
.sos-scroll{overflow-x:auto;max-width:100%;min-width:0}
@media (max-width:699px){.sos .bev{white-space:normal;max-width:100%;text-align:center;line-height:1.1;padding-top:6px;padding-bottom:6px}.sos-scroll .sos-table th,.sos-scroll .sos-table td{padding:10px 6px}}
.sos-nlinbox{display:flex;flex-wrap:wrap;gap:4px 10px;margin:8px 0;padding:10px 12px;background:#0e1628;border:1px solid var(--ln);overflow-wrap:anywhere}
.sos-nlframe iframe{display:block;width:100%;max-width:420px;height:720px;border:1px solid var(--ln);background:#fff}
.sos-nlframe.is-wide iframe{max-width:none}
.sos-nltools{margin:4px 0 8px}
.sos-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px;border-bottom:1px solid var(--ln)}
.sos-bulk label{font-size:.9rem;color:var(--mut)}
.sos-bulk select{min-height:40px}
.sos-calgrid,.sos-calkey{display:none}
@media (min-width:1000px){
.sos-calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--ln);border:1px solid var(--ln);margin:0 0 6px}
.sos-calkey{display:block;margin:0 0 1.2rem}
.sos-calhead{background:#0b1222;color:var(--mut);font:700 .8rem/1 Barlow,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;text-align:center;padding:8px 4px}
.sos-calday{background:#0e1628;min-height:92px;padding:6px;min-width:0;display:flex;flex-direction:column;gap:3px}
.sos-calday.is-out{background:#0a1020}
.sos-calday.is-today{box-shadow:inset 0 0 0 2px var(--or)}
.sos-caldn{font-size:.8rem;color:var(--mut)}
.sos-calit{display:block;font-size:.8rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;border-left:3px solid currentColor;padding-left:5px}
.sos-calit b{color:var(--bad)}
}
.sos-pin{color:var(--or)}
.sos-hero-sub{margin:4px 0 0;font:800 1.15rem/1.15 "Barlow Condensed",system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--bod);overflow-wrap:anywhere}
.sos-calit.is-done{opacity:.55;text-decoration:line-through}

/* Data page (2026-10-01): the growth to-do list and the System drawer */
.sos-todo{margin:.4rem 0 0;padding-left:1.4rem;display:grid;gap:10px}
.sos-todo li{line-height:1.5;overflow-wrap:anywhere}
.sos-todo a{color:var(--cy,#65d9ff)}
.sos-tile .sos-meta{font-size:.9rem;line-height:1.35}
.sos-sys{margin:2rem 0 0;border-top:1px solid var(--ln);padding-top:1rem}
.sos-sys>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700;color:var(--txt)}

/* Checks on the job Money panel (2026-10-02 Central, _trs/sos/checks.php): the list of recorded checks and the one-tap Mark deposited */
.sos-chk p{margin:0 0 4px}
.sos-chk-dep{margin:8px 0 0}
.sos-chk-dep .bev{min-height:44px}

/* b1, 2026-10-02 Central (David: "Job page: overhaul for efficiency"; leads.php sos_jobbar and
   sos_fold_empty). The job's action row sticks under the SOS header (a fixed 65px, see .sos-top, so no script sets a style
   to the header's height); five 44 px buttons share the width at 360 and up. Every id after the row
   lands below it, never under it. A panel with an empty list folds to a 44 px row. */
.sos-jobbar{position:sticky;top:65px;z-index:4;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;margin:0 -16px 14px;padding:8px 16px;background:#050810;border-bottom:1px solid var(--ln)}
.sos-jobbar .bev{min-height:44px;min-width:0;padding:0 4px;display:flex;align-items:center;justify-content:center;font-size:1rem;white-space:nowrap;line-height:1}
.sos-jobbar~* [id],.sos-jobbar~[id]{scroll-margin-top:141px}
.sos-jobmain{min-width:0}
.sos-panel.is-fold{padding:0 16px}
.sos-fold>summary{min-height:44px;display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}
.sos-fold>summary::-webkit-details-marker{display:none}
.sos-fold>summary .sos-h2{margin:0;display:block;min-width:0;font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sos-fold>summary::after{content:"+";margin-left:auto;color:var(--or);font:800 1.3rem/1 "Barlow Condensed",system-ui,sans-serif}
.sos-fold[open]>summary::after{content:"\2212"}
.sos-fold[open]{padding-bottom:16px}
.sos-fold-e{margin-left:8px;font:600 .8rem/1.2 Barlow,system-ui,sans-serif;letter-spacing:.04em;text-transform:none;color:var(--mut)}
.sos-older>summary{min-height:44px}
@media (max-width:699px){.sos-lhead .sos-acts.is-big:not(.is-one){grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}}
@media (min-width:1000px){.sos-jobbar{grid-auto-columns:minmax(0,170px)}}

/* b4, 2026-10-02 Central (David: spam leads destroyed, other closed leads kept for marketing;
   customers.php sos_mkt_panel and sos_destroy_page, leadbin.php sos_view_mkt). Channel yes and no,
   the destroy button in the bad color, and 44 px tap targets for the spam links. */
.sos-mkt li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.sos-mkt li>b{min-width:3.5em}
.sos-mkt-yes{color:var(--ok);font-weight:700}.sos-mkt-no{color:var(--bad);font-weight:700}
.sos-mkt-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.sos-mkt-chip{display:inline-block;padding:2px 8px;border:1px solid var(--ln);font-size:.8rem;letter-spacing:.04em}
.sos-mkt-chip.is-yes{border-color:var(--ok);color:var(--ok)}.sos-mkt-chip.is-no{color:var(--mut)}
.sos-spamlink{display:inline-flex;align-items:center;min-height:44px;margin-right:12px;color:var(--bad)!important;font-weight:700}
.sos .sos-danger{background:linear-gradient(#5a1d18,#3a120f);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 0 0 1px var(--bad);color:#fff!important}
.sos-destroy{border-color:rgba(255,138,122,.45)}
.sos-destroy-list li{padding-left:2px}
.sos-destroy-list li+li{margin-top:8px}

/* 2026-10-02 Central (merge check): the public stylesheet sets html{scroll-behavior:smooth}; in SOS a jump from the
   job row is a work action, so it lands at once instead of animating 3,000 px on a phone */
html{scroll-behavior:auto}

/* 2026-10-02 Central (owner, Chrome): a kept device row is one form with a sentence and an End button, not the
   two-column label row; .sos-row squeezed the sentence into the 6.5rem label column */
.sos-kept{padding:10px 0;border-bottom:1px solid var(--ln)}
.sos-kept .sos-form{flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px 14px;margin:0}
.sos-kept .sos-form span{flex:1 1 16rem;min-width:0;line-height:1.45;overflow-wrap:anywhere}
.sos-kept .sos-form button{flex:0 0 auto}

/* 2026-10-02 Central (owner, Chrome: "obnoxiously large"): the Settings section is a list of one-line rows,
   label, control, Save, instead of a full-width field and a button stacked for every setting */
#settings .sos-form{display:grid;grid-template-columns:minmax(10rem,1fr) minmax(0,18rem) auto;gap:8px 14px;align-items:center;margin:0;padding:8px 0;border-bottom:1px solid var(--ln)}
#settings .sos-form label{margin:0;text-transform:none;letter-spacing:0;font:600 1rem/1.3 Barlow,system-ui,sans-serif;color:var(--txt)}
#settings .sos-form input:not([type=checkbox]),#settings .sos-form select{min-height:40px;padding:6px 10px;font-size:1rem}
#settings .sos-form .sos-binbar{margin:0}
#settings .sos-form .bev{min-height:40px;padding:0 12px;font-size:.9rem}
@media (max-width:620px){#settings .sos-form{grid-template-columns:minmax(0,1fr) auto}#settings .sos-form label{grid-column:1/-1}#settings .sos-form input:not([type=checkbox]),#settings .sos-form select,#settings .sos-form .bev{min-height:44px}}

/* ---------------------------------------------------------------- the left panel, 2026-10-02 Central
   sidenav.php. Owner: "a panel on the left like before... better." Wide screens: a column under the
   header, its own scroll. Phones: a drawer opened by the bottom bar's Menu cell through :target, closed
   by its × (href #content), no script needed. */
.sos-body{display:block}
.sos-side{display:none;background:linear-gradient(#0a1224,#070c18);border-right:1px solid rgba(126,160,200,.18);color:var(--bod)}
.sos-side-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px 10px;border-bottom:1px solid var(--ln)}
.sos-side-who{display:flex;flex-direction:column;min-width:0}
.sos-side-who b{color:var(--txt);font:800 1rem/1.1 "Barlow Condensed",system-ui,sans-serif;text-transform:uppercase;letter-spacing:.04em;overflow-wrap:anywhere}
.sos-side-who small{color:var(--mut);font:600 .8rem/1.3 Barlow,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.sos-side-x{display:none;width:44px;height:44px;align-items:center;justify-content:center;color:var(--txt)!important;text-decoration:none;font:400 1.6rem/1 Barlow,system-ui,sans-serif;border:1px solid var(--ln)}
.sos-side-g{margin:14px 16px 4px;color:var(--cy);font:700 .8rem/1.3 Barlow,system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.sos-side-l{list-style:none;margin:0;padding:0 8px}
.sos-side-l a{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 10px;color:var(--bod)!important;text-decoration:none;font:600 1rem/1.2 Barlow,system-ui,sans-serif;border-left:3px solid transparent}
.sos-side-l a:hover{background:rgba(126,160,200,.08);color:var(--txt)!important}
.sos-side-l a.on{background:rgba(224,106,22,.12);border-left-color:var(--or);color:#fff!important}
.sos-side-i{flex:none;color:var(--mut)}
.sos-side-l a.on .sos-side-i,.sos-side-l a:hover .sos-side-i{color:var(--or)}
.sos-side-l a span{flex:1 1 auto;min-width:0}
.sos-side-n{flex:none;min-width:22px;height:22px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;background:var(--or);color:#130802;font:800 .8rem/1 "Barlow Condensed",system-ui,sans-serif;clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px)}
/* phones and tablets under 1000px: the drawer */
.sos-nav{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}
.sos-nav-menu{font:800 1rem/1 "Barlow Condensed",system-ui,sans-serif;text-transform:uppercase;letter-spacing:.06em}
@media (max-width:999px){
  .sos-side:target{display:block;position:fixed;inset:0 20% 0 0;z-index:9;overflow:auto;box-shadow:12px 0 40px rgba(0,0,0,.6);padding-bottom:24px}
  .sos-side:target .sos-side-x{display:inline-flex}
}
/* wide screens: the column */
@media (min-width:1000px){
  .sos-body{display:grid;grid-template-columns:236px minmax(0,1fr);align-items:start}
  .sos-body>.sos-main{width:100%;min-width:0;box-sizing:border-box}
  .sos-body.is-bare{display:block}
  .sos-top{min-height:65px;box-sizing:border-box}
  .sos-side{display:block;position:sticky;top:65px;height:calc(100dvh - 65px);overflow:auto;scrollbar-width:thin}
  .sos-nav{display:none}
}
.sos-side-find{display:block;width:calc(100% - 32px);margin:10px 16px 0;min-height:44px;padding:0 10px;background:#0a1020;border:1px solid var(--ln);color:var(--txt);font:400 1rem Barlow,system-ui,sans-serif;box-sizing:border-box}
.sos-side-find:focus{outline:2px solid var(--cy);outline-offset:1px}
.sos-side-l li.is-hid{display:none}
.sos-side-veil{display:none}
@media (max-width:999px){.sos-side:target .sos-side-veil{display:block;position:fixed;top:0;bottom:0;left:80%;right:0;background:rgba(0,0,0,.45)}}
.sos-side-g.is-hid{display:none}

/* ======================================================= interface standard 59, 2026-10-02 Central
   _trs/standards/59-sos-interface-standard.md. Measured by ui-standard-test.py. One scale, one of each. */
/* 1. type: the big hero stays on Today; every other screen opens with a 25.6px title and its lede */
.sos-main:not(.is-today) h1{font-size:1.6rem;line-height:1.1}
.sos-main:not(.is-today) .sos-hero{margin:4px 0 12px}
.sos-main:not(.is-today) .sos-hero-sub{font-size:1rem}
/* section headings sit on one step (20.8px); the kicker stays its own small line */
.sos-sec h2:not(.sos-gh),.sos-h2,.sos-col h2,.sos-day h2{font-size:1.3rem;line-height:1.2}
.sos-col.is-closed h2{font-size:1.3rem}
.sos-fold>summary .sos-h2{font-size:1.15rem}
/* prose never runs past 70 characters a line; cards and tiles are narrow already */
.sos-main p,.sos-main .sos-lede,.sos-main .sos-meta,.sos-main li>span:only-child{max-width:70ch}
.sos-tcard p,.sos-tile span,.sos-col p,.sos-side p,td p,.sos-row p,.sos-kept p{max-width:none}
/* 2. controls: 40px on a pointer screen, 44px on touch; chips included */
.sos .chip{min-height:40px;padding:0 14px}
.sos .bev{min-height:40px}
@media (hover:none),(max-width:999px){.sos .chip,.sos .bev{min-height:44px}}
/* 3. stat tiles: equal widths from a 150px floor (auto-fill: six fit beside the panel at 1280), every tile the same width */
.sos-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.sos-tiles>.sos-tile{min-width:0}
.sos-tile{padding:16px}
.sos-tile.is-up{border-left-color:var(--ok)}.sos-tile.is-up b{color:var(--ok)}
.sos-tile.is-down{border-left-color:var(--bad)}.sos-tile.is-down b{color:var(--bad)}
/* 4. the Leads board: no column under 240px; the board scrolls sideways inside its frame instead */
@media (min-width:700px){
  .sos-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);grid-template-columns:none;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:8px;scrollbar-width:thin}
  .sos-board>.sos-col{scroll-snap-align:start}
}
/* 5. empty states: one voice, a quiet panel, body colour so it reads as information, not a gap */
.sos-empty{color:var(--bod);font-size:1rem;line-height:1.5;padding:12px 14px;border:1px dashed var(--ln);background:rgba(126,160,200,.04);margin:0 0 12px;max-width:70ch}
/* 6. filter rows: the family name is a kicker at the left, chips wrap as a unit */
.sos-chipg>.sos-chips-l{font:700 .8rem/1.3 Barlow,system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--cy);min-width:4.5rem}
/* 7. rhythm: sections 32px apart, panels 16px inside (12 on phones) */
.sos-sec{margin:0 0 32px}
.sos-panel{padding:16px}
@media (max-width:560px){.sos-panel{padding:12px}}
.sos-chips{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:8px}
.sos-chipg{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sos-chips-sep{display:none}
/* 8. the floor everywhere: the sign-out control and every disclosure summary are controls too */
@media (hover:none),(max-width:999px){.sos-hq,.sos .sos-hq{min-height:44px}}
.sos-main summary{min-height:40px;display:flex;align-items:center;cursor:pointer}
@media (hover:none),(max-width:999px){.sos-main summary{min-height:44px}}
/* the stage picker on a lead card is the outlined secondary button, drawn full width in its cell */
.sos-stagepick{min-height:40px}
@media (hover:none),(max-width:999px){.sos-stagepick{min-height:44px}}
/* the header is one fixed height everywhere, so the panel and the job row pin to it from CSS alone */
.sos-top{height:65px;box-sizing:border-box;flex-wrap:nowrap;overflow:hidden}
/* on a phone each filter family is one row that scrolls sideways, so the board starts within a screen */
@media (max-width:699px){.sos-chipg{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:4px 24px 4px 0;margin:-4px 0;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}.sos-chipg::-webkit-scrollbar{display:none}.sos-chipg>.sos-chips-l{flex:none;position:sticky;left:0;z-index:1;background:#080d18;padding-right:8px;box-shadow:6px 0 6px #080d18}.sos-chipg>.chip{flex:none;white-space:nowrap}.sos-chipg .chip:focus-visible{outline-offset:-2px}}
/* a disclosure that draws no marker of its own gets the standard triangle (display:flex on summary drops the native one) */
.sos-main details:not(.sos-fold):not(.sos-draft)>summary::before{content:"\25B8";margin-right:8px;color:var(--or);flex:none}
.sos-main details:not(.sos-fold):not(.sos-draft)[open]>summary::before{content:"\25BE"}
.sos-main details:not(.sos-fold):not(.sos-draft)>summary::-webkit-details-marker{display:none}
.sos-back a{min-height:44px;display:inline-flex;align-items:center}
@media (max-width:360px){.sos-stagebar li{letter-spacing:0;font-size:.8rem}}
a.sos-hold{min-height:40px}
@media (hover:none),(max-width:999px){.sos-linkbtn,a.sos-hold{min-height:44px}}
