/* Heritage Valley FCU palette.
   Green (#7AB800) and light blue (#00BFF3) are 2.4:1 and 2.2:1 on white -
   rules and fills only, never text. */
:root{
  --primary:#005BBB;
  --dark:#005B9A;
  --green:#7AB800;
  --light:#00BFF3;
  --wash:#EAF7FE;
  --ink:#12181D;
  --muted:#5B6770;
  --line:#DCE4EA;
  --panel:#FFFFFF;
  --bg:#F4F6F8;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);
     font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.app{display:flex;flex-direction:column;min-height:100vh}

.brandbar{display:flex;align-items:center;gap:14px;padding:10px 16px;background:var(--panel);
          border-bottom:3px solid var(--green)}
.brandbar img{height:30px}
.brandbar .tag{font-size:12.5px;color:var(--muted);border-left:1px solid var(--line);
               padding-left:14px}
.brandbar .who{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}

/* startup / runtime problems, stated where they cannot be missed */
.banner{padding:11px 16px;font-size:12.8px;line-height:1.5;border-bottom:1px solid #E7C9C9;
        background:#FDF3F3;color:#7A2020}
.banner.warn{background:#FDF8E8;border-bottom-color:#EBD9A8;color:#7A5A10}
.banner.hidden{display:none}

.toolbar{display:flex;gap:10px;padding:10px 16px;background:var(--panel);
         border-bottom:1px solid var(--line)}
.folder{display:flex;align-items:center;gap:8px;flex:1;background:#F7FAFC;
        border:1px solid var(--line);border-radius:8px;padding:6px 10px}
.folder input{flex:1;border:0;background:none;font:inherit;font-size:12.5px;color:#374151;outline:none;
              font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.btn{border:1px solid var(--line);background:var(--panel);color:#37424B;border-radius:8px;
     padding:7px 13px;font-size:12.5px;font-weight:600;cursor:pointer}
.btn:hover:not(:disabled){background:#F2F7FB;border-color:#C3D2DE}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn.primary:hover:not(:disabled){background:#0069D9}
.btn.wide{display:block;width:100%;text-align:center;margin-bottom:8px;text-decoration:none}

.tabs{display:flex;gap:2px;padding:0 16px;background:var(--panel);border-bottom:1px solid var(--line)}
.tab{padding:9px 14px;font-size:12.5px;font-weight:600;color:var(--muted);
     border-bottom:2px solid transparent;cursor:pointer}
.tab.on{color:var(--primary);border-bottom-color:var(--primary)}
.tab:hover{color:var(--primary)}

.sel{display:flex;align-items:center;gap:8px;background:#F7FAFC;border:1px solid var(--line);
     border-radius:8px;padding:4px 10px;font-size:12px;color:var(--muted)}
.sel input{border:0;background:none;font:inherit;font-size:12.5px;color:#37424B;outline:none;width:150px}
.sel input[type=date]{width:132px;cursor:pointer}
.sel .hint{margin:0;white-space:nowrap}

.cols{display:grid;grid-template-columns:1fr 330px;gap:0;flex:1;min-height:0}
.col.rail{background:var(--panel);border-left:1px solid var(--line)}
.hidden{display:none !important}
.head{display:flex;align-items:baseline;gap:10px}
.head .hint{margin:0}
.head #foldAll{margin-left:auto}
.head #foldAll:disabled{color:var(--muted);cursor:default;text-decoration:none}
.col{padding:14px 16px;overflow:auto}
.col.left{background:var(--panel);border-right:1px solid var(--line)}
.col.mid{background:var(--bg)}
.col.right{background:var(--panel);border-left:1px solid var(--line)}
.lbl{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);
     font-weight:700;margin:0 0 9px}
.hint{font-size:11.5px;color:var(--muted);line-height:1.5;margin:6px 0 0}
.empty{font-size:12.5px;color:var(--muted);padding:10px;border:1px dashed var(--line);
       border-radius:8px;background:#FAFCFD}

select{font:inherit;font-size:12px;padding:5px 7px;border:1px solid var(--line);
       border-radius:7px;background:#F7FAFC;color:#37424B;max-width:100%}

/* agenda items */
.item{border:1px solid var(--line);border-radius:9px;padding:9px 10px;margin-bottom:8px}
.item.unmatched{border-color:#E7C9C9;background:#FEF8F8}
.item .head{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.item .key{font-size:10.5px;font-weight:800;color:#fff;background:var(--dark);
           border-radius:5px;padding:2px 6px}
.item .t{font-size:12.8px;font-weight:600;flex:1;min-width:0;overflow:hidden;
         text-overflow:ellipsis;white-space:nowrap}
.item .warn{font-size:10px;font-weight:800;color:#8A6100;background:#FDF1D6;
            border-radius:5px;padding:2px 6px}
.item .done{font-size:10px;font-weight:800;color:#3F6212;background:#EDF7DC;
            border-radius:5px;padding:2px 6px}
.item .done.bad{color:#8B2020;background:#FCEDED}
.item .row{display:flex;gap:7px}
.item .row .src{flex:1;min-width:0}

/* breadcrumb */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:0 2px 8px;font-size:12px}
.crumbs a{color:var(--primary);text-decoration:none;font-weight:600}
.crumbs a:hover{text-decoration:underline}
.crumbs .sep{color:var(--muted)}

/* file list */
.file{display:flex;align-items:center;gap:9px;padding:6px 8px;border-bottom:1px solid var(--line);
      font-size:12.3px}
.file.dir{cursor:pointer}
.file.dir:hover{background:var(--wash)}
.file.dir .n{font-weight:600;color:var(--primary)}
.file.dir .n::after{content:" ›";color:var(--muted)}
.file .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file a.n{color:var(--primary);text-decoration:none;font-weight:600}
.file a.n:hover{text-decoration:underline}
.file .sz{font-size:11px;color:var(--muted)}
.chip{font-size:9.5px;font-weight:800;padding:2px 5px;border-radius:4px;color:#fff;background:#8A97A3}
.chip.pdf{background:#B03030}.chip.xlsx,.chip.xlsm,.chip.csv{background:#1E7A46}
.chip.docx,.chip.doc{background:var(--dark)}.chip.txt,.chip.md{background:#5B7C99}

/* progress */
.progress{height:8px;background:var(--wash);border-radius:99px;overflow:hidden}
.progress .bar{height:100%;width:0;background:var(--green);transition:width .25s}
.swatches{display:flex;gap:7px}
.sc{width:22px;height:22px;border-radius:6px;display:inline-block;border:1px solid rgba(0,0,0,.08)}

.status{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--panel);
        border-top:1px solid var(--line);font-size:11.5px;color:var(--muted)}
.status .spacer{flex:1}
.status .conf{font-weight:700;color:var(--dark)}

@media (max-width: 980px){
  .cols{grid-template-columns:1fr}
  .col{border:0;border-bottom:1px solid var(--line)}
}


/* ---- checklist ---------------------------------------------------------- */
.meter{display:flex;height:10px;border-radius:99px;overflow:hidden;background:#EEF1F4;margin-bottom:6px}
.meter i{display:block}
.meter .have{background:var(--green)}
.meter .none{background:#C9D2DA}
.meter .skip{background:#E2B4B4}
.mline{display:flex;flex-wrap:wrap;gap:14px;font-size:11.5px;color:var(--muted);margin-bottom:14px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}
.dot.have{background:var(--green)}.dot.none{background:#C9D2DA}
.dot.skip{background:#E2B4B4}.dot.warn{background:#E0A800}

/* An agenda item is one numbered line, the way the agenda itself reads.
   A line that carries a single document *is* that document; only an item with
   several opens out into the short indented list below it. */
.iwrap{border-bottom:1px solid #F1F4F7}
.iwrap:last-of-type{border-bottom:0}
.aitem{display:flex;align-items:center;gap:8px;padding:5px 4px;font-size:12.6px}
.aitem:hover{background:#FBFDFE}
.aitem.off{opacity:.55}
.aitem .num{min-width:24px;text-align:right;font-weight:700;color:var(--muted);font-size:12px}
.aitem .t{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;
          white-space:nowrap}
.aitem .t .alt{font-weight:400;color:var(--muted);font-size:11.5px;margin-left:7px}
.aitem .own{font-size:11px;color:var(--muted);min-width:52px}
.aitem select.src{max-width:190px;font-size:11.5px}
.aitem .sum{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,monospace}
.aitem .sum.ok{color:#4F7A15}

.docs{padding-left:24px;margin-left:12px;border-left:2px solid var(--wash)}
.doc{display:flex;align-items:center;gap:8px;padding:4px 4px;font-size:12.2px}
.doc.off{opacity:.55}
.doc .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc .own{font-size:11px;color:var(--muted);min-width:52px}
.doc select.src{max-width:190px;font-size:11.5px}
.menu{color:#9AA3AF;cursor:pointer;font-weight:700;padding:0 3px;user-select:none}
.menu:hover{color:var(--primary)}
a.menu{text-decoration:none}
.menu.ghost{visibility:hidden}

/* "+ document" is there when you reach for it and out of the way otherwise:
   43 permanent add-links would be louder than the list itself. */
.iwrap>.addrow{max-height:0;opacity:0;overflow:hidden;padding:0 0 0 30px;
               transition:max-height .12s,opacity .12s}
.iwrap:hover>.addrow,.iwrap:focus-within>.addrow{max-height:26px;opacity:1;padding-bottom:5px}
.addrow{padding:6px 10px 8px 30px}
.addlink{font-size:11.5px;font-weight:600;color:var(--primary);cursor:pointer;
         background:none;border:0;padding:0}
.addlink:hover{text-decoration:underline}
.additem{display:flex;gap:10px;align-items:center;margin:6px 0 18px}
.additem .hint{margin:0}

.pill.have{color:#33691E;background:#EDF7DC}
.pill.none{color:#5B6770;background:#EEF1F4}
.pill.skip{color:#8B2020;background:#FCEDED}
.pill.warn{color:#8A6100;background:#FDF1D6}
.pill.once{color:#6B4E00;background:#FDF1D6}
.pill.new{color:#0B5A7A;background:var(--wash)}
.pill{font-size:10px;font-weight:800;border-radius:5px;padding:2px 6px;white-space:nowrap}

/* ---- right rail --------------------------------------------------------- */
.card{border:1px solid var(--line);border-radius:10px;padding:11px;margin-bottom:12px;
      background:var(--panel)}
.chase{padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.chase:last-of-type{border-bottom:0}
.chase .ch{display:flex;align-items:center;gap:8px}
.chase .who{font-weight:700}
.chase .cnt{margin-left:auto;font-size:11px;color:var(--muted)}
.chase .cd{padding:2px 0 0 12px;font-size:12px;color:#4B5560}
.chase .cd::before{content:"· ";color:var(--muted)}
textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;font:inherit;
         font-size:12px;min-height:66px;color:#37424B;background:#F7FAFC;resize:vertical}

/* ---- the agenda, its own tab -------------------------------------------- */
.agenda-page{border:1px solid var(--line);border-radius:12px;background:#fff;
             padding:26px 30px 30px;max-width:760px}
.agenda-page .ap-head{border-bottom:2px solid var(--green);padding-bottom:10px;
                      margin-bottom:14px}
.agenda-page .ap-org{font-size:11px;font-weight:700;letter-spacing:.09em;
                     text-transform:uppercase;color:var(--muted)}
.agenda-page .ap-title{font-size:18px;font-weight:800;color:var(--primary);margin-top:6px}
.agenda-page .ap-sub{display:flex;justify-content:space-between;align-items:baseline;
                     margin-top:4px;font-size:12.5px;color:#37424B}
.agenda-page .ap-sub span:first-child{font-weight:700}
.agenda-page .ah{display:flex;gap:10px;margin:16px 0 6px;padding:4px 8px;
                 background:var(--wash);border-radius:6px;font-weight:800;
                 font-size:13px;color:var(--primary)}
.agenda-page .ah .num{min-width:26px}
.agenda-page .ai{display:flex;align-items:baseline;gap:9px;padding:3px 8px 3px 14px;
                 font-size:13px}
.agenda-page .ai .num{min-width:24px;text-align:right;color:var(--muted);font-weight:700}
.agenda-page .ai .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agenda-page .ai .dots{flex:1;min-width:16px;border-bottom:1px dotted #C3CDD6;
                       transform:translateY(-3px)}
.agenda-page .ai .pg{font-weight:700;color:var(--primary);font-size:12px;white-space:nowrap}

/* ---- browsing ------------------------------------------------------------ */
.browsebar{display:flex;align-items:center;gap:9px;padding:0 2px 10px;font-size:12px;
           color:var(--muted);flex-wrap:wrap}
.browsebar code{background:var(--wash);border-radius:5px;padding:1px 5px;color:#37424B}

/* ---- verification and the record ---------------------------------------- */
.verdict{margin-top:12px;border-radius:10px;padding:10px 12px;font-size:12.5px;
         border:1px solid var(--line)}
.verdict.good{background:#F3F9EC;border-color:#CFE3B4}
.verdict.bad{background:#FDF3F3;border-color:#F0C9C9}
.verdict .vh{font-weight:700}
.verdict.good .vh{color:#4F7A15}
.verdict.bad .vh{color:#A32020}
.verdict .pline{margin-top:6px;padding-left:16px;color:#37424B}
.verdict .pline.soft{color:var(--muted)}
.build{border-bottom:1px solid var(--line);padding:9px 0}
.build:last-child{border-bottom:0}
.build .bh{display:flex;align-items:center;gap:9px}
.build .bn{font-weight:700;font-size:12.7px}
.build .bm{font-size:11.5px;color:var(--muted);margin-top:3px}
.build .bs{font-size:11.5px;color:#37424B;margin-top:3px}

/* ---- build log ---------------------------------------------------------- */
.buildlog{margin-top:12px;font-size:11px;font-family:ui-monospace,Menlo,monospace;
          color:var(--muted);max-height:280px;overflow:auto}
.logline{padding:2px 0;border-bottom:1px solid var(--line)}
.logline.bad{color:#8B2020}

/* ---- notes -------------------------------------------------------------- */
.noterow{padding:0 6px 7px 30px}
.docs .noterow{padding-left:4px}
.noterow textarea.note{min-height:38px;font-size:11.5px;background:#fff;
                       border-color:#E4EAEF;color:#37424B}
.noterow textarea.note:focus{outline:2px solid var(--wash);border-color:var(--primary)}
.aitem .menu{font-size:12px}

/* ---- per-document options ----------------------------------------------- */
.optrow{display:flex;flex-wrap:wrap;align-items:center;gap:12px;
        padding:7px 8px 8px 30px;background:#FAFCFE;border-top:1px solid #EEF2F5}
.docs .optrow{padding-left:4px}
.optrow label{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}
.optrow select{font-size:11.5px}
.optrow .hint{margin:0;flex:1;min-width:180px}

/* ---- settings: the standing agenda -------------------------------------- */
.tsec{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:12px}
.tsec .th{display:flex;align-items:center;gap:8px;padding-bottom:7px;
          border-bottom:2px solid var(--green)}
.tsec .th .rn{font-weight:800;color:var(--primary);font-size:13px;min-width:28px}
.titem{display:flex;align-items:center;gap:8px;padding:5px 0 5px 4px}
.titem .num{min-width:22px;text-align:right;color:var(--muted);font-weight:700;font-size:12px}
.tdoc{display:flex;align-items:center;gap:7px;padding:3px 0 3px 30px}
input.ti,.tdoc input{font:inherit;font-size:12.5px;color:#37424B;background:#F7FAFC;
                     border:1px solid var(--line);border-radius:7px;padding:5px 8px;
                     flex:1;min-width:0}
input.ti:focus,.tdoc input:focus{outline:2px solid var(--wash);border-color:var(--primary)}
.tsec .th input.ti{font-weight:700;color:var(--primary)}
.tdoc input.own{flex:0 0 92px}
.tdoc + .optrow{padding:6px 8px 8px 30px;margin-bottom:2px;border-radius:8px}
.menu.on{color:var(--primary)}
.chk{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);
     white-space:nowrap}

/* ---- agenda sections ---------------------------------------------------- */
.section{display:flex;align-items:baseline;gap:9px;margin:20px 0 8px;
         padding-bottom:5px;border-bottom:2px solid var(--green);
         cursor:pointer;user-select:none}
.section:first-child{margin-top:2px}
.section:hover .st{text-decoration:underline}
.section:focus-visible{outline:2px solid var(--light);outline-offset:3px}
/* the twisty points down when the section is open, right when it is folded */
.section .tw{display:inline-block;width:11px;font-size:10px;color:var(--muted);
             transform-origin:50% 40%;transition:transform .12s}
.section.closed .tw{transform:rotate(-90deg)}
.section.closed{opacity:.85}
.section .rn{font-weight:800;color:var(--primary);font-size:13px;min-width:30px}
.section .st{font-weight:700;font-size:13.5px;color:var(--primary);flex:1}
.section .cnt{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,monospace}
.secnote{font-size:11.5px;color:var(--muted);padding:2px 4px 4px 30px}
.addrow.section-add{border-top:0;padding-left:30px;padding-top:2px}
