/* Generated by tools/scoperise_look.py from the Scoperise 5 build. Do not edit: change Scoperise and run it again. */
:root{color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif;background:#fff;color:#000}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}
/* 28 October 2026 (Vincent): no counts next to the stages or in the left menu; Ask next and readiness show what is open */
.tabs .cnt,.panel nav button .cnt{display:none!important}
/* 28 October 2026 (Vincent): a long label wraps beside its dot, not under it */
.fact .lab{display:grid!important;grid-template-columns:10px minmax(0,1fr);column-gap:8px;align-items:start}
.fact .lab>.dot{grid-column:1;margin-top:6px!important;align-self:start!important}
.fact .lab>.why{grid-column:2;padding-left:0!important}
.fact .lab:not(:has(>.dot)){display:block!important}
.sub>.fact{grid-template-columns:120px minmax(0,1fr) auto!important}
.sub>.fact{align-items:baseline}.sub>.fact .lab{padding-top:0!important}

.areatabs{display:none;gap:24px;border-bottom:1px solid #E5E5E5;margin:0 0 16px;overflow-x:auto}.areatabs button{background:none;border:0;padding:10px 0;font:inherit;font-size:15px;color:#555555;cursor:pointer;white-space:nowrap}.areatabs button[aria-current=true]{color:#0366CC;box-shadow:inset 0 -2px 0 #238CFF}@media (max-width:1100px){.areatabs{display:flex}}
.panel nav .mlfold{display:flex!important;width:100%;justify-content:space-between;align-items:center;background:none;border:0;cursor:pointer;text-align:left;font:inherit;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);padding:24px 24px 8px}.panel nav .mlfold:hover{color:var(--ink)}.panel nav .mlfold span{letter-spacing:0;font-size:13px}
.nbvis{background:none!important;border-radius:0!important;padding:0!important}.nbvis svg.nvis,.nvis.dk{max-width:760px}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.dfig{margin:0;border:1px solid var(--line,#E5E5E5);border-radius:8px;overflow:hidden;background:#fff}.dimg{background:#fff;padding:8px;border-bottom:1px solid var(--line,#E5E5E5)}.dimg img{display:block;width:100%;height:auto}.dfig figcaption{display:grid;gap:2px;padding:10px 12px}
.ptfull{max-width:980px}.ptabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line)}.ptabs button{border:0;background:transparent;padding:10px 14px;font-size:15px;font-weight:600;color:var(--ink-2);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}.ptabs button[aria-selected="true"]{color:var(--text-blue);border-bottom-color:var(--act)}
#main td:has(> select[data-act=idwork]){width:55%}#main select[data-act=idwork]{width:100%!important;max-width:none!important}
#scconn .sysl{border-top:1px solid var(--line,#E4E4E4);margin-top:4px}#scconn .sysr{padding:10px 0;border-bottom:1px solid var(--line,#E4E4E4);display:grid;gap:8px}
    #scconn .sysr .r1{display:flex;gap:8px;align-items:center}#scconn .sysr .r1 input{flex:1;min-width:0;width:auto!important}
    #scconn .sysr .r2{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}#scconn .sysr .r2 select{width:100%;min-width:0}
    #scconn .sysr .r3{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:16px;align-items:center}#scconn .sysr .r3 label{display:inline-flex;flex-direction:row;gap:6px;align-items:center;margin:0;font-weight:400}#scconn .sysr .r3 input{width:64px!important}
    @media (max-width:520px){#scconn .sysr .r2{grid-template-columns:1fr}}
#main .jboard{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}#main .jstep .tag{white-space:normal}#main .jstep .row.between{flex-wrap:nowrap;align-items:flex-start}
details.docoff ul{margin:8px 0 0;padding-left:18px}details.docoff li{margin:4px 0}
.idprice table.lines.norule th:nth-child(2),.idprice table.lines.norule tr>td:nth-child(2):not([colspan]),.idprice table.lines.norule th:nth-child(4),.idprice table.lines.norule tr>td:nth-child(4):not([colspan]){display:table-cell}
    .idprice table.lines.norule th:nth-child(3),.idprice table.lines.norule tr>td:nth-child(3):not([colspan]){display:none}
.tbl{position:relative}
.rail .savest{margin-top:auto;font-size:11px;opacity:.95}
.rail .savest+.rolebtn{margin-top:4px}
.rail .savest svg{stroke-width:1.6}
.rail .savest.s-wait svg{stroke:#FFE08A}.rail .savest.s-wait span{color:#FFE08A}
.rail .savest.s-fail{background:#C62828}
.rail .savest.s-busy svg{animation:svpulse 1s ease-in-out infinite}
.rail .savest.s-off{opacity:.7}
@keyframes svpulse{50%{opacity:.4}}
@media (prefers-reduced-motion:reduce){.rail .savest.s-busy svg{animation:none}}
@media (max-width:600px){.rail .savest{margin-top:0}.rail .savest+.rolebtn{margin-top:0}}
.rail .rolebtn.is-owner .av{background:#D7263D;color:#fff;width:34px;height:34px;font-size:12px}
body.is-phonegate #rail, body.is-phonegate .panel{display:none!important}
body.is-phonegate .app{grid-template-columns:1fr!important}
body.is-phonegate #main{padding:16px!important;max-width:560px;margin:0 auto}
.rail .helpbtn{font-size:11px;opacity:.95}.rail .helpbtn svg{stroke-width:1.6}.rail .helpbtn+.savest{margin-top:2px}.rail .helpbtn{margin-top:auto}.rail .helpbtn~.savest{margin-top:0}
.libcover{position:relative;display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;color:#fff}
    .libcover .libmark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}
    .libcover:hover .libmark,.libcover:focus-visible .libmark{opacity:1}.libcover:focus-visible{outline:2px solid var(--accent,#0B5FFF);outline-offset:-2px}
    @media (hover:none){.libcover .libmark{opacity:.45}}
#libbar .lfrow{padding:0 0 16px}#libbar .lfrow input[type=search]{flex:0 1 190px}
#librev>summary::-webkit-details-marker{display:none}#librev>summary::marker{content:""}#librev[open] .revchev{transform:rotate(90deg)}
.setimpl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;align-items:start}.setimpl .setimpl-fields .eyebrow{margin-top:18px!important}.setimpl .setimpl-fields>.eyebrow:first-child{margin-top:0!important}.setimpl .setimpl-draw{position:sticky;top:16px}.setimpl .tbl table input{width:64px!important}.setvis{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}.setvis .setvis-b>h4:first-child{margin-top:4px!important}@media (max-width:1180px){.setimpl{grid-template-columns:minmax(0,1fr)}.setimpl .setimpl-draw{order:-1;position:static}.setvis{grid-template-columns:minmax(0,1fr);gap:8px}}@media (max-width:600px){.setimpl .tbl{overflow-x:auto}#setwork .cap{flex-wrap:wrap;gap:4px}}
:root{--lv-bar:#0366CC;--lv-track:#EEF2F6}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lv-bar:#5AA2EE;--lv-track:#26303B}}:root[data-theme=dark]{--lv-bar:#5AA2EE;--lv-track:#26303B}.lvfilters{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end;margin:0 0 16px}.lvsel{display:flex;flex-direction:column;gap:4px}.lvsel select{min-width:150px}.lvcharts{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:16px}.lvcharts.two{grid-template-columns:repeat(2,minmax(0,1fr))}.lvbars{list-style:none;margin:0;padding:0;display:grid;gap:2px}.lvbars li{display:grid;grid-template-columns:22px minmax(0,1.5fr) minmax(0,1fr) auto;align-items:center;gap:10px;padding:5px 4px;border-radius:4px;outline:none}.lvbars li:hover,.lvbars li:focus-visible{background:var(--lv-track)}.lvbars li:focus-visible{box-shadow:0 0 0 2px var(--lv-bar)}.lvrank{font-size:12px;color:var(--ink-2,#6A6E77);text-align:right;font-variant-numeric:tabular-nums}.lvname{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lvtrack{display:block;height:12px}.lvbar{display:block;height:12px;background:var(--lv-bar);border-radius:0 4px 4px 0}.lvval{font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink,#1A1A1A);min-width:3ch;text-align:right}.lvfold{border-top:1px solid var(--line,#E5E5E5);padding:10px 0}.lvfold:last-child{border-bottom:1px solid var(--line,#E5E5E5)}.lvfold summary{cursor:pointer;padding:2px 0}.lvfold .tbl{margin-top:8px}@media (max-width:900px){.lvcharts.two{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.lvbars li{grid-template-columns:18px minmax(0,1fr) auto;row-gap:2px}.lvbars .lvtrack{grid-column:2/4;grid-row:2}.lvsel{flex:1 1 140px}.lvsel select{min-width:0;width:100%}}
.pltools{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end;margin:0 0 16px}.pltools label{display:flex;flex-direction:column;gap:4px}.pltools .plpick select{min-width:280px}.pltools .plq input{width:280px}.plfold{border-top:1px solid var(--line,#E5E5E5);padding:10px 0}.plfold summary{cursor:pointer}.plfold .tbl{margin-top:8px}.prsec{margin:0 0 28px}.prsec>h2{font-size:20px;margin:0 0 12px}.prsec>.card{margin-bottom:14px}.plc2{display:none}@media (max-width:600px){#main th.plc,#main td.plc{display:none}#main .plc2{display:block;white-space:nowrap}#main .plfold th,#main .plfold td{padding:8px 6px;white-space:normal;letter-spacing:0}}@media (max-width:600px){.pltools label{flex:1 1 100%}.pltools .plpick select,.pltools .plq input{min-width:0;width:100%}}
.rq .rqscope{margin-top:4px;gap:4px}.rq .rqscope button{font-size:12px;padding:2px 8px;min-height:0}.rq .rqscope::before{content:'Scope';font-size:12px;color:var(--muted,#6B7280);align-self:center;margin-right:4px}.rq.out{opacity:.85}
.capbox{margin-top:8px;padding:8px 10px;border:1px solid var(--line,#E4E4E4);border-radius:8px}.capbox .row{gap:6px;flex-wrap:wrap;align-items:center}.caplist{display:flex;flex-direction:column;gap:2px;margin-top:6px;max-height:220px;overflow:auto}.caplist button{text-align:left;justify-content:flex-start}.capd{margin:6px 0;padding:8px 10px;background:var(--soft,#F3F3F3);border-radius:8px}
.mvgrid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.15fr);gap:22px;align-items:start}
    @media (max-width:900px){.mvgrid{grid-template-columns:1fr}}
    .mvbox{border:1px solid var(--line,#E3E6EA);border-radius:10px;overflow:hidden;background:#FFFFFF;color:#1F2328}
    .mvhead{padding:10px 14px;border-bottom:1px solid var(--line,#E3E6EA);font-size:13px;line-height:1.6;background:#F8F9FA}
    .mvbox iframe{display:block;width:100%;height:62vh;border:0;background:#FFFFFF}

    :root:not([data-theme=dark]){--rail:#1672DB}
    .app{grid-template-columns:88px minmax(0,1fr)!important}.panel{display:none!important}.areatabs{display:flex!important}.tabs.inpanel{display:flex!important}
    .knbar{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin:10px 0 12px}
    .knbar .kng{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.knbar .kng>span{font-size:12px;color:var(--ink-3);margin-right:2px}
    .knbar button[aria-pressed]{font-size:12.5px;padding:4px 9px}
    .knbar button[aria-pressed=true]{background:var(--act);border-color:var(--act);color:#fff;font-weight:600}.knbar button[aria-pressed=true] .muted{color:#fff}
    .knbar button[aria-pressed=true]::before{content:"✓ "}
    .knactive{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-4px 0 12px;font-size:13px}
    .knactive button.tagx{border:1px solid var(--act);background:var(--tint);color:var(--ink);padding:3px 8px;font:inherit;font-size:12.5px;cursor:pointer}
    .knrow{grid-template-columns:auto minmax(0,1.5fr) minmax(0,1fr)!important}.knrow .lname b{display:block}.knrow .kbadges{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
    .knrow .kbadges .chip{font-size:11px;padding:2px 7px}
    .kndet .fgrid{margin-top:8px}.kndet textarea{width:100%}.kndet input[type=text],.kndet select{width:100%}
    .knmore{margin-top:14px}.knmore summary{cursor:pointer;font-size:13px;color:var(--ink-3)}
    .knsaved{font-size:12px;color:var(--ink-3)}.knvoice{margin-top:8px;padding:8px 10px;background:var(--band);font-size:13px}
    .knhead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}

    .tabs[role=tablist]:has([data-act=rbtab]){display:none!important}
    .bookbar:not(.draft){border:0;background:none;padding:0;margin:0 0 8px;font-size:12.5px;color:var(--ink-3)}
    .bookbar:not(.draft) b{font-weight:500}
    .kqrow .lname b{font-weight:500}
    .kqdet .kbrow{border:0!important;padding:0!important}
    .kqdet textarea{width:100%}
    .catlist td input{border-color:transparent;background:transparent}.catlist td input:hover,.catlist td input:focus{border-color:var(--line-2,#CFCFCF);background:#fff}
    .catlist .catbtn{min-width:28px;padding:2px 6px}

    .lfrow{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;padding:8px 12px 6px}
    .lfrow .lfcount{color:var(--ink-3);font-size:13px;white-space:nowrap}
    .ld.ldense .lpane > .row{padding:3px 12px!important}
    .ld.ldense .lpane > .row .btn{min-height:0;padding:3px 6px}
    .lfrow input[type=search]{flex:0 1 220px;min-width:150px}
    .lfrow .lfgap{flex:1}
    .lfdd{border:1px solid var(--line-2);background:var(--card);color:var(--ink);border-radius:0;padding:5px 10px;min-height:32px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
    .lfdd:hover{background:var(--band)}
    .lfdd.on{border-color:var(--act);background:var(--tint);color:var(--text-blue)}
    .lfdd[aria-expanded=true]{outline:2px solid var(--act);outline-offset:-1px}
    .lfdd .car{margin-left:6px;font-size:10px;color:var(--ink-3)}
    .lfshow{display:flex;align-items:center;gap:4px;flex:1;min-width:0;font-size:13px;white-space:nowrap;overflow-x:auto;scrollbar-width:none}
    .lfshow::-webkit-scrollbar{display:none}
    .lfshow [data-act=lfclear]{position:sticky;right:0;flex:none;background:var(--card);box-shadow:-8px 0 8px var(--card)}
    .lfshow .tagx .tgt{display:inline-block;max-width:100px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
    .lfshow .tagx{flex:none;border:1px solid var(--act);background:var(--tint);color:var(--ink);padding:2px 6px;font:inherit;font-size:12.5px;cursor:pointer;border-radius:0;white-space:nowrap}
        #lfpop{position:fixed;z-index:80;background:var(--card);border:1px solid var(--line-2);box-shadow:var(--float);width:340px;max-width:calc(100vw - 16px);display:flex;flex-direction:column;max-height:min(420px,calc(100vh - 24px))}
    #lfpop .lfps{padding:8px;border-bottom:1px solid var(--line)}
    #lfpop .lfps input{width:100%}
    #lfpop .lfpl{overflow-y:auto;overscroll-behavior:contain;padding:4px 0;flex:1;min-height:0}
    #lfpop label,#lfpop .lfpick{display:flex;align-items:center;gap:8px;padding:5px 12px;font-size:13px;cursor:pointer;width:100%;border:0;background:transparent;text-align:left;font-family:inherit;color:var(--ink)}
    #lfpop label:hover,#lfpop .lfpick:hover{background:var(--band)}
    #lfpop label .n,#lfpop .lfpick .n{margin-left:auto;color:var(--ink-3);font-size:12px}
    #lfpop label.zero{color:var(--ink-3)}
    #lfpop .lfmax{margin:0;padding:6px 12px;font-size:12px;color:var(--ink-2);background:var(--band);border-bottom:1px solid var(--line)}
    #lfpop .lfph{margin:0;padding:8px 12px 2px;font-size:11.5px;font-weight:600;color:var(--ink-3)}
    #lfpop .lfpf{display:flex;justify-content:space-between;padding:6px 8px;border-top:1px solid var(--line)}
    .ld.ldense{display:block}
    .ld.ldense .lpane{max-height:none}
    .ltwrap{overflow:auto;overscroll-behavior:contain;border-top:1px solid var(--line);min-height:240px}
    table.ltab{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed;line-height:1.25}
    table.ltab th{position:sticky;top:0;z-index:2;background:var(--card);text-align:left;font-size:12px;font-weight:600;color:var(--ink-3);padding:4px 8px;height:31px;border-bottom:1px solid var(--line-2);white-space:nowrap}
    table.ltab td{padding:0 8px;height:23px;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
    table.ltab th .lthf{border:1px solid var(--line-2);background:var(--card);color:var(--ink);border-radius:0;font:inherit;font-size:12px;font-weight:600;text-transform:inherit;letter-spacing:inherit;padding:2px 8px;cursor:pointer;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;margin-left:-8px}
    table.ltab th .lthf:hover{background:var(--band)}
    table.ltab th .lthf.on{border-color:var(--act);background:var(--tint);color:var(--text-blue)}
    table.ltab th .lthf[aria-expanded=true]{outline:2px solid var(--act);outline-offset:-1px}
    table.ltab th .lthf .car{margin-left:6px;font-size:9px;color:var(--ink-3)}
    table.ltab th.num .lthf{margin-left:0;margin-right:-8px}
    table.ltab tr.ltr{cursor:pointer}
    table.ltab tr.ltr:hover td{background:var(--band)}
    table.ltab tr.ltr.on td{background:var(--tint)}
    table.ltab tr.ltr.on td:first-child{box-shadow:inset 3px 0 0 var(--act)}
    table.ltab tr.ltr.ltck td{background:var(--tint-2)}
    table.ltab .ltc{width:34px;padding:0 4px 0 12px}
    table.ltab .num{text-align:right}
    table.ltab .ltname{min-height:0;line-height:inherit;border:0;background:transparent;padding:0;font:inherit;font-weight:600;color:var(--ink);cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;display:block}
    table.ltab .ltname:focus-visible{outline:2px solid var(--act)}
    table.ltab .code{font-variant-numeric:tabular-nums;color:var(--ink-2)}
    table.ltab tr.ltg td{background:var(--band);height:32px;font-size:13px;position:sticky;top:31px;z-index:1}
    table.ltab td .btn.sm{min-height:0;padding:0 6px}
    table.ltab tr.ltg .btn{margin-left:8px}
    table.ltab .chip{padding:1px 8px;font-size:11.5px}
    .lsel{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--tint-2);border-top:1px solid var(--line);font-size:13px;flex-wrap:wrap}
    .lsel input{min-width:240px}
    .lside{position:fixed;top:0;right:0;bottom:0;width:min(620px,48vw);background:var(--card);border-left:1px solid var(--line-2);box-shadow:var(--float);z-index:40;display:flex;flex-direction:column}
    .lside .lshead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}
    .lside .lshead b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .lside .lsbody{overflow-y:auto;overscroll-behavior:contain;flex:1;padding:12px 16px}
    .lside .dpane{position:static;max-height:none;overflow:visible}
    .lside .dpane .card.acard{border:0;padding:0;box-shadow:none}
    .lside .fammem{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%}
    .lside .fammem .fmrow{display:flex;align-items:flex-start;gap:12px;width:100%;padding:5px 0;border-bottom:1px solid var(--line)}
    .lside .fammem .fmrow:last-child{border-bottom:0}
    .lside .fammem .fmrow > .btn:first-child{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start!important;justify-content:flex-start!important;gap:1px;padding:0;text-align:left;white-space:normal;font-weight:600}
    .lside .fammem .fmrow > .btn + .btn{flex:none;white-space:nowrap;padding:0}
    .lside .fammem .fmcode{font-weight:400}
    .lside .fammem .fl1{white-space:normal;overflow-wrap:anywhere}
    .lside .famaddw{display:flex;flex-direction:column;width:100%}
    .frow .fc .frowact{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin-top:4px;width:100%}
    .frow .fc .frowact .btn{white-space:nowrap;padding-left:0;padding-right:0}
    @media (max-width:900px){.lside{width:100vw}.lfrow{flex-wrap:wrap}}
.lfrow .btn{white-space:nowrap}
    .lside .dcrow{padding:6px 0;border-bottom:1px solid var(--line)}
    .lside .dcrow input{width:100%}
    .lside .dcmeta{display:flex;align-items:center;gap:16px;margin-top:3px;min-height:22px}
    .lside .dcmeta .btn{padding:0;min-height:0}

    #knpage .lfrow input[type=search]{flex:0 1 320px}
    #knpage .lfrow .btn.on{border-color:var(--act);background:var(--tint);color:var(--text-blue)}
    #knpage .knbook{margin:0 0 8px}#knpage .knbook .bookbar{margin:0}
    #knpage table.ltab td .chip + .chip{margin-left:4px}
    .lside[data-list=kn] .kjob{padding:12px 0;border-bottom:1px solid var(--line)}.lside[data-list=kn] .kjob:last-child{border-bottom:0}
    .lside[data-list=kn] .kjob > h3{font-size:14px;margin:0 0 6px}.lside[data-list=kn] .kjob .card,.lside[data-list=kn] .kbin{margin:0!important;border:0;padding:0;box-shadow:none}
    .lside[data-list=kn] .kjob .note.info{margin:0!important}
    .lside[data-list=kn] .kndet .ahead{min-height:0}
.nmleft{display:block;margin-top:2px;font-size:12px;color:var(--ink-3)}

    #qtpage .lfrow input[type=search]{flex:0 1 220px}
    #qtpage .lfrow .btn.on{border-color:var(--act);background:var(--tint);color:var(--text-blue)}
    #qtpage table.ltab td .chip + .chip{margin-left:4px}
    .lside[data-list=qt] .kbrow{border:0!important;padding:0!important}
    .lside[data-list=qt] textarea{width:100%}
    .lside[data-list=qt] .qtq{font-weight:500;margin:0 0 4px}
    .lside[data-list=qt] .qtbin{padding:10px 0;border-top:1px solid var(--line)}.lside[data-list=qt] .qtbin:first-child{border-top:0}

    #plpage .lfrow input[type=search]{flex:0 1 220px}
    #plpage .lfrow .btn.on{border-color:var(--act);background:var(--tint);color:var(--text-blue)}
    #plpage table.ltab td .btn.nextbtn{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important;display:block;box-sizing:border-box;width:max-content;max-width:100%!important;vertical-align:middle;min-height:0!important;height:21px!important;line-height:19px!important;padding:0 6px!important;font-size:12.5px}
    #plpage table.ltab td .chip.lab{margin-left:6px}
    #plpage table.ltab td .pcust{color:var(--ink-3);margin-left:6px}
    #plpage table.ltab td.num{text-align:right}
    #plpage .stand{padding:1px 6px;font-size:12px}
    .lside[data-list=pl] .bin{border:0;padding:0;box-shadow:none}
    .lside[data-list=pl] .bin > summary{display:none}
    #sidecol .q .opts button,#sidecol .q .opts [data-act]{white-space:normal;max-width:100%;text-align:left}

    #main.inproj nav.areatabs{display:none!important}
    .stagebar .tabs.stages.stepbar{display:flex;gap:0;border-bottom:1px solid var(--line);counter-reset:none}
    .stagebar .tabs.stages.stepbar > button{flex:0 1 auto;margin-right:28px;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 0;border:0;border-bottom:3px solid transparent;background:transparent;text-align:left;font:inherit;cursor:pointer;color:var(--ink-2);position:relative;min-width:0}
    .stagebar .tabs.stages.stepbar > button + button{padding-left:18px}
    .stagebar .tabs.stages.stepbar > button + button::before{content:"";position:absolute;left:0;top:50%;width:10px;height:10px;border-top:1px solid var(--line-2);border-right:1px solid var(--line-2);transform:translate(-2px,-50%) rotate(45deg)}
    .stagebar .tabs.stages.stepbar > button[aria-selected=true]{border-bottom-color:var(--act);color:var(--ink)}
    .stagebar .tabs.stages.stepbar > button:hover{background:var(--band)}
    .stepbar .stn{flex:none;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-2);font-size:12px;font-weight:600;color:var(--ink-2);background:var(--card)}
    .stepbar button[aria-selected=true] .stn{border-color:var(--act);background:var(--act);color:#fff}
    .stepbar .done .stn{border-color:#1E7B46;color:#1E7B46}
    .stepbar .stt{font-weight:600;font-size:14px;white-space:nowrap}
    .stepbar .sts{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .stepbar .sts.open{color:#8A5A00}
    .stepbar .sts.ok{color:#1E7B46}
    .stepbar .cnt{display:none}
    #lenspanel > nav.secnav{margin-top:0}
    nav.secnav button .sdot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#C98A00;margin-left:6px;vertical-align:middle}
    #axxcard{padding:0!important}
    #axxcard .axfold{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:0;background:transparent;font:inherit;font-size:14px;text-align:left;cursor:pointer}
    #axxcard .axfold .muted{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    #axxcard .axfold .axch{color:var(--text-blue);font-weight:600}
    #axxcard .axbody{padding:0 16px 16px}
    #axxcard .axbody > .cap{display:none}
    .pbasics2{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:0 0 14px;padding:10px 14px;border:1px solid var(--line-2);border-left:3px solid #C98A00;background:var(--card)}
    .pbasics2 > b{align-self:center;font-size:13px;margin-right:4px}
    .pbasics2 label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink-2)}
    .pbasics2 input{min-width:170px}

    #scconn .ltwrap,#openpts .ltwrap,#potab .ltwrap{min-height:0;max-height:none!important;border-top:1px solid var(--line)}
    #scconn table.ltab td,#openpts table.ltab td{height:30px}
    .cndir{display:flex;gap:8px;flex-wrap:wrap}
    .cndir button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 10px;border:1px solid var(--line-2);background:var(--card);cursor:pointer;font:inherit;font-size:12px;color:var(--ink-2);border-radius:0}
    .cndir button[aria-pressed=true]{border-color:var(--act);background:var(--tint);color:var(--text-blue)}
    .cndir svg{display:block}
    .lside .cnf{display:grid;gap:10px}
    .lside .cnf label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink-2)}
    .lside .cnf input[type=text],.lside .cnf select,.lside .cnf textarea{width:100%}
    .lside .cnf .r3 label{flex-direction:row;align-items:center;gap:6px}
    .lside .cnf .r3{display:flex;gap:16px;flex-wrap:wrap}
    .lside .cnf .r3 input{width:64px!important}
    .risk{display:inline-block}
    .risk > summary{list-style:none;cursor:pointer;color:var(--text-blue);font-size:13px;font-weight:600}
    .risk > summary::-webkit-details-marker{display:none}
    .risk[open] > summary{margin-bottom:4px}
    #potab .lfrow input[type=search]{flex:0 1 220px}
    #potab table.ltab td .btn.sm{min-height:0!important;height:21px;line-height:19px;padding:0 6px}
    .lside[data-list=po] .poss{border:0;padding:0;box-shadow:none}.lside[data-list=po] .poss h4{display:none}

    .row.meta .outbtn{margin-left:8px}
    .lside[data-list=out] .cap{display:none}
    .lside[data-list=out] .card{border:0;padding:0;box-shadow:none}
    .status.card .pbasics2.incard{flex-basis:100%;margin:10px 0 0;border:0;border-top:1px solid var(--line);border-left:0;padding:10px 0 0}
    .status.card{flex-wrap:wrap}
    details.mfold{padding:0}
    details.mfold > summary{cursor:pointer;padding:14px 16px;list-style:none;font-size:15px}
    details.mfold > summary::-webkit-details-marker{display:none}
    details.mfold > summary::after{content:"Open";float:right;color:var(--text-blue);font-weight:600;font-size:13px}
    details.mfold[open] > summary::after{content:"Close"}
    details.mfold > .card{border:0;box-shadow:none;margin:0}
    .status.card [data-act=tcopen].incard{margin-left:8px}

    #doclist table.ltab{display:table!important;width:100%!important;table-layout:fixed;min-width:0}
    #doclist table.ltab td{height:34px;vertical-align:middle}
    #doclist .btn.sm{min-height:0;padding:2px 10px}
    details.mfold > .card{margin:0}

    .lside[data-list=pt]{width:min(900px,64vw)}
    .lside[data-list=pt] .ptfull{max-width:none}
    .lside[data-list=pt] .acard > .ahead{display:none}
    #ptpage table.ltab td.num{text-align:right}
    #ptpage .stand{padding:1px 6px;font-size:12px}
    .ptprojs table.ltab td{height:28px}
    details.ptfold{border-top:1px solid var(--line);padding:10px 0}
    details.ptfold > summary{cursor:pointer;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
    details.ptfold > summary small{letter-spacing:0;text-transform:none;font-weight:400;color:var(--ink-3);margin-left:8px}

    #plpage .plcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(560px,1fr));gap:12px;padding:12px}
    #plpage .plcard{border:1px solid var(--line-2);background:var(--card);padding:16px 18px;display:flex;flex-direction:column;gap:8px;cursor:pointer}
    #plpage .plcard:hover{border-color:var(--act)}
    #plpage .plcard .pch{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
    #plpage .plcard h3{margin:0;font-size:19px;font-weight:600;line-height:1.25}
    #plpage .plcard .pcm{font-size:13.5px;color:var(--ink-2)}
    #plpage .plcard .pcm b{color:var(--ink);font-weight:600}
    #plpage .plcard .pcp{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
    #plpage .plcard .pcp .big{font-size:20px;font-weight:600}
    #plpage .plcard .pcp small{color:var(--ink-3);font-size:12px;margin-left:4px}
    #plpage .plcard .pcf{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:10px;margin-top:2px}
    #plpage .plcard .stand{padding:2px 8px;font-size:12.5px;white-space:nowrap}
    #plpage .plcard .btn.nextbtn{display:inline-block;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;padding:5px 12px;flex:none}
    #plpage .plcard .nw{white-space:nowrap}
    #plpage .plempty{padding:18px;color:var(--ink-3)}

    #ptpage .ptgroup{margin:14px 12px 6px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
    #ptpage .ptcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;padding:0 12px 6px}
    #ptpage .ptcard{border:1px solid var(--line-2);border-top:3px solid var(--pc,var(--line-2));background:var(--card);padding:14px 16px;display:flex;flex-direction:column;gap:6px;cursor:pointer;text-align:left;font:inherit;color:inherit}
    #ptpage .ptcard:hover{border-color:var(--act)}
    #ptpage .ptcard.on{border-color:var(--act);box-shadow:inset 3px 0 0 var(--act)}
    #ptpage .ptcard .pe{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
    #ptpage .ptcard h3{margin:0;font-size:17px;font-weight:600}
    #ptpage .ptcard .pm{font-size:13px;color:var(--ink-2)}
    #ptpage .ptcard .pf{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--ink-3);border-top:1px solid var(--line);padding-top:8px;margin-top:2px}
    #ptpage .ptcard .warn{color:var(--warn-ink,#9A5B00)}
    #ptpage .ptempty{padding:18px;color:var(--ink-3)}

    #formsent table td{vertical-align:middle}
    #formsent .chip{white-space:nowrap}
.tdlf{margin:0 0 10px}.tdlf .lfrow{padding:0;flex-wrap:wrap;row-gap:6px}.tdlf .lfrow input[type=search]{flex:0 1 220px}
    .tdpaused{color:var(--warn);font-weight:700}.tdfacts1{margin:12px 0;font-size:14px;line-height:1.6}
    .tdmailp .card{margin:0}.tdctry{display:inline-flex;flex-wrap:wrap;gap:6px}
.inslib{display:flex;flex-direction:column;gap:16px}.inslib .card .card{box-shadow:none}.inslib details.fold>summary{cursor:pointer}
.lthf .fcnt,.lfdd .fcnt{display:inline-block;min-width:18px;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--blue,#1672DB);color:#fff;font-size:11px;line-height:18px;text-align:center}
.cap > span::first-letter, summary.cap > span::first-letter{text-transform:uppercase}
.nylist{display:flex;flex-direction:column;margin-top:4px}
.nyrow{display:flex;gap:12px;align-items:flex-start;border-top:1px solid var(--line);padding:8px 4px}
.nyrow .hdot{margin-top:6px}
.nymain{flex:1;display:flex;flex-direction:column;gap:0;min-width:0}
.nyline .btn.quiet.sm{padding-top:2px;padding-bottom:2px}
.nyline{display:flex;justify-content:space-between;align-items:center;gap:12px}
.nyline>span{min-width:0}
.nyhead{display:flex;align-items:center;gap:8px}

/* 1. fields */
#main input[type=text],#main input[type=number],#main input[type=email],#main input[type=tel],#main input[type=url],#main input[type=date],#main input[type=search],#main input:not([type]),#main select,
html body .dlg input[type=text],html body .dlg input[type=number],html body .dlg input[type=email],html body .dlg input[type=tel],html body .dlg input[type=date],html body .dlg input[type=search],html body .dlg select{min-height:36px;height:36px;padding:6px 10px;box-sizing:border-box;line-height:1.3}
html body #main textarea,html body .dlg textarea{min-height:72px;padding:8px 10px;box-sizing:border-box}
html body #main td input[type=text],html body #main td input[type=number],html body #main td input[type=email],html body #main td input[type=date],html body #main td select{min-height:32px;height:32px;padding:4px 8px}
html body #main select.sm{min-height:32px;height:32px}
html body #nbHome{min-height:46px;height:46px}

/* 2. buttons */
html body #main .btn,html body .dlg .btn{min-height:36px;padding:7px 16px;line-height:1.25;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:6px}
html body #main .btn.sm,html body .dlg .btn.sm{min-height:30px;padding:4px 12px;font-size:13px}
html body #main .btn.quiet,html body .dlg .btn.quiet{padding-left:8px;padding-right:8px}
html body #main p .btn.quiet,html body #main .small .btn.quiet,html body #main li .btn.quiet,html body .dlg p .btn.quiet{min-height:0;padding:0 2px;display:inline;vertical-align:baseline}
html body #main td .btn.sm.nextbtn{min-height:30px;white-space:normal;max-width:280px;width:max-content;justify-content:flex-start;text-align:left;overflow-wrap:anywhere}   /* 28 October 2026: a long next step wraps inside its button, never past it */

/* 3. rows */
html body #main .row{gap:8px}
html body #main .row > .btn + .btn{margin-left:0}

/* 4. field rows */
html body .frow{grid-template-columns:minmax(0,200px) minmax(0,1fr);column-gap:16px}
html body .frow .fc .numin{display:inline-flex;align-items:center;gap:6px;max-width:100%}
html body .frow .fc .numin input{width:110px;min-width:0}
@media (max-width:640px){
html body .frow{grid-template-columns:minmax(0,1fr);row-gap:6px;align-items:stretch}
html body .frow .fc input:not([type=checkbox]):not([type=radio]),html body .frow .fc select,html body .frow .fc textarea{width:100%}
html body .frow .fc .numin input{width:110px}
html body .frow .fc > .row,html body .frow .fc > span.row{flex-wrap:wrap}
}

/* 5. option buttons */
html body .opts{gap:6px}
html body .opts button{min-height:30px;white-space:nowrap}
html body .opts.big button{white-space:normal}
@media (max-width:640px){.opts button{white-space:normal;text-align:left}}

/* 6. tables */
html body .tbl{overflow-x:auto;max-width:100%}
html body #main > table,html body #main .card > table,html body #main .capsec > table{display:block;overflow-x:auto;max-width:100%}
@media (max-width:640px){th{padding:8px 10px}td{padding:10px}}

/* 7. tab rows */
@media (max-width:760px){
html body .tabs,html body .ptabs,html body .sidetabs,html body .areatabs{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}
html body .tabs::-webkit-scrollbar,html body .ptabs::-webkit-scrollbar,html body .sidetabs::-webkit-scrollbar,html body .areatabs::-webkit-scrollbar{display:none}
html body .tabs button,html body .ptabs button,html body .sidetabs button,html body .areatabs button{flex:0 0 auto}
}

/* 8. tick boxes and radios with their text */
html body label:has(> input[type=checkbox]),html body label:has(> input[type=radio]){flex-direction:row;align-items:center;gap:8px}
html body td label:has(> input[type=checkbox]),html body td label:has(> input[type=radio]){display:flex;flex-direction:row;justify-content:flex-start;margin:0}
html body label > input[type=checkbox],html body label > input[type=radio]{flex:0 0 auto;margin:0}

/* 9. cards and empty states */
html body #main .card > .cap{flex-wrap:wrap;row-gap:6px}
html body #main .card > .cap select{max-width:100%}
html body #main .card{padding:16px}
@media (max-width:640px){#main .card{padding:14px}}
html body .ld:has(> .dpane:empty){grid-template-columns:minmax(0,1fr)}
html body .empty{width:100%;box-sizing:border-box}

/* 10. headings and eyebrows */
html body #main .capsec > .eyebrow:first-child{margin:0 0 8px}
html body #main .card > .eyebrow:first-child{margin-top:0}
html body #main .capsec{padding-top:12px;margin-top:14px}

/* Scoperise 5. The look of the IDtech platform (measured 23 October 2026): DM Sans, square corners, the Blue rail and a white menu panel. Before: design rulebook 1.5, Montserrat on the tool's screens, 5 text sizes, 3 weights,
   spacing 4 8 12 16 24 32, corners 6 10 16, a 1 pixel line and a very soft shadow on cards, status as a dot and a word. */
:root{
  --rail:#238CFF; --act:#238CFF; --act-ink:#FFFFFF; --text-blue:#0366CC; --tint:#DCEEFF; --tint-2:#EEF7FF;
  --bg:#FFFFFF; --card:#FFFFFF; --ink:#000000; --ink-2:#555555; --ink-3:#5E5E5E; --line:#E5E5E5; --line-2:#949494; --band:#F3F3F3;
  --ok:#16723A; --ok-t:#E6FAEB; --warn:#8A5A00; --warn-t:#FFF3D9; --bad:#B42318; --bad-t:#FEEAEA; --neutral-t:#F3F3F3; --read:#0366CC; --read-t:#EEF7FF;
  --shadow:none; --float:0 0 40px rgba(0,0,0,.08);
  --f:"DM Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --rail:#1A6FD0; --act:#4C9DFF; --act-ink:#0B1420; --text-blue:#7DB8FF; --tint:#15263B; --tint-2:#1D3554;
  --bg:#12161C; --card:#1A2029; --ink:#E8ECF2; --ink-2:#B6BFCC; --ink-3:#8E98A6; --line:#2C3542; --line-2:#3A4555; --band:#202833;
  --ok:#6CCB9B; --ok-t:#14291F; --warn:#F2B35C; --warn-t:#2E2414; --bad:#F59B92; --bad-t:#331A18; --neutral-t:#232B36; --read:#7DB8FF; --read-t:#16263A;
  --shadow:0 1px 2px rgba(0,0,0,.3); color-scheme:dark}}
:root[data-theme="dark"]{
  --rail:#1A6FD0; --act:#4C9DFF; --act-ink:#0B1420; --text-blue:#7DB8FF; --tint:#15263B; --tint-2:#1D3554;
  --bg:#12161C; --card:#1A2029; --ink:#E8ECF2; --ink-2:#B6BFCC; --ink-3:#8E98A6; --line:#2C3542; --line-2:#3A4555; --band:#202833;
  --ok:#6CCB9B; --ok-t:#14291F; --warn:#F2B35C; --warn-t:#2E2414; --bad:#F59B92; --bad-t:#331A18; --neutral-t:#232B36; --read:#7DB8FF; --read-t:#16263A;
  --shadow:0 1px 2px rgba(0,0,0,.3); color-scheme:dark}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 13px/1.5 var(--f)}
button,input,select,textarea{font:inherit;color:inherit}
.app{display:grid;grid-template-columns:72px minmax(0,1fr);min-height:100%}
.rail{background:var(--rail);color:#fff;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 0}
.mark{font-weight:700;font-size:15px;letter-spacing:.02em;margin-bottom:16px;text-align:center;line-height:1.1}
.mark small{display:block;font-size:12px;font-weight:600;opacity:.85}
.rail button{width:60px;border:0;background:transparent;color:#fff;border-radius:0;padding:8px 4px;font-size:12px;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px}
/* white on the rail reads at 5.2 to 1, on the current item at 7.5 to 1 (code review, 15 October 2026) */
.rail button[aria-current="page"]{background:rgba(0,0,0,.22);box-shadow:inset 3px 0 0 #fff}
.rail svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:1.5}
.rail button:focus-visible{outline:2px solid #fff;outline-offset:2px}
main{min-width:0;padding:24px 24px 32px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0 0 4px}
h1{font-size:24px;font-weight:700;margin:0;line-height:1.25;text-wrap:balance}
h2{font-size:18px;font-weight:600;margin:0}
h3{font-size:15px;font-weight:600;margin:0}
p{margin:0}
.muted{color:var(--ink-3)} .small{font-size:12px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.stack{display:flex;flex-direction:column;gap:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:0;box-shadow:var(--shadow);padding:16px;min-width:0}
.card > .cap{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px}
.btn{border:1px solid var(--line-2);background:var(--card);color:var(--ink);border-radius:0;padding:7px 12px;min-height:32px;cursor:pointer;font-weight:600}
.btn:hover{border-color:var(--act)}
.btn.main{background:var(--act);border-color:var(--act);color:var(--act-ink)}
.btn.quiet{border-color:transparent;background:transparent;color:var(--text-blue);padding:4px 6px;min-height:24px}
.btn:disabled{opacity:.5;cursor:not-allowed}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--act);outline-offset:2px}
input[type=text],input[type=number],input[type=email],input[type=tel],input[type=url],input[type=password],input[type=date],input[type=search],select,textarea{box-sizing:border-box;border:1px solid var(--line-2);background:var(--card);border-radius:0;padding:6px 8px;min-height:32px;width:100%}
textarea{min-height:120px;resize:vertical}
input[type=checkbox],input[type=radio]{accent-color:var(--act);width:16px;height:16px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;border-radius:999px;padding:2px 10px;white-space:nowrap}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.st-confirmed{background:var(--ok-t);color:var(--ok)} .st-read{background:var(--read-t);color:var(--read)} .st-assumed{background:var(--warn-t);color:var(--warn)} .st-unknown{background:var(--neutral-t);color:var(--ink-3)}
.st-bad{background:var(--bad-t);color:var(--bad)}
.tag{display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:2px 10px;background:var(--neutral-t);color:var(--ink-2)}
.num{font-variant-numeric:tabular-nums}
table{border-collapse:collapse;width:100%;font-size:inherit;line-height:inherit;color:inherit}
th{background:var(--band);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding:8px}
td{padding:8px;border-top:1px solid var(--line);vertical-align:top}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:0}
.tbl table td:first-child,.tbl table th:first-child{padding-left:12px}
/* projects */
.projhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:24px}
tr.open{cursor:pointer} tr.open:hover td{background:var(--tint)}
.bar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--neutral-t);min-width:120px}
.bar span{display:block;height:100%}
.bar .c{background:var(--ok)} .bar .r{background:var(--read)} .bar .a{background:var(--warn)}
/* the canvas */
.top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;margin-bottom:16px}
.price{text-align:right}
.price .big{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}
.price .to{color:var(--ink-3);font-weight:400;padding:0 6px}
.canvas{display:grid;grid-template-columns:260px minmax(0,1fr) 320px;gap:16px;align-items:start}
@media (max-width:1280px){.canvas{grid-template-columns:minmax(0,1fr) 320px}.canvas .evid{grid-column:1 / -1;order:3}}
@media (max-width:900px){.canvas{grid-template-columns:minmax(0,1fr)}.top{grid-template-columns:1fr}.price{text-align:left}main{padding:16px}}
@media (max-width:600px){.app{grid-template-columns:1fr}.rail{flex-direction:row;justify-content:space-around;padding:4px;position:sticky;bottom:0;order:2}.mark{display:none}}
.tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px}
.tabs button{border:0;background:transparent;padding:8px 10px;font-weight:600;color:var(--ink-2);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}
.tabs button[aria-selected="true"]{color:var(--text-blue);border-bottom-color:var(--act)}
.tabs .cnt{font-size:12px;color:var(--ink-3);margin-left:4px}
.fact{display:grid;grid-template-columns:minmax(140px,220px) minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.fact:first-of-type{border-top:0}
.fact .lab{font-weight:600}
.fact .src{grid-column:2 / -1;font-size:12px;color:var(--ink-3);margin-top:-4px}
.fact .src q{font-style:italic}
.fact .alt{grid-column:2 / -1;background:var(--bad-t);border-radius:0;padding:8px;font-size:12px}
@media (max-width:700px){.fact{grid-template-columns:1fr}.fact .src,.fact .alt{grid-column:1}}
.opts{display:flex;gap:4px;flex-wrap:wrap}
.opts button{border:1px solid var(--line-2);background:var(--card);border-radius:0;padding:4px 10px;min-height:28px;cursor:pointer;font-size:12px;font-weight:600;color:var(--ink-2)}
.opts button[aria-pressed="true"]{background:var(--tint);border-color:var(--act);color:var(--text-blue)}
.side{display:flex;flex-direction:column;gap:16px}
.q{border-top:1px solid var(--line);padding:12px 0;display:flex;flex-direction:column;gap:8px}
.q:first-of-type{border-top:0;padding-top:0}
.q .head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:baseline}
.q .imp{font-weight:700;font-variant-numeric:tabular-nums;white-space:normal;color:var(--text-blue)}
.ev{border-top:1px solid var(--line);padding:8px 0}
.ev:first-of-type{border-top:0}
.routes{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:12px}
.routes button{text-align:left;border:1px solid var(--line-2);background:var(--card);border-radius:0;padding:10px 12px;cursor:pointer;min-height:48px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.routes button b{font-size:13px}
.routes button span{font-size:12px;color:var(--ink-3)}
.routes button:hover{border-color:var(--act);background:var(--tint)}
.note{border-radius:0;padding:8px 12px;font-size:12px}
.note.bad{background:var(--bad-t)} .note.warn{background:var(--warn-t)} .note.info{background:var(--read-t)}
.note b{font-weight:600}
dialog{border:0;border-radius:0;padding:0;width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 48px);background:var(--card);color:var(--ink);box-shadow:0 12px 40px rgba(0,0,0,.25)}
dialog::backdrop{background:rgba(15,20,30,.45)}
.dlg{display:flex;flex-direction:column;max-height:calc(100vh - 48px)}
.dlg header,.dlg footer{padding:16px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.dlg header{border-bottom:1px solid var(--line)} .dlg footer{border-top:1px solid var(--line)}
.dlg .body{padding:16px 24px;overflow:auto;display:flex;flex-direction:column;gap:16px}
.prop{display:grid;grid-template-columns:24px minmax(120px,200px) minmax(0,1fr);gap:8px 12px;padding:8px 0;border-top:1px solid var(--line);align-items:start}
.prop:first-child{border-top:0}
.prop q{font-style:italic;color:var(--ink-2);display:block}
.drop{border:1px dashed var(--line-2);border-radius:0;padding:24px;text-align:center;color:var(--ink-3)}
.drop.on{border-color:var(--act);background:var(--tint)}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}
.kv div{display:flex;flex-direction:column}
.kv b{font-size:15px;font-variant-numeric:tabular-nums}
.kv span{font-size:12px;color:var(--ink-3)}
.pats{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.pat{border:1px solid var(--line-2);border-radius:0;padding:12px;text-align:left;background:var(--card);cursor:pointer;display:flex;flex-direction:column;gap:4px}
.pat[aria-pressed="true"]{background:var(--tint);border-color:var(--act)}
.pat .why{font-size:12px;color:var(--text-blue)}
details.grp{border-top:1px solid var(--line)} details.grp summary{padding:8px 0;cursor:pointer;font-weight:600;list-style-position:inside}
.empty{padding:24px;text-align:center;color:var(--ink-3)}
.spin{display:inline-block;width:12px;height:12px;border:2px solid var(--line-2);border-top-color:var(--act);border-radius:50%;animation:sp 1s linear infinite;vertical-align:-2px}
@keyframes sp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation:none}}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--card);padding:8px 16px;border-radius:0;font-weight:600;z-index:10}
.req{font-size:12px;padding:4px 0;border-top:1px solid var(--line)}
.lensintro{margin:0 0 12px;color:var(--ink-2)}
input.inline-num{width:72px;min-width:72px;text-align:right}
.tbl input[type=text]{min-width:150px}
.tbl select{min-width:140px;width:auto;max-width:200px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:12px;color:var(--ink-2)}
label.prop,label.row{font-weight:400;font-size:13px;color:var(--ink)}
label.row{flex-direction:row}
label.drop{display:block;font-size:13px;font-weight:400;cursor:pointer}
.canvas > *{min-width:0}
.routes button span{text-align:right}
table.matrix th{text-transform:none;letter-spacing:0;font-size:12px;white-space:normal;max-width:96px;vertical-align:bottom;line-height:1.3}
table.matrix input.inline-num{width:60px;min-width:60px}
table.matrix td:first-child{min-width:120px}
.canvas.focus{grid-template-columns:minmax(0,1fr) 320px}.canvas.focus .evid{display:none}
@media (max-width:900px){.canvas.focus{grid-template-columns:minmax(0,1fr)}}
/* the document set */
.docgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.docgrid .card { margin: 0; display: flex; flex-direction: column; }
.docgrid .card .row { margin-top: auto; }
/* the project screen: a status line, four stages, sections inside */
.mark{font-size:12px;letter-spacing:0}
.who h1{margin-bottom:4px}
.meta{gap:6px;color:var(--ink-3)} .meta .sep{color:var(--line-2)}
label.inline{flex-direction:row;align-items:center;gap:6px;font-weight:400;font-size:13px;color:var(--ink-3)}
label.inline select{width:auto;max-width:340px;min-height:28px;padding:3px 6px}
.price .big.wait{font-size:18px}
.status{display:flex;gap:16px;align-items:center;margin-bottom:16px;padding:12px 16px}
.status .readiness{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:72px}
.status .sline{flex:1;min-width:0}
.status .sline b{font-weight:600}
.tabs.stages{gap:8px}
.tabs.stages button{font-size:15px;padding:10px 14px}
.tabs .cnt{display:inline-block;min-width:18px;padding:0 6px;margin-left:6px;border-radius:999px;background:var(--neutral-t);color:var(--ink-2);font-size:12px;line-height:18px;text-align:center}
.canvas2{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.canvas2 > *{min-width:0}
.sidecol{display:flex;flex-direction:column;gap:16px;position:sticky;top:16px}
.lens{display:flex;flex-direction:column;gap:16px}
.secnav{display:flex;flex-wrap:wrap;gap:6px}
.secnav a{font-size:12px;font-weight:600;color:var(--text-blue);text-decoration:none;background:var(--tint);border-radius:999px;padding:4px 10px}
.sect{scroll-margin-top:16px}
.sub{margin-top:12px;border-top:1px solid var(--line);padding-top:12px} .sub h4{margin:0 0 4px;font-size:13px}
.fact .lab{display:flex;align-items:center;gap:8px}
.dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--line-2)}
.d-confirmed{background:var(--ok)} .d-read{background:var(--read)} .d-assumed{background:var(--warn)} .d-unknown{background:transparent;border:1.5px solid var(--line-2)}
.fact .src{display:none}
.fact:hover .src,.fact:focus-within .src{display:block}
.focus{border-color:var(--act);box-shadow:0 0 0 1px var(--act) inset}
.focus h3{font-size:16px}
.row.between{justify-content:space-between}
.imp{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-blue)}
.opts.big{margin-top:8px}
.opts.big button{font-size:13px;padding:8px 12px;min-height:40px;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.opts.big button span{font-weight:400;color:var(--ink-3);font-size:12px}
.confirms{margin-top:12px;border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}
.addrow{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}
.addrow button{border:1px solid var(--line-2);background:var(--card);border-radius:0;padding:6px 8px;font-size:12px;font-weight:600;cursor:pointer;text-align:left}
.addrow button:hover{border-color:var(--act);background:var(--tint)}
.timeline summary{cursor:pointer;font-weight:600;font-size:12px;color:var(--ink-2)}
.timeline ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.timeline li{border-left:2px solid var(--tint-2);padding-left:10px}
.stage-tag{display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:2px 10px;background:var(--tint);color:var(--text-blue)}
.ringcell{width:56px}
body.dropping main::after{content:"Drop a door list, a tender, an email or a questionnaire answers file";position:fixed;inset:16px 16px 16px 88px;border:2px dashed var(--act);border-radius:0;background:rgba(234,244,255,.92);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;color:var(--text-blue);z-index:5;pointer-events:none}
@media (max-width:1100px){.canvas2{grid-template-columns:minmax(0,1fr)}.sidecol{position:static}}
@media (max-width:600px){.status{flex-wrap:wrap}.tabs.stages{flex-wrap:nowrap;overflow-x:auto}.tabs.stages button{font-size:13px;padding:8px 10px}label.inline select{max-width:220px}}
.confirms.alone{margin-top:0;border-top:0;padding-top:0}
@media (max-width:600px){.status .sline{flex-basis:100%;order:3}.status .btn{order:2}.meta .sep{display:none}.meta{flex-direction:column;align-items:flex-start}}

.sectwrap{scroll-margin-top:16px;display:flex;flex-direction:column;gap:inherit}
table.ledger td{font-size:13px;vertical-align:middle;padding-top:4px;padding-bottom:4px}
table.ledger td:nth-child(2){width:220px}
table.ledger select{min-height:30px;height:30px;font-size:13px;width:100%;padding:2px 8px}
@media (max-width:640px){table.ledger td:nth-child(2){width:46%}}
table.ledger tr.orphan td{background:var(--bad-tint, rgba(200,40,40,.06))}
/* roles, preview, BI, access */
.rail .rolebtn{margin-top:auto;opacity:.95;font-size:11px}
.rail .av{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.22);display:grid;place-items:center;font-size:11px;font-weight:700;letter-spacing:.02em}
.preview{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--warn-t);color:var(--warn);border:1px solid var(--line);border-radius:0;padding:8px 12px;margin-bottom:16px}
.chip.lab{border:0;cursor:pointer;background:var(--neutral-t);color:var(--ink-2)}
.chip.lab.warn{background:var(--warn-t);color:var(--warn)}
.chip.lab.bad{background:var(--bad-t);color:var(--bad)}
.stage-tag.oc-won{background:var(--ok-t);color:var(--ok)}
.stage-tag.oc-lost{background:var(--bad-t);color:var(--bad)}
.stage-tag.oc-none{background:var(--neutral-t);color:var(--ink-2)}
.kpis,.funnel{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.funnel{grid-template-columns:repeat(5,minmax(0,1fr))}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:0;padding:12px 16px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow)}
.kpi b{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.hbars{display:flex;flex-direction:column;gap:6px}
.hb{display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr) auto;gap:10px;align-items:center;padding:2px 0;border-radius:0}
.hb:hover{background:var(--band)}
.hl{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ht{height:10px;display:block}
.hf{display:block;height:10px;background:var(--act);border-radius:0;min-width:2px}
.hv{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.hv small{display:block;font-weight:400;color:var(--ink-3)}
.hits{position:absolute;top:100%;left:0;z-index:5;background:var(--card);border:1px solid var(--line);border-radius:0;box-shadow:0 6px 18px rgba(0,0,0,.12);min-width:300px;display:flex;flex-direction:column}
.hits:empty{display:none}
.hits button{border:0;background:transparent;text-align:left;padding:8px 12px;cursor:pointer}
.hits button:hover{background:var(--tint)}
details.card summary{cursor:pointer}
.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}
code{font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.btn.sm{font-size:12px;padding:2px 8px;min-height:0}
/* requirements and the roadmap */
.rqgroup{margin-top:12px}
.rqgroup h4{margin:8px 0}
.rq{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px;padding:12px;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:0;margin-bottom:8px;background:var(--card)}
.rq:focus{outline:2px solid var(--act);outline-offset:1px}
.rq.flag{border-left-color:var(--warn)}
.rq.gapopen{border-left-color:var(--bad)}
.rqL{display:flex;gap:10px;align-items:flex-start}
.rqL .ref{font-weight:600;color:var(--ink-3);min-width:34px;font-variant-numeric:tabular-nums}
.rqR{display:flex;flex-direction:column;gap:6px}
.rqR textarea{width:100%;font-size:13px}
.opts button.a-met[aria-pressed="true"]{background:var(--ok-t);border-color:var(--ok);color:var(--ok)}
.opts button.a-partly[aria-pressed="true"]{background:var(--warn-t);border-color:var(--warn);color:var(--warn)}
.opts button.a-not[aria-pressed="true"]{background:var(--bad-t);border-color:var(--bad);color:var(--bad)}
.gaped{display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:0;background:var(--band)}
.roadline{color:var(--ink-2);font-style:italic}
.sugg{font-size:12px;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sugg .pct{font-weight:700;color:var(--text-blue)}
.sugg.draft{display:block;background:var(--tint);border-radius:0;padding:8px}
.sugg.draft .row{margin-top:6px}
.sugg.bad,.small.bad{color:var(--bad)}
ul.flags{margin:0;padding-left:16px;font-size:12px}
ul.flags .f-gap,ul.flags .f-design{color:var(--bad)} ul.flags .f-consistency{color:var(--warn)} ul.flags .f-released{color:var(--ok)}
details.rm{padding:0}
details.rm summary{display:grid;grid-template-columns:32px minmax(0,1fr) 150px 130px 80px;gap:12px;align-items:center;padding:12px 16px;cursor:pointer;list-style:none}
details.rm summary::-webkit-details-marker{display:none}
.rank{font-weight:700;color:var(--ink-3);font-variant-numeric:tabular-nums}
.rmname{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rmfig{text-align:right;font-variant-numeric:tabular-nums}
.rmfig small{display:block;font-size:11px;color:var(--ink-3)}
.rmbody{padding:0 16px 16px}
.rq.compact{padding:8px 12px;cursor:pointer;align-items:center}
.rq.compact:hover{background:var(--band)}
.howline{font-size:12px;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rqR textarea,.rmbody textarea{min-height:56px;height:auto;resize:vertical}
/* the door as its parts, design checks, the kiosk */
tr.partsrow td{background:var(--band)}
.parts{display:grid;grid-template-columns:200px 220px 1fr 1fr;gap:12px;align-items:start}
.parts label.small{display:flex;flex-direction:column;gap:4px}
.ticks{display:flex;flex-direction:column;gap:4px}
.card.checks{border-left:3px solid var(--warn)}
.chk{display:grid;grid-template-columns:70px 1fr auto;gap:12px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}
.chk:first-of-type{border-top:0}
.chk .rid{font-size:11px;font-weight:700;color:var(--ink-3)}
.chk.bad .rid{color:var(--bad)}
.ticks label{flex-direction:row !important;align-items:center;justify-content:flex-start;gap:6px;text-align:left}
.ticks input[type=checkbox]{width:auto;min-height:0;margin:0}
/* possibilities, journeys, door behaviour, scenarios */
.possgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}
.poss{border:1px solid var(--line);border-radius:0;padding:12px;display:flex;flex-direction:column;gap:6px;background:var(--card)}
.poss.in{border-color:var(--ok)} .poss.out{opacity:.65}
.poss h4{margin:2px 0;font-size:14px;line-height:1.35}
.poss p{margin:0}
.axes{display:grid;gap:4px;margin-top:4px}
.ax{display:grid;grid-template-columns:84px 1fr;gap:2px 8px;align-items:center;font-size:12px}
.axl{color:var(--ink-3)} .axv b{font-weight:600} .axv small{color:var(--ink-3)}
.axh{grid-column:2;font-size:11px;color:var(--ink-3)}
.neg{color:var(--bad)}
.dots{display:inline-flex;gap:3px;vertical-align:middle} .dots i{width:8px;height:8px;border-radius:50%;background:var(--line-2);display:inline-block} .dots i.on{background:var(--act)}
.chip small{font-weight:400;margin-left:4px}
.possmini{padding:8px 0;border-top:1px solid var(--line)} .possmini:first-of-type{border-top:0}
.possmini .small{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px}
.jboard{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.jcol{background:var(--band);border-radius:0;padding:8px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.jcol h5{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.jcol .small{margin:0}
.jstep{background:var(--card);border:1px solid var(--line);border-radius:0;padding:8px;font-size:12px}
.jstep p{margin:4px 0}
.jstep.miss{border-left:3px solid var(--bad)}
.need{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:6px;color:var(--bad)}
.jstrip{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:12px;padding:8px 12px;background:var(--tint);border-radius:0;font-size:12px}
.scen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sc{border:1px solid var(--line);border-radius:0;padding:12px;display:flex;flex-direction:column;gap:6px}
.sc.rec{border-color:var(--act);background:var(--tint)}
.sc .big{font-size:22px;font-weight:600}
.sc p{margin:0}
.sax{display:grid;grid-template-columns:90px 1fr;gap:2px 8px;font-size:12px;align-items:center}
.sax .sbar{grid-column:1/-1}
.sbar{display:block;height:6px;background:var(--line);border-radius:0;overflow:hidden} .sbar i{display:block;height:6px;background:var(--act)}
table.beh td{font-size:12px}
select.sm{min-height:28px;height:28px;font-size:12px;width:auto;max-width:170px;padding:2px 6px}
b.bad{color:var(--bad)}
.jstep .tag{white-space:nowrap}
.addrow .span2{grid-column:1/-1}
#dlg:has(.dlg.wide){width:min(1000px,calc(100vw - 32px));max-width:none}
.dlg.wide .grid2{gap:16px}
.dlg.wide h4{margin:0 0 6px}

/* 14 October: the rail stays in place, the stage shows one section at a time, the side column scrolls on its own */
.app{align-items:start}
.rail{position:sticky;top:env(safe-area-inset-top,0px);height:100vh;height:100dvh;overflow-y:auto;box-sizing:border-box}
.secnav{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px;padding:0;border:0}
.secnav button{font:600 12px/1 var(--f);color:var(--text-blue);background:var(--tint);border:1px solid transparent;border-radius:999px;padding:7px 12px;cursor:pointer}
.secnav button:hover{border-color:var(--tint-2)}
.secnav button[aria-selected="true"]{background:var(--act);color:var(--act-ink)}
.secnav button:focus-visible{outline:2px solid var(--act);outline-offset:2px}
.sidecol{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;padding-right:2px}
@media (max-width:1100px){.sidecol{max-height:none;overflow:visible}}
@media (max-width:600px){.rail{position:sticky;top:auto;bottom:0;height:auto;overflow:visible;z-index:40}}

/* the rule book: a short list beside the chosen item; each side scrolls on its own, the page stays put */
.ld{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:16px;align-items:start}
.lpane{min-width:0;background:var(--card);border:1px solid var(--line);border-radius:0;display:flex;flex-direction:column;max-height:calc(100vh - 230px);max-height:calc(100dvh - 230px)}
.lbar{padding:12px 12px 0;gap:8px}
.lbar input[type=search]{flex:1;min-width:0}
.opts.lbar{padding-bottom:8px;border-bottom:1px solid var(--line)}
.llist{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0}
.lrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:8px 12px;cursor:pointer;font:inherit;color:inherit}
.lrow:last-child{border-bottom:0}
.lrow:hover{background:var(--band)}
.lrow.on{background:var(--tint);box-shadow:inset 3px 0 0 var(--act)}
.lrow.retired .lname b{color:var(--ink-3)}
.lrow .rid{font-size:11px;font-weight:700;color:var(--ink-3);min-width:64px}
.lname{display:flex;flex-direction:column;min-width:0}
.lname b{font-weight:600;overflow:hidden;text-overflow:ellipsis}
.lnum{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums;white-space:nowrap}
.thumb{width:48px;height:36px;display:grid;place-items:center;background:var(--band);border-radius:0;overflow:hidden}
.thumb .artpic,.thumb .artimg{width:48px;height:36px;object-fit:contain}
.artpic g{stroke:var(--ink-2)}
.artpic .a{stroke:var(--act)}
.artpic .t{stroke:var(--ink-3)}
.dpane{min-width:0;position:sticky;top:16px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.acard{display:flex;flex-direction:column;gap:12px}
.apic{display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--band);border-radius:0;padding:12px}
.apic .artpic{width:200px;height:150px}
.apic .artimg.big{max-width:100%;max-height:200px;object-fit:contain;border-radius:0;background:var(--card)}
.ahead h2{font-size:18px;line-height:1.3;text-wrap:balance;margin:2px 0}
.fgrid{display:flex;flex-direction:column;gap:2px}
.frow{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:12px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}
.frow:first-child{border-top:0}
.frow .fl{display:flex;flex-direction:column;font-weight:600;font-size:12px;color:var(--ink-2)}
.frow .fl small{font-weight:400;color:var(--ink-3);font-size:11px}
.frow .fc{min-width:0}
.frow .fc input:not([type=checkbox]),.frow .fc select,.frow .fc textarea{width:100%;box-sizing:border-box}
.numin{display:inline-flex;align-items:center;gap:6px}
.numin input{width:120px!important}
.unitrow{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.unitrow input{width:64px!important}
.bookbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:0;padding:10px 14px;margin-bottom:12px}
.bookbar.draft{background:var(--warn-t);border-color:transparent}
.bookbar.draft b{color:var(--warn)}
.btn.quiet.danger{background:transparent;border-color:transparent;color:var(--bad)}
.btn.quiet.danger:hover{background:var(--bad-t)}
ul.log{list-style:none;padding:0;margin:4px 0 0;display:flex;flex-direction:column;gap:6px}
ul.log li{border-top:1px solid var(--line);padding-top:6px}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:0;overflow:hidden}
.seg button{border:0;background:var(--card);padding:6px 12px;font:600 12px/1 var(--f);color:var(--ink-2);cursor:pointer}
.seg button+button{border-left:1px solid var(--line-2)}
.seg button[aria-pressed="true"]{background:var(--tint);color:var(--text-blue)}
.pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.pcard{display:flex;flex-direction:column;gap:6px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:0;padding:14px;cursor:pointer;font:inherit;color:inherit}
.pcard:hover{border-color:var(--act)}
.pcard:focus-visible{outline:2px solid var(--act);outline-offset:2px}
.pcard h3{font-size:15px;line-height:1.3;margin:2px 0 0;text-wrap:balance}
.pcard .pprice{font-size:16px;font-weight:600;margin-top:auto}
@media (max-width:1100px){.ld{grid-template-columns:minmax(0,1fr)}.lpane{max-height:none}.dpane{position:static;max-height:none}.grid2{grid-template-columns:minmax(0,1fr)}}
.toast{pointer-events:none}

/* 14 October: the detail side holds the most, it gets the most room; labels keep one width, values take the rest */
.ld{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.frow{grid-template-columns:minmax(0,200px) minmax(0,1fr)}
.frow .fc > span{overflow-wrap:anywhere}
.acard .tbl td{vertical-align:middle}
.acard .tbl td:first-child{width:38%}
.canvas2{grid-template-columns:minmax(0,1fr) 380px}
@media (max-width:1280px){.ld{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media (max-width:1100px){.ld{grid-template-columns:minmax(0,1fr)}.canvas2{grid-template-columns:minmax(0,1fr)}}
.frow .fc textarea{min-height:0;height:auto;resize:vertical}
.capsec{margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}
.capsec .eyebrow{margin:6px 0 2px}
.capsec .frow:first-of-type{border-top:0}
/* the price on screen: once and every year, side by side */
.big.two{display:flex;gap:20px;align-items:flex-end;justify-content:flex-end;flex-wrap:wrap}
.big.two > span{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}
.big.two small{font-size:11px;font-weight:600;color:var(--ink-3);text-transform:none;letter-spacing:0;margin-top:2px}
.scprice{font-size:15px;line-height:1.5;margin:4px 0}.scprice b{font-size:20px}
.possmini[data-act]{cursor:pointer;border-radius:0;margin:0 -6px;padding:8px 6px}
.possmini[data-act]:hover,.possmini[data-act]:focus-visible{background:var(--band);outline:none}
.possmini .go{color:var(--text-blue);font-weight:700;font-size:16px;line-height:1}
.poss.flash{box-shadow:0 0 0 2px var(--act);transition:box-shadow .3s}
@media (prefers-reduced-motion:reduce){.poss.flash{transition:none}}
.tag.rm{display:inline-flex;align-items:center;gap:4px}
.tag.rm button{border:0;background:transparent;color:inherit;cursor:pointer;font-weight:700;padding:0 2px;line-height:1}
.tag.rm button:hover{color:var(--bad)}
/* lines changed by hand, and the open items */
table.lines tr.edited td:first-child{box-shadow:inset 3px 0 0 var(--act)}
table.lines tr.removed td{color:var(--ink-3)} table.lines tr.removed s{color:var(--ink-3)}
table.lines td .lnote{display:block;font-size:11.5px;color:var(--ink-3);margin-top:2px;line-height:1.35}
.rulesays{display:block;font-size:11px;color:var(--ink-3);margin-top:2px}
.warnword{color:var(--warn);font-weight:600}
.linesbar{margin-bottom:10px;gap:12px;align-items:center}
.btn.warn{background:var(--warn-t);border-color:var(--warn);color:var(--warn)}
.oitem{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 0;border-top:1px solid var(--line)}
.oitem:first-of-type{border-top:0}
.oitem > div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.oitem > div:first-child b{font-weight:600}
.oitem:not(.done) > div:first-child{border-left:3px solid var(--warn);padding-left:10px}
.oitem.done > div:first-child{border-left:3px solid var(--ok);padding-left:10px}
.oitem .row{flex-shrink:0}
@media (max-width:700px){.oitem{flex-direction:column;align-items:stretch}}
table.lines td:nth-child(2){white-space:nowrap}
table.lines input.inline-num{padding:3px 6px;min-height:0;height:28px}
/* open items: first in the Offer row, in the warning colour while any is open */
.secnav button.oi.open{background:var(--warn-t);color:var(--warn);border-color:var(--warn)}
.secnav button.oi.open[aria-selected="true"]{background:var(--warn);color:#fff;border-color:var(--warn)}
.secnav button.oi.open .cnt,.secnav button.oi .cnt{display:inline-block;min-width:18px;margin-left:6px;padding:0 5px;border-radius:999px;background:var(--warn);color:#fff;font-size:11px;line-height:16px;text-align:center}
.secnav button.oi.open[aria-selected="true"] .cnt{background:#fff;color:var(--warn)}
.tabs .cnt.warn{background:var(--warn);color:#fff}
/* the state of an article as a chip */
.schip{display:inline-flex;align-items:center;font:600 11px/1 var(--f);border-radius:999px;padding:4px 9px;border:1px solid transparent;white-space:nowrap;vertical-align:middle}
.schip.s-current{background:var(--ok-t);color:var(--ok)}
.schip.s-forthcoming{background:var(--read-t);color:var(--read)}
.schip.s-withdrawn{background:var(--neutral-t);color:var(--ink-3)}
.lrow .lcode .schip{margin-left:6px;padding:2px 7px;font-size:10.5px}
.schips{display:flex;flex-wrap:wrap;gap:6px}
button.schip{cursor:pointer;padding:7px 12px;font-size:12px;background:transparent;border-color:var(--line-2);color:var(--ink-2)}
button.schip:hover{border-color:var(--act)}
button.schip:focus-visible{outline:2px solid var(--act);outline-offset:2px}
button.schip.s-current[aria-pressed="true"]{background:var(--ok);border-color:var(--ok);color:#fff}
button.schip.s-forthcoming[aria-pressed="true"]{background:var(--read);border-color:var(--read);color:#fff}
button.schip.s-withdrawn[aria-pressed="true"]{background:var(--ink-3);border-color:var(--ink-3);color:#fff}
button.schip:not([aria-pressed="true"]){background:transparent;color:var(--ink-2);border-color:var(--line-2)}
/* a short list as chips, with its label above */
.flab{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--ink-2)}
.flab.inline{flex-direction:row;align-items:center;flex-wrap:wrap}
.chipset{gap:6px}
/* the tender radar */
.kpis.tdk{margin-bottom:14px}
.tdfilters{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.tdfilters input[type=search]{max-width:none;width:100%}
.tdfilters .lbl{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:0 4px 0 12px;align-self:center}
.lcount{margin:0 0 8px}
.lrow.tdrow{position:relative;padding-left:16px}
.lrow.tdrow .relbar{position:absolute;left:0;top:8px;bottom:8px;width:4px;border-radius:0;background:var(--line-2)}
.lrow.tdrow.rel-high .relbar{background:var(--act)} .lrow.tdrow.rel-medium .relbar{background:var(--read)}
.tdtags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.tdtags:empty{display:none}
.tag.new{background:var(--warn-t);color:var(--warn);font-weight:600} .tag.ok{background:var(--ok-t);color:var(--ok)}
.tdstarmark{color:var(--warn)}
.lrow.tdrow .lnum{display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap}
.fitpill{display:inline-block;min-width:46px;text-align:center;font:700 12px/1 var(--f);padding:5px 8px;border-radius:999px;background:var(--neutral-t);color:var(--ink-2)}
.fitpill.f-hi,.fitbig.f-hi b{background:var(--ok-t);color:var(--ok)} .fitpill.f-mid,.fitbig.f-mid b{background:var(--read-t);color:var(--read)} .fitpill.f-lo,.fitbig.f-lo b{background:var(--warn-t);color:var(--warn)}
.soonword{color:var(--bad);font-weight:600}
.tdcard h2{margin:4px 0 2px}
.kpis.tdfacts{margin:14px 0}
.kpis.tdfacts .kpi b{font-size:15px}
.tdfit{display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:start;padding:14px 0;border-top:1px solid var(--line)}
.fitbig{display:flex;flex-direction:column;align-items:center;gap:6px}
.fitbig b{display:flex;align-items:center;justify-content:center;width:92px;height:92px;border-radius:50%;font-size:24px;background:var(--neutral-t);color:var(--ink-2)}
.fitbig span{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.fchips{display:flex;flex-wrap:wrap;gap:6px}
.fchip{display:inline-flex;flex-direction:column;gap:1px;font:600 12px/1.2 var(--f);padding:5px 9px;border-radius:0;border:1px solid transparent;background:var(--neutral-t);color:var(--ink-2)}
.fchip small{font-weight:500;font-size:10.5px;opacity:.85}
.fchip.s-available{background:var(--ok-t);color:var(--ok)} .fchip.s-unconfirmed{background:var(--warn-t);color:var(--warn)} .fchip.s-planned{background:var(--read-t);color:var(--read)}
.fchip.s-partner{background:var(--neutral-t);color:var(--ink-2)} .fchip.s-no{background:var(--bad-t);color:var(--bad)}
.fchip.generic{background:transparent;border-color:var(--line-2);color:var(--ink-3)}
.fchip.mini{flex-direction:row;font-size:11px;padding:3px 8px;border-radius:999px;white-space:nowrap}
.tdsum{white-space:pre-line;line-height:1.5;max-height:220px;overflow:auto;background:var(--band);border-radius:0;padding:10px 12px;font-size:13px}
.tdlinks{gap:8px;margin-top:12px;flex-wrap:wrap} .tdlinks:empty{display:none}
.tdact{gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);align-items:center}
.opts.tdfeat{max-height:220px;overflow:auto}
@media (max-width:900px){.tdfit{grid-template-columns:1fr}.fitbig{flex-direction:row}}
.tdfilters input[type=search]{padding:9px 12px;border:1px solid var(--line-2);border-radius:0;font:inherit;background:var(--card);color:var(--ink)}
.lpane .lcount{padding:10px 14px 6px;margin:0}
/* two companies */
.cotag{display:inline-block;font:600 10.5px/1 var(--f);padding:3px 7px;border-radius:999px;margin-left:6px;vertical-align:middle;white-space:nowrap}
.cotag.co-idtech{background:#E7F1FC;color:#0366CC} .cotag.co-axxession{background:#E6ECF3;color:#1D4268}
:root[data-theme="dark"] .cotag.co-axxession{background:#1E2A38;color:#9DB8D6}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .cotag.co-axxession{background:#1E2A38;color:#9DB8D6}}
.cotags{display:flex;gap:4px;margin-top:4px} .cotags .cotag{margin-left:0}
.offby{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.opts.sm button{min-height:24px;padding:2px 9px;font-size:12px}
button.tag.warn{border:0;cursor:pointer;background:var(--warn-t);color:var(--warn);font:600 11px/1 var(--f);padding:4px 8px;border-radius:999px}
.lgroup{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:12px 14px 4px;margin:0}
.cosw{display:inline-block;width:14px;height:14px;border-radius:0;flex-shrink:0;border:1px solid var(--line)}
.lrow.corow{align-items:center;gap:10px}
.cologo{max-height:34px;max-width:160px;border:1px solid var(--line);border-radius:0;padding:4px;background:#fff}
.cofilter{margin-right:8px}
/* the menu fits a laptop screen without scrolling (14 October 2026): tighter items, one-line labels, the person always at the bottom */
.rail{gap:2px;padding:10px 0 8px;overflow-x:hidden;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.mark{margin-bottom:8px}
.rail button{width:64px;padding:6px 2px;gap:3px;font-size:11px;line-height:1.15;flex-shrink:0}
.rail button span{white-space:nowrap}
.rail svg{width:20px;height:20px}
.rail .rolebtn{position:sticky;bottom:0;background:var(--rail);padding-top:8px;margin-top:auto}
@media (max-height:640px){.rail button{padding:4px 2px;gap:2px}.rail svg{width:18px;height:18px}.mark{display:none}}
@media (max-width:600px){.rail{gap:0;padding:4px;overflow-x:auto}.rail .rolebtn{position:static;margin-top:0}}
/* the start page */
.hkpis{margin-bottom:16px}
.hgrid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:16px;align-items:start}
.hside{display:flex;flex-direction:column;gap:16px}
@media (max-width:1000px){.hgrid{grid-template-columns:1fr}}
.hlist{display:flex;flex-direction:column}
.hrow{display:flex;align-items:center;gap:12px;text-align:left;width:100%;border:0;border-top:1px solid var(--line);background:transparent;padding:10px 4px;cursor:pointer;color:inherit;font:inherit}
.hrow:first-child{border-top:0}
.hrow:hover{background:var(--tint)}
.hrow:focus-visible{outline:2px solid var(--act);outline-offset:-2px}
.hrow .lname{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.hrow .lname b{font-weight:600}
.hdot{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:var(--neutral-t)}
.hdot.u0{background:var(--bad)} .hdot.u1{background:var(--warn)} .hdot.u2{background:var(--read)} .hdot.u3{background:var(--ink-3)}
.hgo{color:var(--ink-3);font-size:18px}
/* the ten patterns from the tender library */
.libcard{margin-bottom:12px;border-color:var(--blue,#0366CC)}
.liblist{margin:8px 0 4px;padding-left:20px;display:grid;gap:6px}
.liblist li span.small{display:block}
/* a list row with a name and a number only: the name takes the room */
.lrow:has(> .lname:first-child + .lnum:last-child){grid-template-columns:minmax(0,1fr) auto}
/* the questionnaire dialog and the answers on the project */
.qparts{display:grid;gap:6px}.qparts label{align-items:flex-start;gap:8px}
.qncard details{border-top:1px solid var(--line);padding:8px 0}.qncard details:first-of-type{border-top:0}.qncard summary{cursor:pointer}
.qncard td:first-child{width:45%;color:var(--ink-2,inherit)}
.dlg .body > .seg{flex-shrink:0;align-self:flex-start}

/* ---------------------------------------------------------------- laptops and tablets (QA, 15 October 2026) */
/* the side column as a drawer below 1,100 px: Ask next, Worth a look and Evidence stay one tap away */
.sidetoggle,.sidehead{display:none}
@media (max-width:1100px){
  .sidecol{position:fixed;top:0;right:0;bottom:0;width:min(400px,92vw);max-height:none;overflow-y:auto;overscroll-behavior:contain;background:var(--bg);z-index:60;padding:16px;
    transform:translateX(105%);visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s;box-shadow:-12px 0 32px rgba(17,24,39,.18)}
  .sidecol.open{transform:none;visibility:visible;transition:transform .2s ease}
  .sidehead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
  .sidetoggle{display:inline-flex;align-items:center;gap:8px;position:fixed;right:16px;bottom:16px;z-index:55;min-height:48px;padding:0 18px;border-radius:0;border:0;
    background:var(--act,#0366CC);color:#fff;font:600 15px/1 var(--f);box-shadow:0 6px 18px rgba(3,102,204,.35);cursor:pointer}
  .sidetoggle .cnt{background:#fff;color:var(--act,#0366CC);border-radius:999px;padding:3px 8px;font-size:13px}
  .sidescrim{position:fixed;inset:0;background:rgba(17,24,39,.25);z-index:59}
  .tbl input[type=text]{min-width:110px}.tbl select{min-width:110px;max-width:170px}
}
@media (prefers-reduced-motion:reduce){.sidecol{transition:none}}
/* a table wider than its card says it scrolls */
.tblhint{margin:4px 0 0;font-size:12.5px;color:var(--ink-3,#6A7482)}
/* the stage tabs stay at hand; once the header scrolls away they carry the project's name and price */
.stagebar{position:sticky;top:0;z-index:30;background:var(--bg);margin:0 -24px;padding:0 24px}
/* the name and price sit at the right of the tabs once stuck: showing them never moves the page (code review, 15 October 2026) */
.stagebar .mini{position:absolute;right:24px;top:0;bottom:0;display:flex;align-items:center;gap:12px;font-size:14px;max-width:45%;visibility:hidden;pointer-events:none}
.stagebar.stuck .mini{visibility:visible}.stagebar.stuck{box-shadow:0 6px 12px -10px rgba(17,24,39,.35)}
.stagebar .mini b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.stagebar .mini span{white-space:nowrap}
.stagesentinel{height:1px}
/* a tap shows what a mouse shows on hover */
.taptip{position:fixed;z-index:80;max-width:min(360px,90vw);background:#1F2937;color:#fff;font-size:14px;line-height:1.4;padding:8px 12px;border-radius:0;box-shadow:0 6px 18px rgba(0,0,0,.25)}
/* touch screens: targets of 44 px, text of 12 px at least, no drag hint */
@media (pointer:coarse){
  button,.btn,select,input[type=text],input[type=number],input[type=email],input[type=tel],input[type=date],input[type=search],[role=tab],summary,.schip,.chip[data-act],label.inline select{min-height:44px !important}
  .btn.sm,.btn.quiet{min-height:44px;padding-top:8px;padding-bottom:8px}
  input[type=checkbox],input[type=radio]{width:24px;height:24px}
  .inline-num{min-height:40px}
  .rail button{min-height:56px}
  .draghint{display:none}
  .small,small{font-size:12.5px}
  .axh,.big.two small,.chk .rid,.cotag,.fchip small,.fchip.mini,.fitbig span,.frow .fl small,.jcol h5,.lgroup,.lrow .lcode .schip,.lrow .rid,.rail .av,.rail .rolebtn,.rail button,.rmfig small,.rulesays,.schip,.secnav button.oi.open .cnt,.secnav button.oi .cnt,.tdfilters .lbl,button.tag.warn,table.lines td .lnote{font-size:12px}
}
@media (max-width:900px){.stagebar{margin:0 -16px;padding:0 16px}.stagebar .mini{right:16px;max-width:38%}.stagebar .mini span{display:none}}
@media (max-width:900px){.tbl select{min-width:96px;max-width:140px}.tbl input[type=text]{min-width:96px}.tbl .inline-num{width:64px}}
/* the forms library (16 October 2026) */
.fgrid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.fcard .cap{align-items:center}
.formscard td{vertical-align:top}.formscard td:first-child{width:28%}.linkbtn{border:0;background:none;padding:0;font:inherit;color:var(--acc,#3E6F9F);text-decoration:underline;cursor:pointer;text-align:left}
.fframe{width:100%;height:min(68vh,760px);border:1px solid var(--line);border-radius:0;margin-top:12px;background:#fff}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:12px}.kpi{border:1px solid var(--line);border-radius:0;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.kpi b{font-size:20px}
.formscard .btn{white-space:nowrap}

/* ---------------------------------------------------------------- the platform look (23 October 2026)
   Measured on the IDtech platform: an 88 px Blue rail with the modes, a 312 px white menu panel, white pages,
   1 px #E5E5E5 lines, square corners, DM Sans. Blue text below 18 px stays #0366CC for contrast; Blue #238CFF carries
   the rail, the main button, the underline of a tab and the large figures. */
body{font:400 14px/1.5 var(--f);background:#fff}
.app{grid-template-columns:88px 312px minmax(0,1fr)}
.rail{width:88px;padding:14px 12px;gap:12px;background:var(--rail)}
.mark{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;margin:0 0 4px;opacity:.85;line-height:1.3}
.mark small{display:inline;font-size:11px;font-weight:600;opacity:1;margin-left:2px}
.rail button{width:64px;min-height:64px;border-radius:0;padding:12px 4px;font-size:11px;font-weight:600;gap:8px}
.rail button[aria-current="page"]{background:rgba(255,255,255,.18);box-shadow:none}
.rail button:not([aria-current="page"]):hover{background:rgba(0,0,0,.12)}
.rail svg{width:20px;height:20px;stroke-width:2}
.rail .av{width:44px;height:44px;background:rgba(255,255,255,.1);font-size:14px;font-weight:600;letter-spacing:.08em}
.panel{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:100%;position:sticky;top:0;height:100vh;overflow-y:auto}
.panel .ph{display:flex;align-items:center;gap:12px;padding:18px;border-bottom:1px solid var(--line)}
.panel .ph svg{width:34px;height:34px;flex:none}
.panel .ph b{display:block;font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.panel .ph small{display:block;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.panel .ml{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);padding:24px 24px 8px}
.panel nav{display:grid;gap:6px;padding:0 20px}
.panel nav button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:transparent;padding:11px 16px;font-size:14px;font-weight:700;color:var(--ink);cursor:pointer;border-radius:0}
.panel nav button:hover{background:var(--band)}
.panel nav button[aria-current="true"]{background:var(--tint);color:var(--text-blue)}
.panel nav button svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;flex:none}
.panel nav button .cnt{margin-left:auto;font-size:12px;font-weight:600;color:var(--ink-2)}
.panel nav button small{display:block;font-size:12px;font-weight:400;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.panel nav button span.t{min-width:0}
.panel .pf{margin-top:auto;padding:8px 24px 16px;font-size:12px;color:var(--ink-2)}
@media (min-width:1101px){.tabs.inpanel{display:none}}
@media (max-width:1100px){.app{grid-template-columns:88px minmax(0,1fr)}.panel{display:none}}
@media (max-width:600px){.app{grid-template-columns:1fr}.rail{width:auto}}
main{padding:32px 40px 40px}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.18em;color:var(--ink-2);margin:0 0 12px}
h1{font-size:30px;font-weight:600;letter-spacing:-.02em;line-height:1.5}
h2{font-size:20px;font-weight:600;letter-spacing:-.02em}
h3{font-size:15px;font-weight:600;letter-spacing:-.02em}
.card{border-radius:0;box-shadow:none;border-color:var(--line)}
.btn{border-radius:0;border-color:var(--line-2);font-size:14px;font-weight:600;padding:8px 16px;min-height:36px}
.btn.main{background:var(--act);border-color:var(--act);color:#fff}
.btn.main:hover{opacity:.9}
.btn.quiet{color:var(--text-blue)}
input[type=text],input[type=number],input[type=email],input[type=tel],input[type=url],input[type=password],input[type=date],select,textarea{border-radius:0;min-height:36px;padding:7px 10px}
th{background:var(--band);font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--ink-2);padding:12px 16px}
td{padding:12px 16px;border-top:1px solid var(--line)}
.tbl{border-radius:0}
tr.open:hover td{background:var(--tint-2)}
.tabs{gap:28px;border-bottom:1px solid var(--line)}
.tabs button{padding:12px 0;font-size:15px;font-weight:600;color:var(--ink-2)}
.tabs button[aria-selected="true"]{color:var(--text-blue);border-bottom-color:var(--act)}
.price .big{font-size:30px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
dialog{border-radius:0;box-shadow:var(--float)}
.note{border-radius:0}
.drop{border-radius:0;border-color:var(--line-2)}
.mark{font-size:10px;letter-spacing:.14em}
.mark small{display:none}
.secnav{gap:0 24px;border-bottom:1px solid var(--line);margin-bottom:20px}
.secnav button{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:10px 0;font:600 14px/1.2 var(--f);color:var(--ink-2)}
.secnav button[aria-pressed="true"],.secnav button[aria-current="true"],.secnav button[aria-selected="true"],.secnav button.on{color:var(--text-blue);border-bottom-color:var(--act);background:transparent}

/* ---------------------------------------------------------------- Nora (24 October 2026): the pane beside the project, its start and its results */
.sidetabs{display:flex;gap:0;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:2}
.sidetabs button{flex:1;border:0;background:transparent;padding:12px 8px;font:inherit;font-size:14px;font-weight:600;color:var(--ink-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.sidetabs button[aria-selected="true"]{color:var(--text-blue);border-bottom-color:var(--act)}
.sidetabs button:hover{color:var(--ink)}
.card.nora{display:flex;flex-direction:column;gap:14px;border-top:3px solid var(--act)}
.nhead{display:flex;align-items:center;gap:12px}
.nhead > div{flex:1;min-width:0}
.nhead b{display:block;font-size:18px;font-weight:700;letter-spacing:-.01em}
.nhead small{display:block;font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nmark{width:34px;height:34px;flex:none;display:grid;place-items:center;background:var(--act);color:#fff;font-weight:700;font-size:16px;border-radius:50%}
.nbusy{display:flex;align-items:center;gap:8px;background:var(--tint-2);padding:8px 10px;margin:0}
.nq{background:var(--tint-2);padding:14px;display:flex;flex-direction:column;gap:8px}
.nq h4{margin:0;font-size:15px;line-height:1.35}
.nq p{margin:0}
.nq.done{background:var(--band)}
.nq .opts{flex-wrap:wrap}
.nacts{display:flex;flex-wrap:wrap;gap:6px}
.nacts button{border:1px solid var(--line-2);background:#fff;padding:8px 12px;font:inherit;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;border-radius:0}
.nacts button:hover:not([disabled]){border-color:var(--act);color:var(--text-blue)}
.nacts button[disabled]{opacity:.5;cursor:default}
.nres{display:flex;flex-direction:column;gap:8px}
.nres .eyebrow{margin:0}
.nf{border:1px solid var(--line);border-left:3px solid var(--line-2);padding:10px 12px;display:flex;flex-direction:column;gap:6px;background:#fff}
.nf p{margin:0}
.nf.sev-high{border-left-color:#AA0000}
.nf.sev-medium{border-left-color:#B45309}
.nf.sev-low{border-left-color:var(--act)}
.nf.done{opacity:.6}
.nf .row{gap:6px;flex-wrap:wrap}
.nasks summary{cursor:pointer}
.nlog{display:flex;flex-direction:column;gap:8px;max-height:44vh;overflow-y:auto;overscroll-behavior:contain}
.nlog .msg{padding:10px 12px;max-width:92%}
.nlog .msg p{margin:0;font-size:14px;line-height:1.45;white-space:pre-wrap}
.nlog .msg.me{align-self:flex-end;background:var(--tint)}
.nlog .msg.nora{align-self:flex-start;background:var(--band)}
.nprop{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--line);margin-top:8px;padding-top:8px}
.nprop .row{gap:6px}
.nask{display:flex;gap:8px;align-items:flex-end}
.nask textarea{flex:1;min-height:44px;resize:vertical}
.nstart{display:flex;flex-direction:column;gap:6px}
.nstart p{margin:0}
.nstart .btn.quiet.sm{padding:2px 4px;text-decoration:underline}
.kpis.small3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.kpis.small3 .kpi b{font-size:18px}
.nconcepts .scen{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.nconcepts .sc h4{margin:4px 0 6px;font-size:16px}
.nconcepts .sc p{margin:0 0 8px}
.nora-docs{display:flex;flex-direction:column;gap:16px;margin-top:16px}
.ntext{display:flex;flex-direction:column;gap:6px;padding:12px 0;border-top:1px solid var(--line)}
.ntext:first-of-type{border-top:0}
.ntext textarea{width:100%;font:inherit;font-size:14px;line-height:1.5}
.ntext textarea[readonly]{background:var(--band)}
.ntext p{margin:0}
.nswitch{display:flex;flex-direction:column;gap:12px}
.nswitch label{align-items:flex-start;gap:10px}
.nswitch input{margin-top:4px}
@media (max-width:1100px){.sidetabs{position:static}}
.nres > .btn,.nres > button{align-self:flex-start}
.nqline{margin:0;background:var(--tint-2);padding:8px 10px}
.nqline .btn{padding:0 2px;text-decoration:underline}

/* ---------------------------------------------------------------- the first conversation, why we ask, our recommendation (24 October 2026) */
.talk{display:flex;flex-direction:column;gap:12px}
.tlog{max-height:52vh}
.tnoted{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tnoted .chip{display:inline-flex;align-items:center;gap:4px}
.tnoted .x{border:0;background:transparent;cursor:pointer;font:inherit;font-size:14px;line-height:1;padding:0 2px;color:var(--ink-2)}
.tnoted .x:hover{color:var(--ink)}
.tq{background:var(--tint-2);padding:12px;display:flex;flex-direction:column;gap:8px}
.tq p{margin:0}
.tq .opts{flex-wrap:wrap}
.tq .tdoors{gap:8px;align-items:flex-end;flex-wrap:wrap}
.tq .tdoors input{max-width:110px}
.tq > .btn.quiet.sm{align-self:flex-start;padding:2px 0;text-decoration:underline}
.tprice{margin-top:8px;background:#fff;border:1px solid var(--line);padding:10px 12px}
.tprice .eyebrow{margin:0 0 4px}
.tprice b{font-size:18px}
.tprice p{margin:6px 0 0}
.tfoot{justify-content:space-between;flex-wrap:wrap;gap:6px}
.rectag{display:inline-block;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:600;letter-spacing:.02em;background:var(--tint);color:var(--text-blue);vertical-align:1px}
button.isrec{border-color:var(--act)}
.why{display:block;font-weight:400;color:var(--ink-2);font-size:12px;line-height:1.4;margin-top:2px}
.fact .lab .why{max-width:260px}
.recline{margin:0 0 6px;color:var(--ink-2)}
.recline .btn{padding:0 2px;text-decoration:underline}
.fact .src.rec{display:block}
.fact .lab{flex-wrap:wrap;row-gap:2px}
.fact .lab .why{flex-basis:100%;max-width:none;padding-left:18px;margin-top:0}
.fact{align-items:start}
.fact .lab{padding-top:8px}
.law .lawlist{margin:6px 0;padding-left:18px}
.law .lawlist li{margin-bottom:6px}
.law .lawadd{margin-top:6px;display:flex;flex-direction:column;gap:6px}
.law .lawadd label{display:flex;flex-direction:column;gap:2px}
.mqs{display:flex;flex-direction:column;gap:8px;margin:6px 0}
.mq{background:var(--tint-2);padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.mq p{margin:0}
.mq .opts{flex-wrap:wrap}
.mq .btn.quiet.sm{padding:0 2px;text-decoration:underline}
.mq.done{background:transparent;padding:0}
.nlater{background:var(--band);padding:8px 10px}
.nlater summary{cursor:pointer}
.nlater .row{padding:4px 0}
.tdrop{border:1px dashed var(--line-2);background:#fff;padding:16px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.tdrop.on{border-color:var(--act);background:var(--tint)}
.nhome{margin-bottom:16px}
.nhome > p{margin:0;font-size:16px}
.nhome .nhead b{font-size:22px}
.nhome .nask1{font-size:18px;font-weight:600;margin:4px 0 0}
.nchoices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.nchoice{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;border:1px solid var(--line-2);background:#fff;padding:14px 16px;cursor:pointer;font:inherit;color:var(--ink);border-radius:0}
.nchoice b{font-size:15px}
.nchoice:hover,.nchoice[aria-pressed="true"]{border-color:var(--act);background:var(--tint-2)}
.nname{gap:8px;align-items:center}
.tdone{gap:10px}
.nchoices.small2{grid-template-columns:1fr}
.nchoices.small2 .nchoice{padding:10px 12px}

/* ---------------------------------------------------------------- only Nora at the start (25 October 2026) */
.nchoices.two{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.nhome .hlist{margin-top:4px}
.hpark{margin-top:8px}
.hpark > summary{cursor:pointer;color:var(--ink-2);padding:8px 0}
.talkview{display:grid;grid-template-columns:minmax(0,760px) minmax(240px,320px);gap:20px;align-items:start;margin-top:16px}
.talkview .card.nora{min-height:60vh}
.talkview .tlog{max-height:none}
.gathered{position:sticky;top:16px;display:flex;flex-direction:column;gap:6px}
.gathered .grow{display:flex;flex-direction:column;border-top:1px solid var(--line);padding:6px 0}
.gathered .grow b{font-size:14px;font-weight:600}
label.tdrop{cursor:pointer}
@media (max-width:1100px){.talkview{grid-template-columns:1fr}.gathered{position:static}}
.hover{display:flex;flex-direction:column;gap:16px}
.hgrid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
@media (max-width:900px){.hgrid2{grid-template-columns:1fr}}
.nunf{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px}
.nunf .hlist{flex-basis:100%}
.nunf > .btn.quiet.sm{padding:0;text-decoration:underline}
.hrow.static{display:flex;align-items:center;gap:8px;cursor:default}
.hrow.static .lname{flex:1}
.h1sub{font-weight:400;font-size:.6em;margin-left:8px}
.stand{display:inline-block;font-size:13px;font-weight:600;padding:3px 8px;background:var(--band);color:var(--ink)}
.stand.st-su{background:var(--tint);color:var(--text-blue)}
.stand.st-ready{background:#E6F2E6;color:#006600}
.stand.st-sent{background:#FDF1E3;color:#B45309}
.stand.st-won{background:#E6F2E6;color:#006600}
.stand.st-lost,.stand.st-none{background:var(--band);color:var(--ink-2)}
.projtable .nextbtn{white-space:normal;text-align:left;max-width:260px}
.projtable td{vertical-align:middle}
/* part 30: Access, the audit log, Nora's set-up of a person, reports */
.newc{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.newc p{margin:0 0 6px}
details.fold>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary h3::before{content:"›";display:inline-block;margin-right:8px;transition:transform .15s}
details.fold[open]>summary h3::before{transform:rotate(90deg)}
details.fold:not([open])>summary{margin-bottom:0}
.afilters{gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.afilters select{max-width:220px}
.btn.on{background:var(--tint,#EAF4FF);border-color:var(--blue,#0366CC)}
.aday{margin-top:12px}
.aday>.eyebrow{margin:0 0 4px}
.arow{display:block;border-top:1px solid var(--line);padding:6px 0}
.arow>summary{list-style:none;cursor:pointer}
.arow>summary::-webkit-details-marker{display:none}
.arow>summary,.arow:not(details){display:grid;grid-template-columns:110px minmax(160px,1.2fr) 3fr auto;gap:12px;align-items:baseline}
.arow:not(details){grid-template-columns:110px minmax(160px,1.2fr) 3fr}
.asub{margin:6px 0 4px 122px;display:grid;gap:3px}
.npers .nchoices,.nrep .nchoices{display:grid;gap:8px}
.npers .nchoices.two{grid-template-columns:1fr 1fr}
.plist{display:grid;gap:4px;max-height:320px;overflow:auto}
.nsum{background:var(--tint,#EAF4FF);border:0;margin:8px 0}
.nsum ul{margin:6px 0 0 18px}
.rfacts{margin:8px 0 12px 18px}
.nrep h4{margin:16px 0 6px}
.stand.st-late{background:#FDECEA;color:#9B1C1C}
td.nowrap{white-space:nowrap}
@media (max-width:760px){.arow>summary,.arow:not(details){grid-template-columns:1fr}.asub{margin-left:0}.npers .nchoices.two{grid-template-columns:1fr}}
/* part 31: Nora's guidance for a person not yet in, the newcomers, welcome back */
.nguide{margin-top:14px;padding:12px 14px;background:var(--tint,#EAF4FF);border-radius:8px}
.nguide ol{margin:6px 0 10px 18px}.nguide p{margin:0}
#newcomers .nrow{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding:8px 0}
.wback{margin-bottom:16px}.wback .nhead{display:flex;align-items:center;gap:12px}
.wback .wbl{margin:2px 0 0 18px;font-size:14px}.wrecs{gap:8px;flex-wrap:wrap}
.card.nbrief{display:flex;flex-direction:column;gap:6px;border-top:3px solid var(--act)}
/* part 32: today for you, ask Nora, questions from the field */
#today .nrow,#askcard .row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
#today .nrow{border-top:1px solid var(--line);padding:8px 0}
#today,#askcard{margin-top:16px}
.kbrow{border-top:1px solid var(--line);padding:10px 0}.kbk{border-top:1px solid var(--line);padding:6px 0;gap:12px}
/* part 33: settings and invites */
.kvrow{display:grid;grid-template-columns:200px 1fr;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.nchoices.three{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ivmail{background:var(--band,#F3F3F3);padding:10px 12px;border-radius:6px}
.ivmail pre{white-space:pre-wrap;font:inherit;font-size:13px;margin:6px 0 0}
@media (max-width:760px){.kvrow{grid-template-columns:1fr}.nchoices.three{grid-template-columns:1fr}}
@media (min-width:601px) and (max-height:980px){.rail button{min-height:52px;padding:6px 4px;gap:4px}.rail .rolebtn{min-height:56px}}
/* part 34: the Nora box */
.nbox{border-top:3px solid var(--act);margin-bottom:16px}
.nb-in{gap:10px;align-items:center;flex-wrap:nowrap}
.nbox .nb-in input{font-size:16px;padding:10px 12px}
.nb-hints{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.nb-hints .chip{cursor:pointer;border:1px solid var(--line);background:#fff}
.nbar .nb-q{align-self:flex-end;background:var(--band,#F3F3F3);padding:8px 12px;border-radius:10px;margin:10px 0 4px auto;max-width:80%;width:fit-content}
.nbar .nb-a{padding:4px 0 10px;border-bottom:1px solid var(--line)}
.nbar .nb-a p{margin:0 0 6px}.nbar .nb-in{margin-top:12px}
.nb-t td{padding:3px 12px 3px 0}
.nbh{cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 12px;font-size:13px;font-family:inherit;color:inherit}.nbh:hover{border-color:var(--act)}
/* Home: one card for Nora and the two routes; today stands apart */
.nbhome{margin:6px 0 2px}.nbhome input{font-size:16px;padding:10px 12px}
.nbsug{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.nbor{margin:10px 0 2px}
#today{margin:16px 0}
/* part 35: Nora's drawings and trust answers */
.nbvis{margin:10px 0 6px;background:var(--tint-2,#EEF7FF);border-radius:10px;padding:10px}
.nbvis svg.nvis{width:100%;height:auto;display:block;max-width:640px}
.nbtopics{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.nbarts{display:flex;gap:12px;flex-wrap:wrap}.nbarts figure{margin:0;width:150px;text-align:center}.nbarts svg{width:120px;height:auto}
.noff input{margin-top:3px}
.nbvis svg.nvis{margin:0 auto}
.lrow.tdrow{grid-template-columns:minmax(0,1fr) auto;align-items:start}.lrow.tdrow .lname{min-width:0;overflow-wrap:anywhere}.lrow.tdrow .lnum{padding-top:2px}
.nbul{margin:4px 0 8px 18px}.nbul li{margin:2px 0}

/* sign-in, from web/runtime.js */

  #srgate{position:fixed;inset:0;z-index:99999;background:#F3F3F3;display:flex;align-items:center;justify-content:center;font-family:"DM Sans",Arial,sans-serif}
  #srgate .box{background:#fff;border:1px solid #E5E5E5;padding:0 0 26px;width:min(420px,calc(100vw - 32px))}
  #srgate .band{background:#238CFF;color:#fff;font-weight:700;letter-spacing:3px;font-size:14px;padding:16px 28px;display:flex;align-items:center;gap:12px;margin-bottom:28px}
  #srgate .band i{width:16px;height:16px;border:2px solid #fff;display:inline-block}
  #srgate .in{padding:0 28px}
  #srgate h1{font-size:22px;font-weight:500;margin:0 0 6px;color:#000}
  #srgate p{font-size:14px;color:#5C5C5C;margin:0 0 18px;line-height:1.45}
  #srgate label{display:block;font-size:12px;color:#5C5C5C;margin-bottom:6px}
  #srgate input{width:100%;box-sizing:border-box;font:inherit;font-size:15px;padding:11px 12px;border:1px solid #A6A6A6;border-radius:0;margin-bottom:14px}
  #srgate input:focus{outline:2px solid #8FC3FF;border-color:#238CFF}
  #srgate button{width:100%;font:inherit;font-size:15px;font-weight:500;padding:11px;border:0;border-radius:0;background:#238CFF;color:#fff;cursor:pointer}
  #srgate button[disabled]{opacity:.55;cursor:default}
  #srgate .link{background:none;color:#0366CC;padding:8px 0 0;font-weight:400;font-size:13px}
  #srgate .err{color:#B42318;font-size:13px;min-height:18px;margin-top:8px}
  #srgate .google{display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:#000;border:1px solid #A6A6A6}
  #srgate .google:hover{border-color:#238CFF}
  #srgate .or{display:flex;align-items:center;gap:10px;margin:18px 0 14px;font-size:12px;color:#5C5C5C}
  #srgate .or:before,#srgate .or:after{content:"";flex:1;height:1px;background:#E5E5E5}
