/* InvoiceSafe V5.3 • a single cool-navy interface system.
   The white invoice document (.paper) is deliberately excluded. */
:root{
 --ui-bg:var(--ifs-bg);--ui-panel:var(--ifs-panel);--ui-panel-deep:var(--ifs-panel-deep);--ui-input:var(--ifs-input);
 --ui-border:var(--ifs-stroke);--ui-border-soft:var(--ifs-stroke-soft);--ui-primary:var(--ifs-action);
 --ui-primary-hover:var(--ifs-action-hover);--ui-strong:var(--ifs-active);--ui-teal:var(--ifs-teal);
 --ui-text:var(--ifs-text);--ui-muted:var(--ifs-text-muted);--ui-subtle:#8ea8c3;--ui-focus:var(--ifs-focus);
 --is-blue:var(--ifs-action);--is-bg:var(--ifs-bg);--is-panel:#192a3d;--is-stroke:#37516b;
 --is-copy:var(--ifs-text);--is-muted:#b4c9dd;--is-preview-workbench:var(--ifs-workbench);
}
html,body{background:var(--ifs-bg);scrollbar-color:#486883 #101a2b}
*{scrollbar-color:#476883 #101b2d}
*::-webkit-scrollbar-track{background:#101b2d}
*::-webkit-scrollbar-thumb{background:#496983;border-color:#101b2d}
/* Wide, right-to-left atmospheric blue gradient from the original InvoiceSafe style.
   Its soft lower edge fades into the navy body rather than continuing down the page. */
#is-dashboard{
 background:
  radial-gradient(ellipse 112% 500px at 100% -5%,
   rgba(56,91,147,.55) 0%,rgba(42,72,118,.39) 34%,
   rgba(27,47,77,.20) 64%,rgba(13,22,34,0) 90%),
  var(--ifs-bg)!important;
 color:var(--ifs-text)
}
#is-dashboard .is-top{
 background:linear-gradient(270deg,
  #2a4064 0%,#223452 27%,#1a2a43 60%,#172439 100%)!important;
 border-bottom-color:#364b66!important
}
#is-dashboard .is-side-nav{background:var(--ifs-sidebar);border-right:1px solid #2c435b}
#is-dashboard .is-side-link{color:#c2d3e5}
#is-dashboard .is-side-link:hover{background:#243b55;color:#f8fbff}
#is-dashboard .is-side-link.active{background:#274764;color:#f3faff;border-color:#3d7199}
#is-dashboard .is-side-privacy{color:#9cb4cc;border-top-color:#334a60}
#is-dashboard .is-page-heading h1,.is-section-heading h1{color:#f3f7fc}
#is-dashboard .is-filter.selected{background:#244466;border-color:#386693}
#is-dashboard .is-filter:hover{color:#fff}
#is-dashboard :is(.is-search input,.is-sort-label select,.is-panel-group select,.is-number-row input){background:#192638;border-color:#405a74;color:#e9f3fc}
#is-dashboard :is(.is-profile-form,.is-settings-card,.is-client-card){background:#18283b;border-color:#344d65}
#is-dashboard .is-client-card.is-client-default{background:#362c2b;border-color:#a26d3b}
#is-dashboard .is-profile-form :is(input,textarea),#is-dashboard .is-settings-card :is(input,select){background:var(--ifs-input);border-color:#486984}
#is-page-settings .is-settings-panel{background:#18283b!important;border-color:#344d65!important}
#is-dashboard :is(.is-panel-links button,.is-home-actions button){background:#203650;border-color:#405f7e;color:#e5f1fd}
#is-dashboard :is(.is-panel-links button,.is-home-actions button):hover{background:#2a4a6a}
#is-dashboard .is-segment{background:var(--ifs-input);border-color:#3d5673}
#is-dashboard .is-segment button.selected{background:#2b628e;color:#fff}
#is-page-settings .is-settings-layout{grid-template-columns:repeat(2,minmax(290px,1fr))}
@media(max-width:1150px){#is-page-settings .is-settings-layout{grid-template-columns:1fr}}
#is-dashboard .is-grid:not(.is-list) .is-document{background:#1b2b3e;border-color:#334e69}
#is-dashboard .is-grid:not(.is-list) .is-doc-actions{border-color:#324861}
#is-dashboard .is-grid:not(.is-list) .is-preview{background:#25374f}
#is-dashboard .is-grid .is-new-card{background:#172639;border-color:#42779c}
#is-dashboard .is-grid .is-new-card:hover{background:#213952;border-color:#6bafcf}
#is-dashboard .is-grid .is-new-plus{background:linear-gradient(145deg,#317fa9,#315987);border-color:#619fcb}
#is-dashboard .is-lock-toggle.locked{background:var(--ifs-locked-bg);color:var(--ifs-locked-text);border-color:#a54f60}
#is-dashboard .is-brand:hover,.editor-logo-link:hover{background:transparent!important;color:inherit!important;text-decoration:none!important}
#is-dashboard .is-brand:hover .is-brand-type{color:inherit!important}
/* Persistent desktop sidebar, with its own scrollbar when necessary. */
@media(min-width:651px){
 #is-dashboard .is-side-nav{position:sticky;top:0;align-self:start;height:100vh;min-height:0;max-height:100vh;overflow-y:auto}
}
@media(max-width:650px){#is-dashboard .is-side-nav{position:sticky;top:0;z-index:18;background:var(--ifs-sidebar)}}
/* List layout: explicitly override the old grid-card and list-card rules. */
#is-dashboard .is-grid.is-list{display:flex!important;flex-direction:column;gap:9px;width:100%;max-width:1100px}
#is-dashboard .is-grid.is-list article.is-document{
 display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-auto-flow:row;
 align-items:center;min-height:86px!important;height:86px!important;width:100%;max-width:100%;
 background:#1b2b3e;border:1px solid #354f69;border-radius:9px;overflow:hidden
}
#is-dashboard .is-grid.is-list button.is-doc-click{
 display:grid!important;grid-template-columns:69px minmax(0,1fr)!important;align-items:center;
 gap:13px;flex:none;width:100%;min-width:0;height:100%;min-height:0!important;padding:0!important;text-align:left
}
#is-dashboard .is-grid.is-list .is-preview{display:flex;align-items:flex-start;justify-content:center;width:69px!important;height:84px!important;min-height:0!important;max-height:84px!important;padding:5px 0;background:#213249;border:0}
#is-dashboard .is-grid.is-list .is-real-thumb{transform:scale(.33)!important;transform-origin:top center;flex:none}
#is-dashboard .is-grid.is-list .is-card-info{display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:0!important;padding:7px 8px!important;gap:2px}
#is-dashboard .is-grid.is-list .is-card-heading{margin:0}
#is-dashboard .is-grid.is-list .is-card-heading strong{font-size:14px!important;line-height:1.4}
#is-dashboard .is-grid.is-list .is-card-location{font-size:12px!important;margin:0}
#is-dashboard .is-grid.is-list .is-card-meta{font-size:10px!important;margin:2px 0 0;gap:12px;justify-content:flex-start;flex-wrap:wrap}
#is-dashboard .is-grid.is-list .is-doc-actions{display:flex!important;justify-content:flex-end;align-items:center;gap:6px;min-width:0!important;width:auto;height:100%;padding:11px!important;margin:0;border-top:0;border-left:1px solid #344a63;background:transparent}
#is-dashboard .is-grid.is-list .is-doc-actions button{font-size:11px;flex:none;white-space:nowrap}
#is-dashboard .is-grid.is-list button.is-new-card{display:flex!important;flex-direction:row!important;justify-content:flex-start!important;align-items:center!important;gap:14px;min-height:76px!important;height:76px!important;padding:12px 18px!important;text-align:left}
#is-dashboard .is-grid.is-list .is-new-plus{width:42px;height:42px;flex:0 0 42px}
#is-dashboard .is-grid.is-list .is-new-card strong{font-size:14px}
#is-dashboard .is-grid.is-list .is-new-card small{font-size:11px;margin:0 0 0 auto}
@media(max-width:650px){
 #is-dashboard .is-grid.is-list article.is-document{grid-template-columns:minmax(0,1fr)!important;min-height:112px!important;height:auto!important}
 #is-dashboard .is-grid.is-list .is-doc-actions{height:auto;border-left:0;border-top:1px solid #344a63;justify-content:flex-end;padding:7px 10px!important}
 #is-dashboard .is-grid.is-list button.is-doc-click{min-height:75px!important}
 #is-dashboard .is-grid.is-list button.is-new-card{min-height:70px!important}
}
/* Invoice actions are a contextual popover next to their ... trigger, not a dialog. */
#is-actions.is-invoice-popover[open]{
 position:fixed!important;inset:auto auto auto auto;max-height:min(300px,calc(100vh - 25px));overflow-y:auto;
 padding:7px!important;margin:0!important;width:224px!important;max-width:calc(100vw - 24px)!important;
 border:1px solid #476783!important;border-radius:9px!important;background:#1b2d42!important;
 box-shadow:0 14px 36px rgba(0,5,14,.5);z-index:1000;color:#eef6ff;
}
#is-actions.is-invoice-popover::backdrop{display:none!important;background:transparent!important;backdrop-filter:none!important}
#is-actions.is-invoice-popover .is-modal-head{display:none!important}
#is-actions.is-invoice-popover .is-modal-actions{display:flex;flex-direction:column;gap:3px;margin:0}
#is-actions.is-invoice-popover .is-modal-actions button{background:transparent;color:#eaf4ff;border:0;border-radius:6px;font-size:12px;padding:10px 11px;text-align:left;width:100%}
#is-actions.is-invoice-popover .is-modal-actions button:hover{background:#2c4b67}
#is-actions.is-invoice-popover .is-modal-actions button.danger{color:#ffb1bf}
#is-actions.is-invoice-popover .is-modal-actions button.danger:hover{background:#482d3b}
/* Deeper editor world, matching the homepage but preserving document typography. */
body:not(.is-home){background:var(--ifs-bg)!important;color:#e9f3fc}
body:not(.is-home) .topbar{background:#172439!important;border-bottom-color:#304963!important}
body:not(.is-home) .editor{background:#122033!important;border-right-color:#2d4059!important}
body:not(.is-home) .editor .card{background:#19293c!important;border-color:#324c65!important;border-radius:8px!important}
body:not(.is-home) .editor .centre-card{background:#213449!important;border-color:#446585!important;border-radius:8px!important}
body.use-centre-tints:not(.is-home) .centre-card.tone-0{background:#213750!important;border-color:#476e91!important}
body.use-centre-tints:not(.is-home) .centre-card.tone-1{background:#29344e!important;border-color:#5d6b92!important}
body.use-centre-tints:not(.is-home) .centre-card.tone-2{background:#233b46!important;border-color:#488097!important}
body.use-centre-tints:not(.is-home) .centre-card.tone-3{background:#28364e!important;border-color:#586f96!important}
/* Work entries alternate clearly to aid scanning and grouping. */
body:not(.is-home) .centre-card .entry:nth-of-type(odd){background:#152d47!important;border:1px solid #436f96!important}
body:not(.is-home) .centre-card .entry:nth-of-type(even){background:#203b59!important;border:1px solid #597c9f!important}
body:not(.is-home) .entry-index{background:#315578!important;color:#e4f2ff!important;border-color:#6488aa!important}
body:not(.is-home) .editor .field :is(input,textarea,select),body:not(.is-home) .painting-task textarea{
 background:#101f32!important;color:#f1f7fc!important;border-color:#496985!important;border-radius:7px!important
}
body:not(.is-home) .painting-task{background:#1c314b!important;border:1px solid #456a8a!important;border-radius:7px!important;padding:8px;gap:8px;margin:8px 0}
body:not(.is-home) .painting-task textarea{min-height:76px}
body:not(.is-home) .settings-drawer,body:not(.is-home) .library-drawer{background:#15243a!important;border-color:#36516f!important}
body:not(.is-home) .settings-select{background:#122034!important;border-color:#4d6d8d!important}
body:not(.is-home) .preview-zone{background:var(--ifs-workbench)!important;border-left-color:#253c55!important}
body:not(.is-home) .btn,body:not(.is-home) .settings-drawer button{background:#253d58;border-color:#4a6986;color:#eaf4fc}
body:not(.is-home) .btn:hover{background:#2e5172}
body:not(.is-home) .btn.accent{background:#306f99;border-color:#5293b9}
body:not(.is-home) :is(.preview-pencil,.zoom-toolbar,.zoom-fit,.preview-tool-float>button){background:#213c57;color:#ecf6ff;border-color:#496a8a!important}
body:not(.is-home) .preview-pencil.active{background:#306e97!important;border-color:#7bb6d8!important}
/* Make the floating preview controls smaller and closer to the top. */
body:not(.is-home) .preview-zone .preview-heading{top:5px!important}
body:not(.is-home) .preview-zone .preview-heading .preview-controls{gap:5px!important}
body:not(.is-home) :is(.preview-pencil,.zoom-fit){height:32px!important;min-height:32px!important;padding:5px 9px!important;font-size:11px!important}
body:not(.is-home) .preview-pencil svg{height:15px!important;width:15px!important}
body:not(.is-home) .zoom-toolbar{height:32px!important;border-radius:7px!important}
body:not(.is-home) .zoom-toolbar button{height:30px!important;width:33px!important}
body:not(.is-home) .zoom-toolbar svg{height:15px!important;width:15px!important}
body:not(.is-home) .zoom-toolbar output{min-width:44px!important;font-size:11px!important}
body:not(.is-home) .preview-zone .preview-canvas{padding-top:46px!important}
body:not(.is-home) .page-count{display:none!important}
/* The resize rail is invisible; only the blue handle appears. */
@media(min-width:1021px){
 body:not(.is-home) .workspace-divider{background:transparent!important;border:0!important;pointer-events:none!important;cursor:default}
 body:not(.is-home) .workspace-divider::before,body:not(.is-home) .workspace-divider::after{display:none!important}
 body:not(.is-home) .splitter-grip{height:122px!important;width:8px!important;min-width:8px!important;background:#66a8ce!important;border:1px solid #9ed3ed!important;border-radius:8px!important;box-shadow:none!important;cursor:col-resize!important;pointer-events:auto!important;left:70%!important}
 body:not(.is-home) .workspace-divider:hover{background:transparent!important}
}
body:not(.is-home) .btn.danger:not(:disabled),body:not(.is-home) button.danger:not(:disabled){background:#5e2937!important;color:#ffd6dd!important;border:1px solid #a84e61!important}
body:not(.is-home) .btn.danger:hover:not(:disabled),body:not(.is-home) button.danger:hover:not(:disabled){background:#793344!important}
/* The size editor is relevant only while editing paper text. */
body:not(.is-home):not(.is-preview-editing) .preview-tool-float,body:not(.is-home):not(.is-preview-editing) .preview-size-panel{display:none!important}
body:not(.is-home) .preview-tool-float>button{box-shadow:0 6px 22px #0208148c}
body:not(.is-home) .preview-text-tools:not([hidden]){bottom:3px!important;margin-bottom:0!important}
/* Preserve ordinary brand click behavior without a hover fill. */
body:not(.is-home) .editor-logo-link:hover{background:transparent!important;box-shadow:none!important}
/* The custom job field must actually disappear until New job type is chosen. */
#is-new-job-wrap[hidden]{display:none!important}
/* Focus and paper remain clear. */
#is-dashboard button:focus-visible,body:not(.is-home) button:focus-visible{outline-color:#91d0f1}
@media(prefers-reduced-motion:reduce){.is-side-link,.is-new-plus{transition:none!important}}
