/* Almanta brand guide, May 2025. Local assets; no remote font requests. */
.time-project-comparison{margin:26px 0}.time-project-comparison>h3{margin-bottom:10px}
.time-selection-totals{margin:12px 0 20px}.time-selection-totals>summary{cursor:pointer;color:#526886;font-size:12px;padding:8px 0}.time-selection-totals>.stats{margin-top:14px}
.time-project-group{margin:12px 0;border:1px solid #d9e3ef;border-radius:9px;overflow:hidden;background:white}
.time-project-group>summary,.time-phase-group>summary{display:grid;grid-template-columns:16px minmax(0,1fr) minmax(245px,.95fr);gap:16px;align-items:center;padding:18px;cursor:pointer;list-style:none}
.time-project-group>summary::-webkit-details-marker,.time-phase-group>summary::-webkit-details-marker{display:none}
.time-project-group>summary::before,.time-phase-group>summary::before{content:'▸';color:#1c3d7f;font-size:17px}
.time-project-group[open]>summary::before,.time-phase-group[open]>summary::before{content:'▾'}
.time-project-group>summary{background:#f6f9fd}.time-project-group>summary:hover,.time-phase-group>summary:hover{background:#edf4fb}
.time-project-group>summary:focus-visible,.time-phase-group>summary:focus-visible{outline:3px solid #38a8e2;outline-offset:-3px}
.time-group-label{min-width:0;overflow-wrap:anywhere}.time-group-label>strong{display:block;color:#1c3d7f;font-size:14px;line-height:1.6}.time-group-label>small{display:block;margin-top:4px;color:#64778d;font-size:11px;line-height:1.5}.time-group-label>.time-over-alert{color:#9c3e3a;font-weight:700}
.time-phase-groups{padding:0 16px 12px}.time-phase-group+ .time-phase-group{border-top:1px solid #e4ebf3}.time-phase-group>summary{padding:15px 10px}.time-phase-group .time-group-label>strong{font-size:13px}
.time-consumption{min-width:0}.time-consumption-value,.time-consumption-note{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;line-height:1.5}.time-consumption-value{font-size:12px;color:#1c3d7f}.time-consumption-value>span{font-weight:700;white-space:nowrap}.time-consumption-note{font-size:11px;color:#64778d}
.time-consumption-track{height:9px;background:#dce6f1;border-radius:5px;overflow:hidden;margin:8px 0}.time-consumption-track>span{display:block;height:100%;background:#1c3d7f;border-radius:5px}
.time-consumption.is-over .time-consumption-track>span{background:#b34b3e}.time-consumption.is-over .time-consumption-value,.time-consumption.is-over .time-consumption-note{color:#9c3e3a}
.time-consumption.is-unknown .time-consumption-track{background:repeating-linear-gradient(135deg,#edf0f4 0 5px,#dce2e9 5px 7px)}
.time-phase-services{min-width:690px;font-size:12px}.time-phase-services caption{text-align:left;padding:10px 12px;color:#526886;font-size:12px}.time-phase-services td,.time-phase-services th{padding:11px 9px}.time-phase-services td:first-child{min-width:180px}
@media(max-width:760px){.time-project-group>summary,.time-phase-group>summary{grid-template-columns:14px minmax(0,1fr);gap:8px;padding:14px}.time-consumption{grid-column:2}.time-phase-groups{padding:0 6px 8px}}
.view-switch{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 22px;padding:5px;border-radius:9px;background:#eaf0f7;width:fit-content}
.view-switch .button-link{margin:0;border:0;background:transparent;color:#526886;text-decoration:none;padding:11px 19px;border-radius:6px;font-weight:600}
.view-switch .selected{background:#1c3d7f;color:white;box-shadow:0 2px 5px #1c3d7f20}
.view-switch a:focus-visible{outline:3px solid #38a8e2;outline-offset:2px}
.case-mission{margin:-10px 0 22px;color:#526886;font-size:13px;line-height:1.7}.case-mission summary{cursor:pointer}.case-mission p{max-width:90ch}
#time-section .new-time{min-width:700px}#time-section .new-time td{vertical-align:top}#time-section .new-time td:nth-child(2){width:40%}
.invoice-journal table{min-width:850px}.invoice-journal td{vertical-align:top}.invoice-journal td small{display:block;font-size:11px;color:#526886;line-height:1.5;margin-top:5px}.invoice-journal td:first-child{min-width:210px}.invoice-journal td:last-child{width:95px}
.invoice-advance{padding:18px;border:1px solid #d1dbe7;border-radius:7px;margin-bottom:20px;background:#fbfdff}.invoice-advance summary{cursor:pointer;color:#1c3d7f;font-weight:600}.invoice-advance label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#526886}.invoice-advance select,.invoice-advance input{width:100%;min-width:0;padding:10px;border:1px solid #d1dbe7;border-radius:5px;font:inherit;background:#fff;color:#273850}.invoice-advance .actions{align-items:end}.invoice-advance .actions label{max-width:240px}.invoice-advance table{min-width:360px}.invoice-advance td:last-child{width:42%}.invoice-advance input:focus,.invoice-advance select:focus{outline:2px solid #38a8e24d;border-color:#38a8e2}
@font-face {
  font-family: Comfortaa;
  src: url("fonts/Comfortaa-Variable.woff") format("woff");
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
}
@font-face {
  font-family: "Cormorant Garamond";
  src: url("fonts/CormorantGaramond-Variable.woff") format("woff");
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
}
@font-face {
  font-family: Quicksand;
  src: url("fonts/Quicksand-Variable.woff") format("woff");
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
}

:root {
  --brand-blue: #1c3d7f;
  --brand-sky: #38a8e2;
  --brand-gray: #d1d1d1;
  --ink: #303846;
  --muted: #59616e;
  --border: var(--brand-gray);
  --soft: #edf7fc;
  --page: #f7f8fa;
  --surface: #ffffff;
  --hover: #163268;
  --error: #9b3535;
  --font-title: Comfortaa, "Segoe UI", sans-serif;
  --font-editorial: "Cormorant Garamond", Georgia, serif;
  --font-body: Quicksand, "Segoe UI", sans-serif;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 400;
  color: var(--ink);
  background: var(--page);
  font-synthesis: none;
}
* { box-sizing: border-box; }
body { margin: 0; }
button, input, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
button, a, input, select { outline-offset: 4px; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--brand-blue); }
button {
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--surface);
  padding: 10px 16px;
  min-height: 42px;
  color: var(--brand-blue);
  font-weight: 700;
  transition: background-color .15s, border-color .15s;
}
button:hover { background: var(--soft); border-color: var(--brand-blue); }
.primary { background: var(--brand-blue); border-color: var(--brand-blue); color: white; }
.primary:hover { background: var(--hover); border-color: var(--hover); }
.quiet { border-color: transparent; background: transparent; padding: 8px; }
.danger { color: var(--error); }
a { color: var(--brand-blue); }
h1, h2, h3, p { margin-top: 0; }
h1 {
  font-family: var(--font-title);
  color: var(--brand-blue);
  font-size: 31px;
  line-height: 1.35;
  font-weight: 300;
  letter-spacing: -.6px;
  margin-bottom: 10px;
  overflow-wrap: anywhere;
}
h2 { font-family: var(--font-editorial); color: var(--brand-blue); font-size: 27px; line-height: 1.15; font-weight: 500; }
h3 { font-family: var(--font-title); color: var(--brand-blue); font-size: 16px; font-weight: 700; }
p { line-height: 1.65; }
strong, b { font-weight: 700; }
.muted, small { color: var(--muted); }
small { line-height: 1.5; }
.eyebrow { text-transform: uppercase; letter-spacing: 1.6px; font-size: 10px; line-height: 1.6; font-weight: 700; color: var(--muted); margin-bottom: 12px; }
/* The SVG includes the clear space shown on page 8 of the guide. */
.logo { width: 208px; max-width: 100%; }
.logo img { display: block; width: 100%; height: auto; }
.shell { display: grid; grid-template-columns: 240px minmax(0, 1fr); min-height: 100vh; }
.sidebar {
  position: sticky;
  top: 0;
  isolation: isolate;
  height: 100vh;
  overflow-y: auto;
  background: var(--brand-blue);
  color: white;
  padding: 23px 16px 18px;
  display: flex;
  flex-direction: column;
}
.sidebar::before {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  inset: auto 0 122px;
  height: 145px;
  background: url("brand/wave-white.svg") center bottom / auto 100% no-repeat;
  opacity: .15;
}
.sidebar .logo { margin: 0 0 12px; }
.sidebar .eyebrow { color: #ccd9ee; margin: 15px 14px 12px; }
.sidebar nav { display: grid; gap: 7px; }
.sidebar nav button { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; background: transparent; border: 1px solid transparent; color: #e1e9f6; padding: 9px 13px; font-size: 14px; font-weight: 600; }
.sidebar nav button:hover { background: #ffffff12; color: white; }
.sidebar nav button.active { background: #ffffff12; color: white; border-color: #ffffff38; box-shadow: inset 3px 0 var(--brand-sky); }
.sidebar button:focus-visible { outline-color: white; }
.nav-group { display: grid; gap: 2px; }
.nav-group + .nav-group { margin-top: 6px; }
.nav-heading { padding: 3px 13px; color: #b7cae6; font-size: 10px; letter-spacing: 1.3px; text-transform: uppercase; }
.nav-references { margin-top: 6px; border-top: 1px solid #ffffff24; padding-top: 7px; }
.nav-references summary { padding: 10px 13px; color: #e1e9f6; font-size: 12px; cursor: pointer; }
.nav-references summary:focus-visible { outline: 2px solid white; outline-offset: -2px; }
.nav-references[open] summary { margin-bottom: 3px; }
.navsymbol { width: 20px; font-size: 18px; text-align: center; color: var(--brand-sky); }
.sidebar footer { margin-top: auto; padding: 18px 14px 0; color: #cbd8ed; font-size: 11px; line-height: 1.8; }
.sidebar footer strong { display: block; color: white; font-weight: 600; margin-bottom: 5px; }
.workspace { min-width: 0; }
.topbar { height: 83px; background: var(--surface); border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; padding: 0 38px; gap: 20px; }
.context { font-size: 12px; color: var(--muted); display: flex; align-items: center; gap: 10px; }
.dot { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--brand-sky); }
.profile { display: flex; align-items: center; gap: 12px; }
.avatar { width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%; display: grid; place-items: center; background: var(--soft); border: 1px solid #c7e6f7; color: var(--brand-blue); font-weight: 700; font-size: 13px; }
.profile small { display: block; font-size: 11px; }
.profile b { font-size: 13px; }
.profile button { font-size: 12px; }
.main { padding: 34px 38px 50px; max-width: 1560px; margin: auto; }
.heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.heading > div { min-width: 0; }
.heading p { margin: 0; font-size: 14px; color: var(--muted); }
.heading > button { flex-shrink: 0; }
.heading .eyebrow { color: var(--brand-blue); }
.tag { font-size: 10px; letter-spacing: .8px; background: var(--soft); color: var(--brand-blue); border: 1px solid #c7e6f7; padding: 7px 10px; border-radius: 4px; font-weight: 700; white-space: nowrap; }
.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 27px; }
.stat { padding: 21px 23px; border: 1px solid var(--border); background: var(--surface); border-radius: 10px; }
.stat label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 12px; font-weight: 600; }
.stat strong { display: block; color: var(--brand-blue); font-size: 31px; font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.stat small { display: block; margin-top: 9px; font-size: 11px; }
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; margin-bottom: 22px; overflow: hidden; }
.panel-head { padding: 20px 24px; border-bottom: 1px solid var(--border); display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.panel-head h2 { margin: 0; }
.panel-body { padding: 24px; }
.table-wrap { overflow: auto; }
table { border-collapse: collapse; width: 100%; font-size: 13px; }
th { text-align: left; text-transform: uppercase; letter-spacing: .7px; font-size: 10px; font-weight: 700; color: var(--muted); padding: 15px 21px; background: #f8f9fb; border-bottom: 1px solid var(--border); }
td { padding: 20px 21px; border-bottom: 1px solid #e8eaee; vertical-align: middle; line-height: 1.5; }
tr:last-child td { border-bottom: 0; }
td strong { display: block; margin-bottom: 5px; }
td button { white-space: nowrap; font-size: 12px; }
.numeric { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; }
.reference { font-size: 11px; color: var(--muted); letter-spacing: .2px; }
.status { font-size: 11px; font-weight: 600; padding: 5px 9px; border-radius: 4px; display: inline-block; white-space: nowrap; background: #f0f1f3; color: #535b67; border: 1px solid #d9dde3; }
.status.submitted { background: #fff5df; color: #785916; border-color: #e6d3a6; }
.status.approved { background: var(--soft); color: var(--brand-blue); border-color: #bcdcee; }
.note { padding: 17px 21px; border-left: 3px solid var(--brand-sky); background: var(--soft); color: var(--brand-blue); font-size: 13px; line-height: 1.65; border-radius: 0 6px 6px 0; margin-bottom: 23px; }
.subtle { font-size: 12px; color: var(--muted); margin-top: 22px; }
.actions { display: flex; gap: 9px; flex-wrap: wrap; align-items: center; }
.split { display: grid; grid-template-columns: 1.7fr 1fr; gap: 23px; }
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.person-card { padding: 25px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.person-card .avatar { margin-bottom: 17px; width: 42px; height: 42px; }
.person-card h3 { margin-bottom: 8px; }
.person-card p { font-size: 13px; margin-bottom: 0; color: var(--muted); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.field { min-width: 0; }
.field label { display: block; font-size: 12px; font-weight: 700; margin-bottom: 8px; }
.field input, .field select, #org-select { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #858f9e; border-radius: 6px; background: var(--surface); color: inherit; font-size: 14px; }
#org-select { width: auto; max-width: 100%; }
.field.wide { grid-column: 1 / -1; }
.field small { display: block; margin-top: 7px; font-size: 11px; }
.line-editor { padding: 22px 24px; border-bottom: 1px solid var(--border); }
.line-editor:last-child { border: 0; }
.line-top { display: flex; gap: 20px; align-items: center; margin-bottom: 17px; }
.line-top .field { flex: 1; }
.line-fields { display: grid; grid-template-columns: 1.6fr 1.1fr .7fr 1fr 1fr; gap: 16px; align-items: end; }
.line-fields .price { padding-bottom: 10px; }
.line-fields .price small { display: block; font-size: 11px; margin-bottom: 9px; }
.line-fields .price strong { font-size: 14px; font-weight: 700; white-space: nowrap; }
.title-input { width: 100%; font-size: 18px; border: 1px solid #858f9e; padding: 12px; border-radius: 6px; color: inherit; }
.toolbar { margin-top: 20px; display: flex; justify-content: space-between; gap: 15px; }
.history { display: flex; flex-wrap: wrap; gap: 8px; }
.history small { border: 1px solid var(--border); border-radius: 4px; padding: 8px 12px; }
.empty { text-align: center; padding: 50px 25px; color: var(--muted); }
.login { min-height: 100vh; display: grid; grid-template-columns: 1fr 1.1fr; }
.login-story { position: relative; isolation: isolate; overflow: hidden; background: var(--brand-blue); color: white; display: flex; flex-direction: column; justify-content: space-between; padding: 36px 60px 44px; min-height: 680px; }
.login-story::before { content: ""; position: absolute; z-index: -1; pointer-events: none; left: -25%; right: -25%; bottom: 0; height: 45%; background: url("brand/wave-white.svg") center bottom / auto 100% no-repeat; opacity: .15; }
.login-story::after { content: ""; position: absolute; z-index: -1; pointer-events: none; right: 0; bottom: 0; width: 94px; height: 125px; background: url("brand/diagonals.svg") right bottom / contain no-repeat; }
.login-story .logo { width: 280px; margin-left: -22px; }
.login-story h1 { color: white; font-size: 45px; line-height: 1.25; letter-spacing: -1.2px; max-width: 450px; margin-bottom: 24px; }
.login-story p { color: white; max-width: 370px; font-size: 15px; }
.login-story .eyebrow { font-family: var(--font-editorial); text-transform: none; letter-spacing: 0; font-size: 25px; font-weight: 500; color: white; margin-bottom: 19px; }
.login-story footer { font-size: 12px; line-height: 1.8; color: #e1e9f6; }
.login-options { display: flex; justify-content: center; flex-direction: column; padding: 50px 60px; max-width: 700px; }
.login-options .tag { align-self: flex-start; margin-bottom: 25px; }
.login-options h2 { font-family: var(--font-title); font-size: 26px; font-weight: 300; line-height: 1.4; margin-bottom: 14px; }
.persona { display: flex; align-items: center; gap: 17px; text-align: left; padding: 19px; margin-top: 13px; width: 100%; border-radius: 8px; }
.persona strong { font-weight: 700; }
.persona small { display: block; font-weight: 400; margin-top: 5px; }
.persona .arrow { margin-left: auto; font-size: 21px; color: var(--brand-blue); }
.loading { padding: 80px; color: var(--muted); text-align: center; }
#message { position: fixed; bottom: 25px; right: 25px; z-index: 20; max-width: min(520px, calc(100vw - 36px)); padding: 17px 23px; background: var(--brand-blue); color: white; box-shadow: 0 6px 28px #1c3d7f26; border-radius: 8px; font-size: 14px; line-height: 1.5; }
#message.error { background: var(--error); }
button[hidden], div[hidden] { display: none; }
.back { margin-bottom: 22px; font-size: 12px; }
.text-right { text-align: right; }
.directory-panel { margin-top: 24px; }
.fee-grid { display: grid; gap: 0; }
.fee-item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(200px, .8fr); gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--border); align-items: start; }
.fee-item:last-child { border-bottom: 0; }
.fee-item small { display: block; margin-top: 7px; font-size: 12px; }
#production-fees .toolbar { align-items: center; }
#production-fees button { flex-shrink: 0; }

/* Offer composition and saved customer documents. */
.stats { grid-template-columns: repeat(auto-fit, minmax(185px, 1fr)); }
.line-fields { grid-template-columns: 1.6fr 1fr .8fr 1fr 1.2fr 1fr; }
a.button { display:inline-block; border:1px solid var(--border); border-radius:6px; padding:11px 16px; color:var(--brand-blue); font-weight:600; font-size:13px; text-decoration:none; background:white; }
a.button.primary { color:white; background:var(--brand-blue); border-color:var(--brand-blue); }
a.button:hover { border-color:var(--brand-sky); }
textarea { width:100%; resize:vertical; font:inherit; color:var(--ink); padding:11px 13px; border:1px solid var(--border); border-radius:5px; background:white; line-height:1.65; }
textarea:focus { outline:2px solid var(--brand-sky); outline-offset:2px; }
.read-text { white-space:pre-wrap; overflow-wrap:anywhere; margin:0; line-height:1.75; }
.offer-row { border-top:1px solid var(--border); padding:18px 0 24px; margin-bottom:12px; }
.offer-row:first-child { border-top:0; padding-top:0; }
.offer-row h3 { font:600 15px var(--font-body); margin:0 0 12px; }
.offer-row .line-top { margin-bottom:8px; }
.visit-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; grid-column:1/-1; }
[hidden] { display:none !important; }
.document-panel p { line-height:1.75; }
.document-history { margin-top:23px; border-top:1px solid var(--border); padding-top:18px; font-size:13px; }
.document-history div { display:flex; flex-wrap:wrap; gap:20px; margin-top:10px; }
.document-history a { color:var(--brand-blue); }
#offer-content .toolbar { margin-bottom:28px; }
input:disabled, select:disabled, textarea:disabled { opacity:.8; cursor:default; }
@media (max-width: 1150px) {
  .main { padding: 30px 25px; }
  .topbar { padding: 0 25px; }
  .context { max-width: 240px; flex-wrap: wrap; }
  .line-fields { grid-template-columns: 1.5fr 1fr .7fr; }
  .line-fields .price { padding-top: 6px; }
  .card-grid { grid-template-columns: 1fr 1fr; }
  .login-story { padding: 36px 40px; }
  .login-story h1 { font-size: 38px; }
  .login-options { padding: 45px 36px; }
}
@media (max-width: 800px) {
  .shell { display: block; }
  .sidebar { position: static; width: 100%; height: auto; padding: 6px 18px 16px; }
  .sidebar .logo { width: 180px; margin: 0 0 7px -10px; }
  .sidebar nav { display: flex; flex-wrap: wrap; gap: 5px; }
  .sidebar .nav-group, .sidebar .nav-references>div { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 0; }
  .sidebar .nav-heading { display: none; }
  .sidebar .nav-references { margin: 0; padding: 0; border: 0; }
  .sidebar .nav-references summary { padding: 10px; }
  .sidebar nav button { width: auto; padding: 9px 10px; font-size: 13px; gap: 7px; }
  .sidebar .eyebrow, .sidebar footer, .sidebar::before { display: none; }
  .topbar { min-height: 72px; height: auto; padding: 12px 18px; }
  .context { display: none; }
  .profile { width: 100%; gap: 10px; }
  .profile > div { flex: 1; }
  .profile button { max-width: 100px; text-align: right; line-height: 1.4; }
  .main { padding: 27px 18px; }
  .heading { align-items: flex-start; gap: 16px; }
  .heading h1 { font-size: 25px; }
  .heading > button { flex-shrink: 1; font-size: 13px; }
  .stats { gap: 9px; }
  .stat { padding: 17px 13px; }
  .stat strong { font-size: 24px; }
  .stat small { font-size: 11px; }
  .card-grid, .split { grid-template-columns: 1fr; }
  .line-fields { grid-template-columns: 1fr 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .field.wide { grid-column: auto; }
  .field input, .field select { font-size: 16px; }
  .login { display: block; }
  .login-story { padding: 15px 28px 28px; min-height: auto; }
  .login-story .logo { width: 225px; margin-left: -18px; }
  .login-story .eyebrow { margin-top: 24px; font-size: 23px; }
  .login-story h1 { font-size: 32px; margin: 12px 0 20px; }
  .login-story footer { display: none; }
  .login-options { padding: 32px 23px; max-width: none; }
  .heading .tag { display: none; }
  .toolbar { flex-direction: column; }
  .panel-head { padding: 18px 20px; flex-wrap: wrap; }
  .panel-body { padding: 20px; }
  td, th { padding: 15px; }
  .line-editor { padding: 20px; }
  .fee-item { grid-template-columns: 1fr; gap: 15px; }
}
@media (max-width: 480px) {
  .heading { flex-wrap: wrap; }
  .stats { grid-template-columns: 1fr; gap: 10px; }
  .stat { padding: 16px 18px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 15px; align-items: center; }
  .stat label { margin: 0; }
  .stat strong { text-align: right; font-size: 24px; max-width: 210px; }
  .stat small { margin-top: 0; grid-column: 1 / -1; }
  .persona { padding: 17px 14px; gap: 12px; }
  .login-options h2 { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  button { transition: none; }
}

@media(max-width:650px){.visit-fields{grid-template-columns:1fr}.offer-row .line-top{flex-wrap:wrap}.field textarea{font-size:16px}.line-fields{grid-template-columns:1fr 1fr}.document-panel .actions{align-items:stretch;flex-direction:column}a.button{text-align:center}}
.offer-row.phase-card{border-left:4px solid #1c3d7f;padding:18px 16px 24px;border-radius:5px}.phase-card.review-phase{border-left:4px dashed #38a8e2;background:#f7fbfe}.phase-card h4{color:#1c3d7f;margin:24px 0 10px}.phase-empty{color:#65738b;font-size:13px}.phase-workload,.workload-total{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:14px 0;font-size:13px;color:#516583}.phase-workload strong,.workload-total strong{color:#1c3d7f}.workload-total{background:#eef5fb;border-radius:8px;padding:18px;margin-top:20px}.workload-total h3{width:100%;margin:0 0 5px}.review-insert{border-top:1px solid #dce6f0;margin-top:12px;padding-top:16px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}.review-insert label{display:flex;gap:8px;align-items:center;font-size:12px}.review-insert input{width:auto}.unassigned{border-left:4px solid #bb8a39;margin-top:18px}.phase-card input,.phase-card select{min-width:0;max-width:100%}
@media(max-width:480px){.offer-row.phase-card{padding:14px 10px}.review-insert button{width:100%}.phase-workload,.workload-total{align-items:flex-start;flex-direction:column}.phase-card .line-top .actions{gap:4px}}
.service-table-wrap{max-width:100%;overflow-x:auto;border:1px solid #dce5ef;border-radius:6px;margin:12px 0}.service-table{width:100%;min-width:770px;table-layout:fixed;border-collapse:collapse;background:#fff;font-size:12px}.service-table th{padding:10px 8px;font-size:10px;letter-spacing:.4px;white-space:normal;background:#eef5fb}.service-table td{padding:8px 5px;vertical-align:top;border-bottom:1px solid #e1e8f0;overflow-wrap:anywhere}.service-table th:first-child{width:25%}.service-table th:nth-child(2){width:22%}.service-table th:nth-child(3){width:16%}.service-table th:nth-child(4){width:9%}.service-table th:nth-child(5){width:13%}.service-table th:nth-child(6){width:15%}.service-table input,.service-table select,.service-table textarea{width:100%;min-width:0;border:1px solid transparent;border-radius:3px;background:transparent;font:inherit;padding:7px 5px;color:#273850}.service-table textarea{min-height:37px;resize:vertical}.service-table input:hover,.service-table select:hover,.service-table textarea:hover{border-color:#c9d6e7;background:#f8fbfe}.service-table input:focus,.service-table select:focus,.service-table textarea:focus{border-color:#38a8e2;outline:2px solid #38a8e233;background:#fff}.service-table small{display:block;font-size:10px;line-height:1.4;color:#697991;padding:2px 5px}.service-table small.price strong{display:inline;font-size:10px;font-weight:400}.service-table .service-sale{padding-top:15px;text-align:right;font-size:12px}.service-table .service-days{text-align:right}.service-table .service-days input{text-align:right}.service-table .service-actions select{font-size:10px;padding:5px 1px}.service-table .service-actions button{float:right;font-size:19px;line-height:1;padding:4px 9px}.service-table tr:last-child td{border-bottom:0}.service-table tbody tr:focus-within{background:#f8fbfe}.service-table-wrap:focus-visible{outline:2px solid #38a8e2}
.commercial-label{display:block;margin-top:8px;color:#526886}.commercial-form{margin:22px 0;padding:20px;border:1px solid #dce5ef;border-radius:8px;background:#fafcfe}.commercial-form h3{margin-top:0;color:#1c3d7f}.commercial-form p{color:#526886;font-size:13px;line-height:1.6}.commercial-form>.field{margin-bottom:16px}.commercial-form>.primary{margin-top:18px}.commercial-history{margin-top:24px}.commercial-history summary,.project-history summary{cursor:pointer;font-weight:600;color:#1c3d7f;padding:12px 0}.commercial-history ol{list-style:none;margin:8px 0;padding:0}.commercial-history li{border-left:2px solid #38a8e2;padding:10px 18px;margin:0 0 14px;overflow-wrap:anywhere}.commercial-history li div{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between}.commercial-history li span,.commercial-history li small{font-size:12px;color:#65758e}.commercial-history li p{margin:8px 0;font-size:13px}.commercial-history li a{display:block;margin-top:8px;font-size:12px}.accepted-offer{border-left:4px solid #38a8e2;background:#eef7fc;padding:15px 20px;margin:20px 0;border-radius:5px}.accepted-offer h3{color:#1c3d7f;margin:0}.accepted-offer p{line-height:1.6;font-size:13px}.status.rejected{color:#963c3c;background:#fff0ed}.project-services{min-width:750px}.project-services td{vertical-align:top}.project-services td:first-child{min-width:170px}.project-history{padding:12px 24px}.project-history p{font-size:13px;line-height:1.7}.commercial-form .toolbar{flex-wrap:wrap;gap:12px}
@media(max-width:650px){.commercial-form{padding:16px 12px}.commercial-history li{padding-left:12px}.accepted-offer{padding:14px}.commercial-form .toolbar button{width:100%}.commercial-history li div{flex-direction:column}}
/* Resources: editable tables share the phase editor's visual language. */
.resource-filters{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin-bottom:20px}.resource-filters label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#526886;max-width:100%;min-width:130px}.resource-filters select,.resource-filters input,.schedule-table input{font:inherit;border:1px solid #d5dfeb;border-radius:5px;padding:9px;background:#fff;color:#303846;max-width:100%}.resource-filters .check-field{flex-direction:row;align-items:center;padding:10px 0}.check-field input{width:auto}.project-shortcuts{margin-bottom:24px}.time-table{min-width:880px;width:100%;table-layout:fixed}.time-table th:nth-child(1){width:15%}.time-table th:nth-child(2){width:25%}.time-table th:nth-child(3){width:9%}.time-table th:nth-child(4){width:27%}.time-table th:nth-child(5){width:24%}.time-table td{padding:10px 8px;vertical-align:top}.time-table input,.time-table select,.time-table textarea{font:inherit;font-size:12px;background:#fff;border:1px solid transparent;border-radius:4px;padding:8px 5px;width:100%;min-width:0;max-width:100%;color:#303846}.time-table input:hover,.time-table select:hover,.time-table textarea:hover{border-color:#cbd8e8}.time-table input:focus,.time-table select:focus,.time-table textarea:focus{outline:2px solid #38a8e233;border-color:#38a8e2}.time-table input[name=days]{text-align:right}.time-table [name=reason]{margin-top:8px;background:#f6f9fc}.time-actions{display:flex;flex-direction:column;gap:7px;margin-top:10px}.time-actions button{font-size:11px;padding:8px}.time-table small,.time-comparison small,.load-table small,.capacity-panel small,.schedule-table small,#time-section td small{display:block;color:#64778d;font-size:11px;margin:4px 0;line-height:1.5}.time-history{font-size:11px;margin-top:12px}.time-history summary,.time-comparison summary,.capacity-panel>summary{cursor:pointer;font-weight:600;color:#1c3d7f}.time-history p{padding:8px;border-left:2px solid #38a8e2;background:#f8fbfd;overflow-wrap:anywhere}.time-comparison>summary{padding:10px 0 18px}.time-comparison{margin-bottom:30px}.time-comparison table{min-width:680px}.cancelled-row{opacity:.65}.time-table .status{white-space:normal;line-height:1.5;font-size:10px}.overload{color:#9c3e3a;font-weight:700}.schedule-table{min-width:720px}.schedule-table td{padding:14px 10px;vertical-align:middle}.schedule-table input{width:150px;font-size:12px}.schedule-table td:first-child{width:28%}.capacity-panel{padding:22px}.capacity-panel>summary{font-size:15px}.capacity-panel .panel-body{padding:15px 0}.capacity-panel form+form{border-top:1px solid #dce5ef;margin-top:25px;padding-top:16px}.capacity-table{min-width:900px;table-layout:fixed}.capacity-table th,.capacity-table td{padding:8px 5px;font-size:10px}.capacity-table input{width:100%;min-width:50px;border:1px solid #d5dfeb;border-radius:4px;padding:8px 4px;font:inherit;font-size:12px;text-align:center}.load-table{min-width:1110px;table-layout:fixed}.load-table th:first-child{width:160px;text-align:left;position:sticky;left:0;background:#f4f8fc;z-index:1}.load-table td,.load-table th{padding:12px 6px;text-align:center;vertical-align:top;font-size:11px}.load-table th{font-size:10px}.load-table td strong{color:#1c3d7f;font-size:15px}.load-table .potential{font-size:10px;color:#54728a}.load-table .load-over{background:#fff0eb}.load-table .load-over strong{color:#a64736}.load-table .load-potential{background:#fff9e9}.load-detail{margin-top:5px;font-size:10px;overflow-wrap:anywhere}.load-detail summary{cursor:pointer;color:#5f738b}.load-detail[open]{min-width:74px;line-height:1.5}.load-detail summary::marker{font-size:8px}.resource-filters select{max-width:290px}.new-time{margin:8px 0 25px}.new-time th:nth-child(2){width:28%}.new-time th:nth-child(4){width:24%}
@media(max-width:800px){.resource-filters label{flex:1;min-width:135px}.resource-filters button{width:100%}.capacity-panel{padding:18px}.project-shortcuts{flex-wrap:wrap}.project-shortcuts button{flex:1}.load-table th:first-child{width:135px}.schedule-table{min-width:680px}.time-table{min-width:850px}}
.gantt-compact{width:100%;min-width:0}.gantt-calendar{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0;font-size:9px;color:#61758b;border-bottom:1px solid #dce5ef;padding:0 0 12px}.gantt-calendar span{white-space:nowrap}.gantt-phase{padding:12px 0;border-bottom:1px solid #edf1f6}.gantt-phase-label{display:flex;gap:6px 15px;flex-wrap:wrap;justify-content:space-between;align-items:baseline;margin-bottom:6px;color:#1c3d7f;font-size:12px}.gantt-phase-label small{font-size:10px;color:#61758b}.gantt-compact .phase-bar{display:block;width:100%;height:24px}.planning-links{margin-top:18px;flex-wrap:wrap}.planning-links button{font-size:11px;padding:8px 12px}
/* Workload histograms: stacked people, hatched prospects, available capacity. */
.histogram{min-width:0}.histogram-unit{font-size:11px;color:#61758b;margin:0 0 4px}.histogram-plot{display:grid;grid-template-columns:35px repeat(12,minmax(0,1fr));align-items:start;width:100%;gap:0}.histogram-axis svg{display:block;height:214px}.histogram-bar{display:block;width:100%;padding:0!important;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;cursor:pointer}.histogram-bar svg{display:block;width:100%;height:214px}.histogram-bar:hover{background:#f0f6fc!important}.histogram-bar:focus-visible{outline:2px solid #38a8e2;outline-offset:-2px}.histogram-bar[aria-expanded=true]{background:#e9f3fa!important}.histogram-bar.histogram-over{background:#fff3ee!important}.histogram-bar.histogram-potential{background:#fffbed!important}.histogram-column{min-width:0;text-align:center}.histogram-value{font-size:12px;font-weight:700;color:#1c3d7f;min-height:36px;line-height:1.5;padding:3px 0}.histogram-value small{display:block;font-size:10px;font-weight:500;color:#5e7a92}.histogram-value.overload{color:#a24a3c}.histogram-period{font-size:10px;line-height:1.5;color:#5a7087;overflow-wrap:normal}.histogram-legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:18px;font-size:11px;color:#4d647f}.histogram-legend span{display:inline-flex;gap:6px;align-items:center}.histogram-legend .hatch-key:before{content:'';width:12px;height:12px;background:repeating-linear-gradient(45deg,#edf5fb,#edf5fb 3px,#6886a4 3px,#6886a4 4px);border:1px solid #bccbdd;border-radius:2px}.histogram-legend .capacity-key:before{content:'';width:22px;border-top:2px dashed #a34b41}.histogram-hint{font-size:11px;color:#60748b;margin-top:15px}.histogram-detail{background:#f5f9fc;border:1px solid #dae5ef;border-radius:7px;padding:16px;margin-top:15px}.histogram-detail h3{margin:0 0 8px;font-size:16px;color:#1c3d7f}.histogram-detail p{font-size:12px;line-height:1.7}.histogram-detail table{min-width:440px;font-size:12px}.histogram-detail td,.histogram-detail th{padding:11px 8px}.workload-disclosure>summary{padding:22px 25px;cursor:pointer;color:#1c3d7f;font-weight:600;font-size:14px;line-height:1.6}.workload-disclosure[open]>summary{border-bottom:1px solid #dce5ef}.person-histogram+ .person-histogram{border-top:1px solid #dce5ef;margin-top:26px;padding-top:18px}.person-histogram h3{color:#1c3d7f;font-size:17px}.load-histogram-panel>.panel-body>p.subtle{margin-bottom:0}
@media(max-width:650px){.histogram-plot{grid-template-columns:28px repeat(12,minmax(0,1fr))}.histogram-axis svg{width:28px}.histogram-period{font-size:8px}.histogram-value{font-size:10px}.histogram-value small{font-size:8px}.histogram-legend{gap:10px 13px}.workload-disclosure>summary{padding:18px 20px}.histogram-detail{padding:12px}.histogram-bar svg,.histogram-axis svg{height:190px}.histogram-period{word-break:normal}}
@media(max-width:480px){.histogram-column:nth-child(odd) .histogram-period{visibility:hidden}}
.gantt-project+.gantt-project{margin-top:28px}.gantt-project-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:22px 0 16px}.gantt-project-heading h3{font-size:14px;margin:0 0 5px;overflow-wrap:anywhere}.gantt-project-heading small{color:#61758b;font-size:11px}.gantt-project-heading button{font-size:11px;padding:8px 12px}.planning-legend{display:flex;flex-wrap:wrap;gap:12px 20px;color:#526886;font-size:11px;margin:18px 0}.planning-legend span{display:flex;align-items:center;gap:7px}.planning-legend i{display:inline-block;width:25px;height:11px;border-radius:3px}.planning-firm{background:#1c3d7f}.planning-prospect{background:repeating-linear-gradient(135deg,#eef7fc 0 4px,#82bedf 4px 6px);border:1px solid #1c3d7f}.planning-review{background:#fff;border:1px dashed #38a8e2}.project-planning .panel-head{flex-wrap:wrap;gap:10px}.project-planning .gantt-calendar span{overflow:hidden;text-overflow:clip}
@media(max-width:480px){.project-planning .gantt-calendar span:nth-child(even){visibility:hidden}}
.service-table{min-width:1060px}.service-table th:first-child{width:22%}.service-table th:nth-child(2){width:18%}.service-table th:nth-child(3){width:12%}.service-table th:nth-child(4),.service-table th:nth-child(5){width:7%}.service-table th:nth-child(6){width:9%}.service-table th:nth-child(7){width:11%}.service-table th:nth-child(8){width:14%}.budget-currencies{font-size:20px!important;overflow-wrap:anywhere}.budget-euros{display:flex;flex-wrap:wrap;gap:12px 24px;padding:16px;background:#eff6fb;border-radius:6px;color:#1c3d7f;margin:18px 0}.budget-fx-table{min-width:670px;table-layout:fixed}.budget-fx-table input{width:100%;min-width:0;font:inherit;font-size:12px;padding:9px;border:1px solid #d5dfeb;border-radius:5px;color:#303846}.budget-fx-table th:first-child{width:16%}.budget-fx-table small{display:block;font-size:10px;color:#526886}.budget-panel .panel-head{flex-wrap:wrap;gap:10px}

/* Financial schedule and allocation cells retain native monetary units. */
.financial-scroll{border:1px solid #dce5ef;border-radius:6px;margin:14px 0}.milestone-table{min-width:950px;table-layout:fixed}.milestone-table th:nth-child(1){width:18%}.milestone-table th:nth-child(2){width:27%}.milestone-table th:nth-child(3){width:18%}.milestone-table th:nth-child(4){width:15%}.milestone-table th:nth-child(5){width:17%}.milestone-table th:last-child{width:5%}.milestone-table td,.allocation-table td{padding:10px 7px;vertical-align:top}.milestone-table input,.milestone-table textarea,.allocation-table input{width:100%;min-width:0;padding:8px 5px;font:inherit;font-size:12px;color:#303846;background:#fff;border:1px solid #d5dfeb;border-radius:4px}.milestone-table textarea{resize:vertical}.milestone-table input:disabled,.milestone-table textarea:disabled,.allocation-table input:disabled{background:#f6f9fc;color:#303846;opacity:1}.allocation-table{min-width:700px;width:max-content;max-width:none}.allocation-table td,.allocation-table th{min-width:140px;max-width:230px}.allocation-table td:first-child{min-width:230px}.allocation-table input{width:125px;text-align:right}.allocation-table button{font-size:11px;padding:7px}.financial-total{font-weight:600;color:#1c3d7f;background:#eef5fb;padding:16px;border-radius:5px;line-height:1.7}.allocation-table small,.milestone-table small,.project-milestones small{display:block;font-size:11px;color:#64778d;line-height:1.5;margin-top:6px}.project-milestones{min-width:690px}.project-milestones td{vertical-align:top}#financial-plan-section .panel-head{flex-wrap:wrap;gap:10px}#financial-plan-section .toolbar{flex-wrap:wrap}#financial-plan-section .toolbar small{flex:1;min-width:180px}#financial-plan-section input:focus,#financial-plan-section textarea:focus{outline:2px solid #38a8e233;border-color:#38a8e2}

.milestone-table.milestone-readonly th:first-child{width:23%}.milestone-table.milestone-readonly th:nth-child(2){width:38%}.milestone-table.milestone-readonly th:nth-child(3){width:19%}.milestone-table.milestone-readonly th:last-child{width:20%}
.invoice-stats{margin:18px 0}.invoice-editor{border-top:2px solid #38a8e2;margin-top:28px;padding-top:18px;scroll-margin-top:20px}.invoice-scroll{margin:18px 0}.invoice-lines-table{min-width:680px}.invoice-lines-table th:first-child{width:40%}.invoice-lines-table th:nth-child(2){width:25%}.invoice-lines-table th:nth-child(3){width:15%}.invoice-lines-table th:nth-child(4){width:20%}.invoice-lines-table input[type=number]{width:100%;min-width:90px}.invoice-condition{display:flex;align-items:center;gap:8px}.invoice-condition input[type=checkbox]{width:18px;min-width:18px;height:18px}.invoice-totals{display:flex;flex-wrap:wrap;gap:24px;padding:18px;background:#f4f8fc}.invoice-totals strong{display:block;color:#1c3d7f}.invoice-editor details{margin-top:16px}.invoice-editor details>label{max-width:600px;margin:12px 0}.invoice-editor .actions{margin:16px 0}.invoice-editor .button-link{display:inline-flex;align-items:center;padding:10px 14px;border:1px solid #d1d1d1;border-radius:7px;text-decoration:none}.invoice-editor .button-link[hidden]{display:none}.invoice-editor textarea{width:100%}

#client-invoices-content td small{display:block;margin-top:4px;color:#67768d}.invoice-lines-table input[type=number]{padding:10px;border:1px solid #d1dbe7;border-radius:5px;font:inherit;background:#fff}.invoice-lines-table input:disabled{background:#f4f8fc;color:#516583}.invoice-editor .toolbar h3{margin:0}

/* Imported history uses the same brand and remains visibly distinct from live contracts. */
.history-panel{margin-bottom:24px}.history-panel td{vertical-align:top}.history-panel small{display:block;margin-top:5px}.history-panel .panel-body li{margin:9px 0}.history-panel [hidden]{display:none}
.history-source{padding:20px;margin-bottom:18px}.history-source>summary,.history-version>summary{cursor:pointer;font-weight:700;color:var(--brand-blue);padding:8px 0}.history-version{border-top:1px solid var(--border);padding:12px 0}
.source-fields{margin:12px 0;overflow-wrap:anywhere}.source-fields>div{display:grid;grid-template-columns:minmax(110px,24%) minmax(0,1fr);gap:16px;padding:8px 0;border-bottom:1px solid #edf0f4}.source-fields dt{color:var(--muted)}.source-fields dd{margin:0;min-width:0}.source-value{white-space:pre-wrap}.source-fields summary{cursor:pointer;color:var(--brand-blue)}
.button-link{display:inline-block;padding:8px 12px;border:1px solid var(--border);border-radius:8px;text-decoration:none;color:var(--brand-blue);white-space:nowrap}#history-document-search{display:block;margin-top:10px;max-width:600px;width:100%}
@media(max-width:700px){.source-fields>div{display:block}.source-fields dt{font-weight:700;margin-bottom:5px}.history-source{padding:12px}}

.history-mission{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:540px;line-height:1.5}

.recovery-contracts{display:flex;flex-wrap:wrap;gap:16px;margin:20px 0}.recovery-contracts>div{flex:1;min-width:240px;padding:18px 22px;background:#edf5fa;border-left:3px solid #38a8e2;border-radius:5px}.recovery-contracts small{display:block;margin-top:8px;color:#526886}
#recovery-form fieldset{border:0;padding:0;margin:0;min-width:0}.recovery-table{min-width:900px;table-layout:fixed}.recovery-table th:first-child{width:25%}.recovery-table th:nth-child(2){width:22%}.recovery-table th:nth-child(3){width:14%}.recovery-table th:nth-child(4){width:9%}.recovery-table th:nth-child(5){width:11%}.recovery-table th:last-child{width:19%}.recovery-table td{vertical-align:top;padding:12px 8px}.recovery-table small{display:block;font-size:11px;color:#62768d;margin:6px 0}.recovery-table input,.recovery-table select{width:100%;min-width:0;padding:10px 7px;border:1px solid #cbd8e5;border-radius:4px;font:inherit;font-size:12px;color:#25364c;background:#fff}.recovery-table [name=supplier_id]{margin-top:6px}.recovery-fee{display:flex;gap:5px}.recovery-fee select{width:68px;flex-shrink:0}.recovery-origins{display:flex;gap:10px 24px;flex-wrap:wrap;color:#526886}.recovery-origins small{font-size:11px}.recovery-dates{margin-top:16px;align-items:end;flex-wrap:wrap}.recovery-dates label,.recovery-bulk label{display:flex;flex-direction:column;gap:6px;font-size:12px}.recovery-dates input,.recovery-dates select,.recovery-bulk select{padding:9px;border:1px solid #cbd8e5;border-radius:5px;background:white;color:#25364c}.recovery-bulk{margin-top:20px}.recovery-bulk summary,.recovery-company summary{cursor:pointer;color:#1c3d7f;font-weight:600}.recovery-save{position:sticky;bottom:0;z-index:5;background:#fff;border-top:3px solid #38a8e2;box-shadow:0 -3px 18px #1c3d7f15;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;margin-bottom:26px}.recovery-save>span{font-size:12px;color:#526886}.recovery-save .actions{margin:0}.recovery-phase .panel-head{flex-wrap:wrap;gap:10px}.recovery-company{margin-bottom:40px}.recovery-table input:focus,.recovery-table select:focus{outline:2px solid #38a8e24d;border-color:#38a8e2}.recovery-table input:placeholder-shown{background:#fbfdff}.recovery-phase [disabled]{opacity:1;color:#526886}

.planning-reconciliation{margin:24px 0}.planning-reconciliation>summary{padding:20px 24px;cursor:pointer;font-weight:600;color:#1c3d7f}.planning-reconciliation td{vertical-align:top}.planning-reconciliation small{display:block;color:#62768d;font-size:11px;margin-top:5px}.planning-reconciliation td details>summary{cursor:pointer;color:#1c3d7f}.planning-reconciliation table{min-width:750px}.planning-reconciliation details table{margin-top:15px;font-size:12px}
.reconciliation{margin-top:24px}.reconciliation-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:24px}.reconciliation-cards .stat{min-width:0}.reconciliation-cards .stat strong{font-size:23px;white-space:normal}.reconciliation-table{min-width:800px}.reconciliation-table td,.reconciliation-table th{vertical-align:top}.reconciliation-table th[scope=row]{background:#f5f9fc;min-width:95px;color:#1c3d7f;text-transform:none}.reconciliation-table small{display:block;font-weight:400;line-height:1.5;font-size:11px;color:#526886;margin-top:6px;letter-spacing:normal;text-transform:none}.reconciliation-table button{white-space:nowrap}.reconciliation-alert{color:#865a1a!important}#supplier-closing{margin:22px 0;align-items:end;flex-wrap:wrap}#supplier-closing label{display:flex;flex-direction:column;gap:8px;font-size:13px}#supplier-closing input{padding:10px;border:1px solid #cbd8e5;border-radius:5px;background:#fff;color:#25364c}@media(max-width:1100px){.reconciliation-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.reconciliation-cards{grid-template-columns:1fr}}
#supplier-agreements input,#supplier-agreements select,#supplier-agreements textarea{display:block;width:100%;min-width:105px;margin:5px 0;padding:9px 6px;border:1px solid #cbd8e5;border-radius:4px;background:#fff;font:inherit;font-size:12px;color:#25364c}#supplier-agreements [name=scope]{min-width:155px}#supplier-agreements textarea{min-width:160px;resize:vertical}
.payment-table{min-width:750px}.payment-table td,.payment-table th{vertical-align:top}.payment-table small{display:block;font-size:11px;color:#526886;line-height:1.5;margin-top:5px}.payment-table th[scope=row]{font-weight:600;letter-spacing:normal;text-transform:none}.payment-table input{width:135px}#client-payments-section .panel-head{flex-wrap:wrap;gap:10px}.payment-editor{margin-top:24px;padding:20px;border:1px solid #cbd8e5;border-top:3px solid #38a8e2;border-radius:5px;background:#fbfdff}.payment-editor .form-grid{margin:20px 0}.payment-editor input,.payment-editor select,.payment-editor textarea{display:block;width:100%;min-width:0;margin-top:7px;padding:10px 8px;border:1px solid #cbd8e5;border-radius:5px;background:#fff;font:inherit;color:#25364c}.payment-editor input[readonly]{background:#edf3f8}.payment-editor .payment-table input{min-width:100px}.payment-editor label{font-size:12px;color:#526886}.payment-bank-net{padding:12px;border-radius:5px;background:#eaf4fa;font-size:12px;color:#526886}.payment-bank-net strong{display:block;margin-top:10px;font-size:18px;color:#1c3d7f}.payment-editor details{margin-top:20px}.payment-editor summary,#client-payments-content>details>summary{cursor:pointer;font-weight:600;color:#1c3d7f}.payment-editor .toolbar{display:flex;justify-content:space-between;gap:15px}.payment-stats .stat strong{font-size:23px}.payment-scroll{margin:14px 0}.payment-editor .actions{flex-wrap:wrap}#client-payments-content>h3{margin-top:28px}
.company-table{min-width:850px}.company-table td,.company-table th{vertical-align:top}.company-table th[scope=row]{text-transform:none;letter-spacing:normal;min-width:110px}.company-table small{display:block;max-width:220px;font-size:11px;font-weight:400;line-height:1.5;color:#526886;margin-top:6px}.company-scroll{margin:20px 0}.company-alert{display:block;font-size:12px;color:#8b5415;margin-top:8px}.supplier-editor{margin:28px 0;padding:22px;border:1px solid #cbd8e5;border-top:3px solid #38a8e2;border-radius:6px;background:#fbfdff}.supplier-editor .toolbar{display:flex;gap:15px;justify-content:space-between}.supplier-editor label,#billing-profile-content label{display:block;font-size:12px;color:#526886}.supplier-editor input,.supplier-editor textarea,#billing-profile-content input,#billing-profile-content textarea,#supplier-selection input{display:block;min-width:0;width:100%;font:inherit;color:#25364c;border:1px solid #cbd8e5;border-radius:5px;padding:10px;margin:7px 0;background:#fff}.supplier-editor input:disabled,.supplier-editor textarea:disabled{background:#f2f6f9}.supplier-editor textarea{min-height:75px;resize:vertical}.company-table input{min-width:110px}.company-check{display:flex!important;align-items:flex-start;gap:10px;margin:20px 0;line-height:1.6}.company-check input{width:18px!important;height:18px;flex-shrink:0;margin:0!important}.supplier-editor details{margin:20px 0}.supplier-editor summary,#billing-profile-content summary,.company-table summary{cursor:pointer;color:#1c3d7f;font-weight:600}#billing-profile-content .form-grid{margin:22px 0}#production-account .panel-head{flex-wrap:wrap;gap:10px}#production-account .stats .stat{min-width:0}#production-account .stats strong{font-size:22px}#production-account .actions{flex-wrap:wrap}.supplier-editor h3{margin:0;overflow-wrap:anywhere}.company-table td{font-size:12px}#company-billing-content>h3{margin-top:30px}
.production-payment-journal td:nth-child(4){min-width:190px}.production-payment-journal td:last-child{width:190px}.production-payment-journal button{max-width:180px;white-space:normal;margin-bottom:8px}.supplier-editor select{display:block;width:100%;font:inherit;color:#25364c;border:1px solid #cbd8e5;border-radius:5px;padding:10px;margin:7px 0;background:#fff}

/* Documentary project preparation uses the same compact tables and native currencies. */
#project-preparation .stat strong { font-size:clamp(1rem,2vw,1.5rem); }
#project-preparation .table-wrap { overflow-x:auto; }
#project-preparation table { min-width:650px; }
#project-preparation input[type=number] { min-width:90px; }
#project-preparation select { min-width:85px; }
#project-preparation .financial-scroll table { min-width:1100px; }
#project-preparation .financial-scroll th:first-child { min-width:200px; }

.catalog-table{min-width:900px;table-layout:fixed}.catalog-table th:first-child{width:26%}.catalog-table th:nth-child(2){width:17%}.catalog-table th:nth-child(3){width:12%}.catalog-table th:nth-child(4){width:16%}.catalog-table th:nth-child(5){width:16%}.catalog-table th:last-child{width:110px}.catalog-table td{vertical-align:top;overflow-wrap:anywhere}.catalog-table small{display:block;font-size:11px;color:var(--muted);margin-top:5px;line-height:1.5}.catalog-table .status{white-space:normal;line-height:1.5}.catalog-table button{white-space:nowrap;padding:9px 10px}

.operating-budget-table{min-width:650px}.operating-budget-table th:first-child{width:35%}.operating-budget-table input{width:145px;max-width:100%;text-align:right;padding:10px;border:1px solid var(--border);border-radius:5px;font:inherit}.operating-budget-table small,.operating-expense-table small{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:5px}.budget-over{color:#a64736;font-weight:700}.operating-expense-table{min-width:860px}.operating-expense-table td{vertical-align:top}.operating-expense-table td:nth-child(2){max-width:350px;overflow-wrap:anywhere}#expense-editor{scroll-margin-top:20px}#budget-values>p{margin:0}#budget-values>.resource-filters{margin-bottom:0}#expense-editor .field{display:flex;flex-direction:column;gap:7px}#expense-editor [hidden]{display:none!important}

.receipt-button{font-size:12px;padding:8px 10px;white-space:normal}.receipt-missing{color:#944c2e;border-color:#dfbda9;background:#fff9f4}.receipt-dialog{width:min(800px,94vw);max-height:90vh;padding:0;border:1px solid var(--border);border-radius:12px;color:var(--text);background:white;box-shadow:0 18px 65px #17233b55}.receipt-dialog::backdrop{background:#17233b66}.receipt-dialog .panel-head{align-items:flex-start}.receipt-dialog .panel-head p{margin:8px 0 0;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.receipt-dialog small{display:block;color:var(--muted);font-size:11px;line-height:1.6;margin-top:5px}.receipt-dialog form{display:grid;gap:12px}.receipt-dialog label{display:grid;gap:8px;font-size:13px}.receipt-dialog input:not([type=file]),.receipt-dialog select{width:100%;padding:10px;border:1px solid var(--border);border-radius:5px;font:inherit}.receipt-files{display:grid;gap:14px;margin-bottom:20px}.receipt-file{border:1px solid var(--border);border-radius:7px;padding:16px;overflow-wrap:anywhere}.receipt-file .actions{margin:12px 0}.receipt-file details{font-size:12px}.receipt-file form{margin-top:12px}.receipt-drop{border:2px dashed #afbdd5;border-radius:8px;padding:20px;background:#f8faff}.receipt-drop.drag-over{background:#e7efff;border-color:#243e79}.receipt-drop input{max-width:100%;font:inherit}.receipt-dialog button[type=submit]{justify-self:start}.receipt-archive,.receipt-history{margin-top:22px}.receipt-archive form{margin-top:14px}.receipt-error{color:#a64736;font-size:13px}.receipt-dialog [role=status]{min-height:20px}.operating-expense-table{min-width:1000px}

.receipt-preview{margin:0;background:#edf0f6;color:#233251}.receipt-preview>header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 4vw;background:white;border-bottom:1px solid var(--border)}.receipt-preview h1{font-size:21px;margin:8px 0;overflow-wrap:anywhere}.receipt-preview main{max-width:1300px;margin:20px auto;padding:0 20px}.receipt-preview nav{display:flex;justify-content:center;align-items:center;gap:20px;margin-bottom:20px}.receipt-preview nav[hidden]{display:none}.receipt-preview img{display:block;max-width:100%;height:auto;margin:0 auto;background:white;box-shadow:0 3px 20px #17233b20}.receipt-preview a{white-space:nowrap}

/* Entity finance overview: reuse the Almanta cards and table vocabulary. */
.finance-cards .stat strong{font-size:25px}.finance-summary td small,.finance-summary th small,.finance-issues small{display:block;font-size:11px;font-weight:400;line-height:1.55;color:var(--muted);margin-top:6px;text-transform:none;letter-spacing:normal}.finance-entity-table{min-width:830px}.finance-entity-table td,.finance-entity-table th{vertical-align:top}.finance-entity-table td strong{font-size:16px;color:var(--brand-blue)}.finance-note{margin:18px 24px;line-height:1.65}.finance-budget-table{min-width:1000px}.finance-budget-table td{vertical-align:top}.finance-budget-table td:first-child{min-width:230px}.finance-details>summary{padding:20px 24px;cursor:pointer;color:var(--brand-blue);font-weight:600}.finance-details .table-wrap{padding:0 24px 20px}.finance-details table{min-width:700px}.finance-issues{list-style:none;margin:0;padding:0 24px 20px}.finance-issues li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line)}.finance-issues li>div{min-width:0;overflow-wrap:anywhere}.finance-issues button{flex-shrink:0}.finance-summary>.subtle{line-height:1.6}.finance-summary .panel-head{flex-wrap:wrap;gap:12px}@media(max-width:600px){.finance-issues li{align-items:flex-start;flex-direction:column}.finance-cards .stat strong{font-size:22px}}
/* Shared company directory and professional contacts. */
.account-form{display:grid;gap:18px;max-width:490px;margin-top:25px}.account-form label,.account-reauth{display:grid;gap:8px;font-size:14px}.account-form input,.account-reauth input{padding:12px;border:1px solid var(--border);border-radius:6px;font:inherit;width:100%;min-width:0}.account-form input:focus,.account-reauth input:focus{outline:2px solid var(--brand-blue);outline-offset:1px}.account-form small{color:var(--muted);line-height:1.6}.account-form button{justify-self:start}.account-reauth{max-width:650px;margin:20px 0}.account-table{min-width:660px}.account-table td{vertical-align:top}.account-table td small{display:block;color:var(--muted);font-size:12px;line-height:1.7;margin-top:6px}.account-table button{margin:0 8px 8px 0}#activation-link{font-size:12px}.profile #account-open{white-space:nowrap}
/* Production budgets share the time-consumption bars and existing project tabs. */
.budget-phase>summary{display:grid;grid-template-columns:minmax(200px,1fr) minmax(240px,1fr);gap:24px;padding:22px 24px;cursor:pointer;align-items:center;list-style:none}
.budget-phase>summary h3{margin:0 0 6px;color:var(--brand-blue);font-size:16px}.budget-phase>summary h3:before{content:'›';display:inline-block;margin-right:10px}.budget-phase[open]>summary h3:before{transform:rotate(90deg)}
.budget-phase>summary small,.budget-agreement small,.budget-person small{display:block;color:var(--muted);font-size:12px;line-height:1.6}
.budget-phase[open]>summary{border-bottom:1px solid var(--border)}.budget-phase>summary:focus-visible{outline:2px solid var(--brand-blue);outline-offset:-3px}
.budget-people{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:0 0 22px}.budget-person{padding:14px;background:#f5f8fc;border:1px solid var(--border);border-radius:8px}.budget-person>div:first-child{margin-bottom:10px}
.budget-agreements{display:grid;gap:12px;margin-top:22px}.budget-agreement{border-left:3px solid var(--brand-blue);padding:8px 16px;background:#f5f8fc}.budget-agreement p{font-size:13px;line-height:1.8;margin:8px 0}
.production-budget-table{min-width:850px;table-layout:fixed}.production-budget-table th:first-child{width:29%}.production-budget-table td{vertical-align:top;overflow-wrap:anywhere}.production-budget-table small{display:block;font-size:11px;line-height:1.6;color:var(--muted);margin-top:5px}.production-budget-table small.overload{color:#a64736}.production-budget-table input{width:100%;min-width:85px;padding:10px 7px;border:1px solid var(--border);border-radius:5px;background:white;text-align:right;font:inherit}.production-budget-table input:focus{outline:2px solid var(--brand-blue);outline-offset:1px}.production-budget-table caption{text-align:left;font-size:12px;color:var(--muted);margin-bottom:12px}
.budget-save{position:sticky;bottom:0;z-index:3;box-shadow:0 -4px 18px #17233b10}.budget-save label{display:grid;gap:7px;font-size:13px}.budget-save input{width:100%;padding:10px;border:1px solid var(--border);border-radius:5px;font:inherit}.budget-save .toolbar{margin-top:12px;gap:15px;flex-wrap:wrap}.budget-save button{flex-shrink:0}
@media(max-width:680px){.budget-phase>summary{grid-template-columns:1fr;padding:18px;gap:14px}.budget-save{position:static}.budget-people{grid-template-columns:1fr}}
.directory-search{display:grid;gap:8px;padding:18px 25px;border-bottom:1px solid var(--border)}
.directory-search label{font-size:13px;color:var(--muted)}
.directory-search input{width:100%;max-width:550px;padding:11px 13px;font:inherit;border:1px solid var(--border);border-radius:6px}
.directory-search small,.directory-panel td small{display:block;color:var(--muted);font-size:12px;line-height:1.6;margin-top:5px}
.directory-panel td{vertical-align:top;line-height:1.7}.directory-panel a,.directory-contact a{overflow-wrap:anywhere}
.directory-panel table{min-width:760px}.directory-panel [hidden]{display:none}
.client-dialog{width:min(920px,94vw)}.client-dialog .company-contacts{margin-top:22px}
.company-contacts .toolbar{display:flex;gap:15px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.company-contacts .toolbar h3{margin:0}.company-contacts>p{font-size:13px;line-height:1.6}
.directory-contact{min-width:0;margin:18px 0;padding:18px;border:1px solid var(--border);border-radius:8px;background:#f8faff}
.directory-contact legend{padding:0 6px;font-size:13px;color:var(--brand-blue)}.directory-contact h3{margin:0}.directory-contact p{font-size:13px;line-height:1.7}
.client-dialog .contact-choices{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:16px}
.client-dialog .contact-choices label,.client-dialog .contact-billing-default{display:flex;align-items:center;gap:8px;line-height:1.5}
.client-dialog input[type=radio]{width:17px;height:17px;margin:0;flex-shrink:0;accent-color:var(--brand-blue)}
.client-dialog .contact-choices button{margin-left:auto;font-size:12px}.client-dialog .actions{flex-wrap:wrap}
@media(max-width:600px){.directory-search{padding:18px}.client-dialog .panel-body,.client-dialog .panel-head{padding:18px}.client-dialog .contact-choices{align-items:flex-start;flex-direction:column}.client-dialog .contact-choices button{margin-left:0}.directory-contact{padding:14px}.client-dialog .form-grid{gap:14px}}
.storage-documents{padding:0;margin:12px 0;list-style:none}.storage-document{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid var(--line,#dce3e8)}.storage-document small{display:block;margin-top:6px;overflow-wrap:anywhere}.storage-document .actions{flex-shrink:0}@media(max-width:650px){.storage-document{align-items:flex-start;flex-direction:column}}
