@import url("./appearance-themes.css");
@import url("./precision-ui.css");
/* Shared progressive-enhancement navigation: native dialog + nested details. */
[hidden] { display:none !important; }
.site-nav-launcher {
  display:flex !important; align-items:center; flex-wrap:wrap; gap:12px !important;
  margin:19px 0 0 !important; padding:0 !important;
}
.site-nav-launcher .site-nav-trigger,
.site-nav-launcher .site-nav-fallback {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  appearance:none; min-height:44px; margin:0 !important; padding:9px 14px !important;
  border:1px solid #4b9669 !important; border-radius:10px !important;
  background:#1e5a35 !important; color:#f3fff6 !important;
  text-decoration:none; font:700 15px system-ui,sans-serif !important;
  line-height:1.25 !important; cursor:pointer;
}
.site-nav-launcher .site-nav-trigger:hover,
.site-nav-launcher .site-nav-fallback:hover { background:#277545 !important; }
.site-nav-launcher .site-nav-trigger:focus-visible,
.site-nav-launcher .site-nav-fallback:focus-visible,
.site-nav-panel a:focus-visible,
.site-nav-panel summary:focus-visible,
.site-nav-close:focus-visible { outline:3px solid #69e99c;outline-offset:3px; }
.site-nav-bars { display:inline-block; font-size:21px; line-height:1; }
.site-nav-current { font-size:13px; color:#b3c7ba; line-height:1.4; }
.site-nav-current strong { color:#f2fff5; font-weight:600; }
dialog.site-nav-dialog {
  position:fixed; inset:0 auto 0 0; box-sizing:border-box;
  width:min(420px, 94vw); max-width:none; height:100vh; height:100dvh;
  max-height:none; margin:0; padding:0; overflow:hidden;
  background:#0d1710; color:#f2fff5; border:0; border-right:1px solid #325f42;
  border-radius:0 15px 15px 0; box-shadow:8px 0 44px #0008;
}
dialog.site-nav-dialog::backdrop { background:rgba(0,0,0,.65); }
.site-nav-panel { display:flex; flex-direction:column; min-height:100%; max-height:100%; font:15px system-ui,-apple-system,sans-serif; }
.site-nav-panel-top { display:flex;align-items:center;justify-content:space-between;
  gap:10px;padding:20px 18px 16px;border-bottom:1px solid #294733; }
.site-nav-title { font-size:20px;font-weight:750;line-height:1.3; }
.site-nav-subtitle { color:#aec4b3;font-size:12px;margin-top:3px; }
.site-nav-close { flex-shrink:0;cursor:pointer; min-height:44px;min-width:44px;
  background:#1b2e22;color:#e5f8ea;border:1px solid #45654d;border-radius:9px;
  font:26px system-ui; margin:0 !important; padding:4px 10px !important; line-height:1; }
.site-nav-dialog nav.site-nav-scroll { display:block !important;flex-wrap:initial !important;gap:0 !important;margin:0 !important;overflow:auto;overscroll-behavior:contain;flex:1;padding:14px 13px 24px;scrollbar-color:#496d51 #142018; }
.site-nav-tree { padding:0;margin:0; list-style:none; }
.site-nav-tree ul { list-style:none; margin:2px 0 6px 12px; padding:0 0 0 12px; border-left:1px solid #33503d; }
.site-nav-tree li { margin:0;padding:0; }
.site-nav-dialog nav .site-nav-tree a { border:0 !important; margin:0 !important; box-shadow:none !important; }
.site-nav-tree summary,
.site-nav-tree a,
.site-nav-tree .site-nav-pending {
  display:flex;align-items:center;gap:7px;min-height:42px;
  padding:10px 11px; border-radius:8px; line-height:1.35;
  text-decoration:none; color:#e3f6e8; font-size:15px; cursor:pointer;
  box-sizing:border-box;
}
.site-nav-tree summary { font-weight:700; list-style:none; }
.site-nav-tree summary::-webkit-details-marker { display:none; }
.site-nav-tree summary::before { content:'›'; color:#90d4a1; font-size:19px; font-weight:800;
  display:inline-flex;justify-content:center;align-items:center;width:13px;transition:transform .12s ease; }
.site-nav-tree details[open] > summary::before { transform:rotate(90deg); }
.site-nav-tree a:hover,.site-nav-tree summary:hover { background:#1e3827; }
.site-nav-tree a[aria-current=page] { background:#1e5735; color:white; font-weight:750; outline:1px solid #4c9365; }
.site-nav-pending { color:#a6b5aa !important; cursor:default !important; }
.site-nav-planned { color:#91aa98; margin-left:auto; white-space:nowrap; font-size:11px; font-weight:450; }
.site-nav-leaf-label { flex:1; }
.site-nav-divider { height:1px;background:#294733;margin:12px 8px; }
.site-nav-section-label { color:#91cfa4;text-transform:uppercase;font-size:11px;letter-spacing:.08em;font-weight:750;padding:13px 11px 8px; }
.site-nav-footer { color:#a9bcad;border-top:1px solid #294733;padding:13px 18px;font-size:12px;line-height:1.5; }
body.site-nav-modal-open { overflow:hidden; }
/* Compact workspace shortcuts and separate expandable reference sections. */
dialog.site-nav-dialog{width:min(440px,94vw);border-radius:0 22px 22px 0;background:var(--ft-surface,#132019);color:var(--ft-ink,#f4fff7)}
.site-nav-panel{height:100%;min-height:0;max-height:none}
.site-nav-panel-top{flex:none;padding:calc(18px + env(safe-area-inset-top)) 18px 16px;background:var(--ft-surface-alt,#1b3525);border-color:var(--ft-line,#34503b)}
.site-nav-title{font-size:22px;letter-spacing:-.025em}.site-nav-subtitle{font-size:12px;line-height:1.5}
.site-nav-close{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:50%;font-size:24px}
.site-nav-dialog nav.site-nav-scroll{min-height:0;padding:12px;scrollbar-width:thin}
.site-nav-dialog nav .site-nav-tree>li.site-nav-shortcut>a,.site-nav-dialog nav .site-nav-tree>li.site-nav-group>details>summary{gap:12px;min-height:52px;padding:10px 12px;margin:3px 0!important;background:var(--ft-surface-alt,#1b3525);border:1px solid transparent!important;border-radius:12px;font-size:14px;line-height:1.35}
.site-nav-icon{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;color:var(--ft-accent,#7cdda0)}
.site-nav-icon svg{display:block;width:23px;height:23px}.site-nav-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.site-nav-link-title{font-weight:650;overflow-wrap:anywhere}.site-nav-link-description{color:var(--ft-muted,#b2cbb8);font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.site-nav-dialog nav .site-nav-tree>li.site-nav-shortcut>a[aria-current=page]{border-color:var(--ft-accent,#7cdda0)!important;outline:none;border-inline-start-width:4px!important}
.site-nav-group{margin:0!important;border:0;border-radius:0;overflow:hidden}
.site-nav-group>details>summary::before{display:none}
.site-nav-group>details>summary::after{content:'›';margin-left:auto;color:var(--ft-muted);font-size:19px;line-height:1}
.site-nav-group>details[open]>summary::after{transform:rotate(90deg)}
.site-nav-tree ul{border-color:var(--ft-line,#34503b);margin:4px 10px 10px;padding-left:8px}.site-nav-tree ul a{font-size:13px;min-height:44px}
.site-nav-footer{flex:none;padding:8px 18px calc(10px + env(safe-area-inset-bottom));font-size:11px;line-height:1.4;border-color:var(--ft-line,#34503b)}
@media(prefers-reduced-motion:reduce){.site-nav-tree summary::before{transition:none}}

/* Account link row is distinct from the open public reference library. */
.site-nav-account{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:11px 16px;border-top:1px solid #33523d}
.site-nav-account span{font-size:12px;color:#badac3}
.site-nav-account a,.site-nav-account button{font-size:13px;line-height:1.4;background:#153021;color:#d1f3d8;text-decoration:none;border:1px solid #4a7759;border-radius:8px;padding:8px 10px;cursor:pointer;margin:0}
.site-nav-account a:focus-visible,.site-nav-account button:focus-visible{outline:2px solid #69e99c;outline-offset:2px}
.site-nav-account{display:block;flex:none;max-height:35dvh;overflow:auto;padding:12px 18px;background:var(--ft-surface-alt,#1b3525);border-color:var(--ft-line,#34503b)}
.site-nav-account>span{display:block;margin-bottom:6px;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.site-nav-account details summary{cursor:pointer;font-size:13px;font-weight:650;min-height:44px;display:flex;align-items:center;gap:8px;list-style:none}
.site-nav-account details summary::-webkit-details-marker{display:none}.site-nav-account details summary::after{content:'⌄';margin-left:auto}.site-nav-account details[open] summary::after{transform:rotate(180deg)}
.site-nav-account-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-top:6px}
.site-nav-account .site-nav-account-links :is(a,button){box-sizing:border-box;min-height:44px;display:flex;align-items:center;justify-content:center;max-width:100%;font:inherit;font-size:12px;text-align:center;white-space:normal;overflow-wrap:anywhere}

/* Site-wide staff feedback. The control stays clear of the mobile browser edge. */
.ft-feedback-launcher{
 position:fixed;z-index:70;right:max(16px,env(safe-area-inset-right));
 bottom:max(20px,calc(env(safe-area-inset-bottom) + 14px));
 min-height:46px;padding:11px 16px;margin:0!important;
 color:#f5fff7;background:#21623a;border:1px solid #83c994;
 border-radius:24px;box-shadow:0 5px 24px #0009;
 font:700 14px system-ui,-apple-system,sans-serif;cursor:pointer;
}
.ft-feedback-launcher:hover{background:#287849}
.ft-feedback-launcher:focus-visible,
.ft-feedback-dialog button:focus-visible,
.ft-feedback-dialog textarea:focus-visible,
.ft-feedback-dialog select:focus-visible{outline:3px solid #87efae;outline-offset:2px}
dialog.ft-feedback-dialog{
 border:1px solid #467f55;border-radius:16px;
 padding:0;width:min(530px,calc(100vw - 28px));max-width:530px;
 max-height:calc(100dvh - 35px);overflow:auto;
 color:#eefcf1;background:#11241a;box-shadow:0 14px 55px #000b;
 position:fixed;margin:auto;inset:0;
}
dialog.ft-feedback-dialog::backdrop{background:#000b}
.ft-feedback-frame{padding:20px;box-sizing:border-box}
.ft-feedback-heading{display:flex;gap:12px;align-items:center;justify-content:space-between}
.ft-feedback-heading h2{margin:0;color:#eefcf1;font-size:21px}
.ft-feedback-close{min-width:44px;min-height:44px;border:1px solid #567563;border-radius:10px;
 background:#22382a;color:white;font-size:26px;cursor:pointer}
.ft-feedback-intro{margin:9px 0 14px;color:#c9e1d0}
.ft-feedback-context{background:#1a3424;border:1px solid #386248;border-radius:10px;padding:12px;
 display:flex;flex-direction:column;gap:4px;overflow-wrap:anywhere;font-size:13px}
.ft-feedback-context code{white-space:normal;word-break:break-all;color:#9cceb2}
.ft-feedback-dialog label{display:block;margin:15px 0 6px;font-weight:700;font-size:14px}
.ft-feedback-dialog select,.ft-feedback-dialog textarea{
 box-sizing:border-box;display:block;width:100%;margin:0;min-height:45px;
 background:#0b1d11;color:white;border:1px solid #71967a;border-radius:8px;
 padding:11px;font:15px/1.45 system-ui,-apple-system,sans-serif}
.ft-feedback-dialog textarea{min-height:132px;resize:vertical}
.ft-feedback-privacy{color:#b8d3c0;font-size:12px;line-height:1.5}
.ft-feedback-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.ft-feedback-actions button{margin:0;min-height:44px;border-radius:9px;padding:9px 14px;
 border:1px solid #669472;background:#1c402b;color:#f0fff5;cursor:pointer;font-weight:700}
.ft-feedback-actions .ft-feedback-send{background:#287444}
.ft-feedback-actions button:disabled{opacity:.65;cursor:wait}
.ft-feedback-message{min-height:20px;margin:9px 0 0;font-size:13px}
.ft-feedback-message.is-success{color:#b2f1c4}
.ft-feedback-message.is-error{color:#ffcab2}
@media(max-width:560px){
 .ft-feedback-launcher{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));font-size:13px}
 .ft-feedback-frame{padding:16px}
}

/* Shared Site ID lookup for reports. */
[data-site-picker]{min-width:0}
[data-site-picker] label{display:block;font-weight:700;margin:9px 0 5px}
[data-site-picker] input,[data-site-picker] select{display:block;box-sizing:border-box;max-width:100%;width:100%;min-height:44px;margin:6px 0 12px}
[data-site-picker] button{min-height:44px;margin:2px 0 8px}
.site-picker-status{font-size:13px;color:#b9dfc2;line-height:1.4}


/* Native date/time controls have an intrinsic minimum width on iOS Safari.
   Constrain both the control and its grid/flex label, rather than clipping panels. */
@media screen {
 :root input:is([type="date"],[type="datetime-local"],[type="time"],[type="month"],[type="week"]){
  box-sizing:border-box!important;
  display:block;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  min-inline-size:0!important;
  max-inline-size:100%!important;
  -webkit-appearance:none;
  appearance:none;
 }
 :where(label,fieldset):has(input:is([type="date"],[type="datetime-local"],[type="time"],[type="month"],[type="week"])){
  box-sizing:border-box;
  min-width:0;
  min-inline-size:0;
  max-width:100%;
 }
 input:is([type="date"],[type="datetime-local"],[type="time"],[type="month"],[type="week"])::-webkit-date-and-time-value{
  min-width:0;
  min-inline-size:0;
  text-align:left;
 }
 input:is([type="date"],[type="datetime-local"],[type="time"],[type="month"],[type="week"])::-webkit-datetime-edit{
  min-width:0;
  padding:0;
 }
}

/* Accent colors follow the selected theme; a surface border keeps badges visible on keys. */
:root body .ft-notification-badge{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:22px;min-height:22px;margin-left:6px;padding:2px 7px;border:2px solid var(--ft-surface,#fff);border-radius:999px;background:var(--ft-accent,#3065bb)!important;color:var(--ft-on-accent,#fff)!important;font:750 12px/1.25 system-ui,-apple-system,sans-serif;vertical-align:middle;white-space:nowrap;box-shadow:0 0 0 1px var(--ft-accent,#3065bb)}
:root body .ft-notification-badge[hidden]{display:none!important}
:root body .ft-job-note-badge{margin:5px 5px 5px 0;white-space:normal;max-width:100%}
.conversation-link>strong{display:flex;gap:6px;align-items:center;justify-content:space-between}
#job-note-history{max-height:280px;overflow:auto;overscroll-behavior:contain;margin:10px 0}
#job-note-history article{padding:10px 0;border-bottom:1px solid var(--ft-line,#bccde0)}
#job-note-history p{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0}
#job-note-status:empty{display:none}

/* Consistent Home buttons, including dynamically added role navigation. */
:root body a.ft-home-button.ft-home-button.ft-home-button{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;
 min-height:44px;box-sizing:border-box;margin:10px 0;padding:11px 18px;
 border:1px solid var(--ft-accent,#277d47)!important;border-radius:5px;
 background:var(--ft-accent,#277d47)!important;color:var(--ft-on-accent,#fff)!important;
 font:inherit;font-weight:700;line-height:1.3;text-decoration:none!important;
 box-shadow:0 3px 0 var(--ft-line,#34503b);cursor:pointer;
}
:root body a.ft-home-button.ft-home-button.ft-home-button:hover{
 background:var(--ft-accent-hover,#2f9653)!important;color:var(--ft-on-accent,#fff)!important;
}
:root body a.ft-home-button:focus-visible{outline:3px solid var(--ft-focus,#81ecaa)!important;outline-offset:3px}

/* No menu or library fallback before the server confirms a complete staff session. */
:root:not([data-ft-menu-ready="true"]) body .site-nav-launcher,
:root:not([data-ft-menu-ready="true"]) body #site-nav-drawer{display:none!important}
