:root {
  --eggshell: #F1ECE0;
  --paper: #FBF8F1;
  --moss: #3E4A34;
  --moss-deep: #2A331F;
  --straw: #C99A3B;
  --sage: #8B9B7A;
  --plum: #6B5169;
  --rust: #A8522E;
  --ink: #2C2A22;
  --line: #D8CFB8;
  /* Fixed regardless of theme — used only where text sits on a
     constant-brightness surface (the rail, gold buttons), not the
     page background, so it should never flip with dark mode. */
  --ink-on-accent: #2A331F;
  --muted: #7A7160;
  --muted-lt: #9A9078;
  --theme-transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

[data-theme="dark"] {
  --eggshell: #1E1C17;
  --paper: #29271F;
  --moss: #8FB374;
  --moss-deep: #C8D9B0;
  --straw: #D9AE5C;
  --sage: #A8BE94;
  --plum: #B79AB5;
  --rust: #E08B63;
  --ink: #E7E2D6;
  --line: #3D3A30;
  --muted: #A39B87;
  --muted-lt: #8A8272;
}

* { transition: var(--theme-transition); }
* { box-sizing: border-box; }
body { margin: 0; background: var(--eggshell); color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.mono { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; }
a { color: var(--moss); }

.dd-app { display: flex; min-height: 100vh; }

.rail { width: 238px; flex: 0 0 238px; background: var(--ink-on-accent); color: #F1ECE0; display: flex; flex-direction: column; box-sizing: border-box; }
.rail-inner { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; padding: 12px 0 10px; box-sizing: border-box; }
.rail-brand { display: flex; align-items: center; gap: 10px; padding: 0 18px 14px; border-bottom: 1px solid rgba(241,236,224,0.15); margin-bottom: 12px; }
.rail-brand-mark { font-size: 22px; }
.rail-brand-title { font-family: Georgia, "Iowan Old Style", serif; font-weight: 700; font-size: 15px; letter-spacing: 0.02em; }
.rail-brand-sub { font-size: 11px; opacity: 0.65; text-transform: uppercase; letter-spacing: 0.08em; }
.rail-tabs { display: flex; flex-direction: column; gap: 1px; padding: 0 10px 8px; flex: 0 0 auto; min-height: 0; overflow: visible; }
.rail-section-label { padding: 7px 12px 3px; font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: rgba(241,236,224,.42); }
.rail-section-label:first-child { padding-top: 4px; }
.rail-admin-section { margin-top: 2px; border-top: 1px solid rgba(241,236,224,.15); padding-top: 9px; }
.rail-admin { font-weight: 700; }
.rail-foot { padding: 8px 18px 10px; border-top: 1px solid rgba(241,236,224,0.15); margin-top: 8px; font-size: 11px; opacity: 0.68; }
.rail-tab { text-align: left; background: transparent; border: none; border-left: 3px solid transparent; color: rgba(241,236,224,0.78); padding: 6px 12px; min-height: 31px; font-size: 13px; font-weight: 600; letter-spacing: 0.02em; border-radius: 0 6px 6px 0; cursor: pointer; text-decoration: none; display: block; }
.rail-tab:hover { background: rgba(241,236,224,0.08); color: #F1ECE0; }
.rail-tab.active { background: rgba(241,236,224,0.12); color: #F1ECE0; border-left-color: var(--tint, var(--straw)); }
.rail-foot-date { font-family: ui-monospace, monospace; margin-top: 2px; }
.rail-foot a { color: rgba(241,236,224,0.85); }

.theme-toggle {
  display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; flex-shrink: 0; border-radius: 50%;
  background: rgba(241,236,224,0.08); border: 1px solid rgba(241,236,224,0.2);
  color: #F1ECE0; cursor: pointer; padding: 0; transition: background 0.15s ease;
}
.theme-toggle:hover { background: rgba(241,236,224,0.18); }
.theme-toggle svg { width: 15px; height: 15px; }
.theme-toggle .icon-moon { display: none; }
[data-theme="dark"] .theme-toggle .icon-sun { display: none; }
[data-theme="dark"] .theme-toggle .icon-moon { display: block; }

.ledger-page { flex: 1; padding: 32px 40px; max-width: 1180px; }

.section-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 20px; flex-wrap: wrap; gap: 10px; }
.eyebrow { font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--straw); font-weight: 700; margin-bottom: 2px; }
.ledger-title { font-family: Georgia, "Iowan Old Style", serif; font-size: 26px; font-weight: 700; margin: 0; color: var(--moss-deep); }

.action-row { display: flex; gap: 8px; flex-wrap: wrap; }

.btn-primary, button.btn-primary, input[type=submit].btn-primary { background: var(--straw); color: var(--ink-on-accent); border: none; padding: 9px 16px; border-radius: 7px; font-weight: 700; font-size: 13.5px; cursor: pointer; }
.btn-primary:hover { filter: brightness(1.06); }
.btn-ghost { background: transparent; border: 1.5px solid var(--line); color: var(--ink); padding: 8px 14px; border-radius: 7px; font-weight: 600; font-size: 13.5px; cursor: pointer; text-decoration: none; display: inline-block; }
.btn-ghost:hover { background: rgba(62,74,52,0.06); }

.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin-bottom: 20px; }
.stat-label { font-size: 12px; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.stat-value { font-family: Georgia, serif; font-size: 30px; font-weight: 700; color: var(--moss-deep); margin: 4px 0 2px; }
.stat-sub { font-size: 12px; color: var(--muted); }

.chart-row { display: flex; gap: 14px; margin-bottom: 20px; flex-wrap: wrap; }
.chart-row > .ledger-card { flex: 1; min-width: 280px; }
.card-title { font-weight: 700; font-size: 14px; color: var(--moss-deep); margin-bottom: 10px; }
.card-title-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; flex-wrap: wrap; gap: 8px; }
.farm-id-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px; }
.farm-id-value { font-family: Georgia, serif; font-weight: 700; font-size: 20px; color: var(--moss-deep); margin-top: 2px; }
.card-title-row .card-title { margin-bottom: 0; }

.ledger-card { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 16px 18px; margin-bottom: 16px; }

.empty-state { color: var(--muted-lt); font-size: 13.5px; font-style: italic; padding: 10px 4px; }

.breed-group { margin-bottom: 22px; }
.breed-group-label { font-weight: 700; font-size: 13.5px; border-left: 4px solid; padding-left: 10px; margin-bottom: 10px; color: var(--moss-deep); }
.breed-count { color: var(--muted); font-weight: 500; }

.bird-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.bird-card-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.band-tag { color: white; border-radius: 5px; font-family: ui-monospace, monospace; font-weight: 700; letter-spacing: 0.02em; display: inline-block; }
.bird-name { font-family: Georgia, serif; font-weight: 700; font-size: 16px; color: var(--moss-deep); }
.bird-meta { font-size: 12.5px; color: var(--muted); margin-top: 2px; }
.bird-notes { font-size: 12.5px; color: var(--muted); margin-top: 8px; font-style: italic; border-top: 1px dashed var(--line); padding-top: 6px; }
.card-actions { display: flex; gap: 12px; margin-top: 10px; align-items: center; }
.pair-line { font-size: 13.5px; font-weight: 600; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pair-x { color: var(--plum); font-weight: 700; margin: 0 2px; }

.status-pill { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding: 3px 8px; border-radius: 20px; background: rgba(139,155,122,0.25); color: var(--moss-deep); }
.status-sold { background: rgba(201,154,59,0.25); }
.status-deceased { background: rgba(168,82,46,0.22); color: var(--rust); }
.status-retired { background: rgba(201,154,59,0.25); }

.link-btn { background: none; border: none; color: var(--moss); font-weight: 600; font-size: 12.5px; cursor: pointer; padding: 0; text-decoration: none; }
.link-btn.danger { color: var(--rust); }
.link-btn:hover { text-decoration: underline; }

.recurring-flag { color: var(--straw); font-weight: 700; }

.table-scroll { overflow-x: auto; }
.ledger-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ledger-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); padding: 6px 8px; border-bottom: 2px solid var(--line); white-space: nowrap; }
.ledger-table td { padding: 8px 8px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.ledger-table tr:last-child td { border-bottom: none; }

/* Collapsible add/edit forms, no JS required */
details.form-details { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; margin-bottom: 16px; }
details.form-details > summary { cursor: pointer; padding: 12px 18px; font-weight: 700; color: var(--moss-deep); list-style: none; }
details.form-details > summary::-webkit-details-marker { display: none; }
details.form-details > summary::before { content: "+ "; color: var(--straw); }
details.form-details[open] > summary::before { content: "– "; }
details.form-details .details-inner { padding: 4px 18px 18px; border-top: 1px solid var(--line); }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.field { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.field-label { font-weight: 600; color: var(--muted); font-size: 12px; }
.field input, .field select, .field textarea {
  border: 1.5px solid var(--line); border-radius: 6px; padding: 7px 9px; font-size: 13.5px; font-family: inherit; background: white; color: var(--ink); width: 100%;
}
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--straw); outline-offset: 0; border-color: var(--straw); }
textarea { resize: vertical; width: 100%; }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 6px; }

.flash { padding: 10px 16px; border-radius: 8px; margin-bottom: 16px; font-size: 13.5px; font-weight: 600; }
.flash-success { background: rgba(139,155,122,0.25); color: var(--moss-deep); }
.flash-error { background: rgba(168,82,46,0.18); color: var(--rust); }

.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.login-card { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 32px; width: 100%; max-width: 340px; text-align: center; }
.login-card h1 { font-family: Georgia, serif; color: var(--moss-deep); font-size: 22px; margin: 6px 0 20px; }
.login-card.register-card { max-width: 620px; text-align: left; }
.login-card.register-card > div:first-child, .login-card.register-card h1, .login-card.register-card .eyebrow { text-align: center; }
.login-card.register-card .field { margin-bottom: 14px; }
.login-card.register-card .field:last-of-type { margin-bottom: 0; }

@media (max-width: 720px) {
  .dd-app { flex-direction: column; }
  .rail { width: 100%; flex-direction: row; overflow-x: auto; padding: 12px; align-items: center; height: auto; position: static; }
  .rail-inner { flex-direction: row; align-items: center; overflow: visible; height: auto; min-height: auto; position: static; padding: 0; }
  .rail-brand { border: none; padding: 0 12px 0 0; margin: 0; }
  .rail-tabs { flex-direction: row; overflow-y: visible; overflow-x: visible; min-height: auto; }
  .rail-section-label { display:none; }
  .rail-foot { display:none; }
  .rail-admin-section { display:none; }
  .rail-admin { white-space:nowrap; padding:10px 12px; }
  .rail-foot { display: none; }
  .ledger-page { padding: 20px; }
  .form-grid { grid-template-columns: 1fr; }
}

/* DuckeryOS account/workspace bar */
.os-topbar { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:10px 0 16px; margin-bottom:4px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.os-farm-switcher, .os-account { display:flex; align-items:center; gap:9px; }
.os-topbar-label, .os-account-role { font-size:11px; text-transform:uppercase; letter-spacing:.08em; opacity:.62; font-weight:700; }
.os-farm-form { margin:0; }
.os-farm-form select { min-width:180px; border:1px solid var(--line); border-radius:7px; padding:7px 30px 7px 10px; background:var(--paper); color:var(--ink); font-weight:700; }
.os-topbar-link, .os-signout { font-size:13px; font-weight:700; text-decoration:none; }
.os-topbar-link { color:var(--ink); }
.os-signout { color:var(--danger, #A8522E); }
.os-account-name { font-size:13px; font-weight:700; }
@media (max-width: 700px) { .os-topbar { align-items:stretch; } .os-farm-switcher, .os-account { width:100%; } .os-farm-form { flex:1; } .os-farm-form select { width:100%; } .os-account { justify-content:flex-end; } }

/* DuckeryOS workspace / account polish */
.workspace-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; margin-bottom:22px; }
.workspace-account-card, .workspace-current-card { margin-bottom:0; padding:18px 20px; }
.workspace-card-kicker { color:var(--straw); font-size:10.5px; text-transform:uppercase; letter-spacing:.11em; font-weight:800; margin-bottom:10px; }
.workspace-account { display:flex; align-items:center; gap:12px; }
.workspace-avatar { width:42px; height:42px; border-radius:50%; background:var(--ink-on-accent); color:#F1ECE0; display:flex; align-items:center; justify-content:center; font-weight:800; font-family:Georgia,serif; font-size:17px; flex-shrink:0; }
.workspace-avatar.small { width:36px; height:36px; font-size:14px; }
.workspace-account-copy { min-width:0; display:flex; flex-direction:column; gap:2px; }
.workspace-account-copy strong, .team-current-user strong { font-size:14px; color:var(--moss-deep); }
.workspace-account-copy > span, .team-current-user span { color:var(--muted); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.workspace-role { margin-top:5px; }
.workspace-inline-link { display:inline-block; margin-top:13px; font-size:12.5px; font-weight:700; text-decoration:none; color:var(--moss); }
.workspace-current-name { font-family:Georgia,serif; color:var(--moss-deep); font-size:23px; font-weight:700; }
.workspace-current-meta { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:12px; margin-top:4px; }
.workspace-dot { opacity:.55; }
.workspace-switch-note { color:var(--muted-lt); font-size:12px; margin-top:13px; }
.workspace-section-heading { margin:4px 2px 10px; }
.workspace-new-btn { font-size:12.5px; padding:8px 13px; }
.workspace-list { display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
.workspace-farm-card { background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.workspace-farm-card.current { border-color:rgba(201,154,59,.65); box-shadow:inset 3px 0 0 var(--straw); }
.workspace-farm-main { display:flex; align-items:center; gap:12px; min-width:0; }
.workspace-farm-icon { width:38px; height:38px; border-radius:8px; background:rgba(139,155,122,.16); display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.workspace-farm-name { color:var(--moss-deep); font-family:Georgia,serif; font-size:17px; font-weight:700; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.workspace-farm-meta { color:var(--muted); font-size:11.5px; margin-top:3px; display:flex; gap:7px; align-items:center; }
.workspace-farm-action form { margin:0; }
.workspace-create-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,1.2fr); align-items:end; gap:22px; margin-top:8px; }
.workspace-create-copy .card-title { margin-bottom:4px; }
.workspace-create-copy p { margin:0; max-width:520px; }
.workspace-create-form { display:flex; align-items:end; gap:10px; }
.workspace-create-form .field { flex:1; }
.team-summary { background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:16px 18px; margin-bottom:14px; display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:24px; align-items:center; }
.team-current-user { display:flex; align-items:center; gap:10px; }
.team-current-user > div:last-child { display:flex; flex-direction:column; gap:2px; min-width:0; }
.team-summary-stat { border-left:1px solid var(--line); padding-left:22px; display:flex; flex-direction:column; gap:2px; }
.team-summary-stat strong { color:var(--moss-deep); font-family:Georgia,serif; font-size:18px; }
.team-summary-stat span { color:var(--muted); font-size:11px; }
.team-admin-grid { align-items:stretch; }
.team-admin-grid > .ledger-card { margin-bottom:0; }
.team-role-guide { display:grid; grid-template-columns:1fr 1fr; gap:7px 12px; margin-top:14px; color:var(--muted); font-size:11.5px; }
.team-role-guide b { color:var(--ink); }
.team-list-card { margin-top:14px; }
.team-list { display:flex; flex-direction:column; }
.team-person { display:flex; align-items:center; gap:11px; padding:10px 2px; border-top:1px solid var(--line); }
.team-person:first-child { border-top:0; }
.team-person-main { display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.team-person-main strong { color:var(--moss-deep); font-size:13.5px; }
.team-person-main span { color:var(--muted); font-size:11.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.role-badge { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; padding:4px 8px; border-radius:20px; background:rgba(139,155,122,.18); color:var(--moss-deep); }
.role-admin { background:rgba(201,154,59,.18); color:var(--straw); }
.role-manager { background:rgba(75,101,132,.16); color:var(--moss-deep); }
.role-owner { background:rgba(168,82,46,.16); color:var(--rust); }
.os-farm-switcher { padding:3px 5px 3px 9px; background:var(--paper); border:1px solid var(--line); border-radius:9px; box-shadow:0 1px 2px rgba(0,0,0,.03); }
.os-farm-switcher .os-topbar-label { margin-right:2px; }
.os-farm-form select { min-width:170px; border:0; padding:6px 28px 6px 4px; background:transparent; font-size:12.5px; }
.os-farm-form select:focus { outline:none; }
.os-topbar-link { padding:7px 10px; border-radius:7px; background:rgba(201,154,59,.12); color:var(--ink); }
.os-topbar-link:hover { background:rgba(201,154,59,.2); }
.os-account { background:var(--paper); border:1px solid var(--line); border-radius:9px; padding:4px 5px 4px 10px; }
.os-account-name { color:var(--moss-deep); }
.os-signout { padding:6px 9px; border-left:1px solid var(--line); }
@media (max-width: 760px) {
  .workspace-grid, .workspace-create-card, .team-summary { grid-template-columns:1fr; }
  .workspace-farm-card { align-items:flex-start; flex-direction:column; }
  .workspace-farm-action, .workspace-farm-action form, .workspace-farm-action button { width:100%; }
  .workspace-create-form { flex-direction:column; align-items:stretch; }
  .team-summary-stat { border-left:0; border-top:1px solid var(--line); padding:10px 0 0; }
  .team-role-guide { grid-template-columns:1fr; }
}


/* ===== DuckeryOS 5.9 desktop navigation polish ===== */
.rail-brand { flex: 0 0 auto; }
.rail-tab, .rail-admin { line-height: 1.25; }
.rail-tab.active, .rail-admin.active { box-shadow: inset 0 0 0 1px rgba(241,236,224,.035); }
.rail-bottom { background: var(--ink-on-accent); }
.rail-admin { min-height: 34px; padding: 8px 12px; }
.rail-foot { color: rgba(241,236,224,.62); }

/* Consistent workspace switcher; don't rely on browser default select styling. */
.os-farm-switcher {
  min-height: 42px;
  padding: 4px 6px 4px 11px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 10px;
}
.os-farm-form { min-width: 0; }
.os-farm-form select {
  appearance: none;
  -webkit-appearance: none;
  min-width: 190px;
  max-width: 280px;
  border: 0;
  border-radius: 7px;
  padding: 7px 30px 7px 7px;
  background-color: var(--paper);
  color: var(--moss-deep);
  font-family: inherit;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.2;
  cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position: calc(100% - 14px) 50%, calc(100% - 9px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
.os-farm-form select:hover { background-color: rgba(139,155,122,.10); }
.os-farm-form select:focus { outline: 2px solid var(--straw); outline-offset: 1px; }
.os-farm-form select option { background: var(--paper); color: var(--ink); }

/* Keep the main workspace visually consistent when the native menu is opened. */
.os-topbar { min-width: 0; }
.os-farm-switcher { min-width: 0; }
.os-account { flex: 0 0 auto; }

/* Desktop: give the content a little more breathing room and prevent cards
   from being clipped by a narrow main column. */
.ledger-page { min-width: 0; width: 100%; }
@media (min-width: 761px) and (max-height: 820px) {
  .rail-inner { padding-top: 10px; padding-bottom: 8px; }
  .rail-brand { padding-bottom: 12px; margin-bottom: 7px; }
  .rail-section-label { padding-top: 7px; padding-bottom: 3px; }
  .rail-tab { min-height: 31px; padding-top: 6px; padding-bottom: 6px; }
  .rail-admin { min-height: 31px; padding-top: 6px; padding-bottom: 6px; }
  .rail-foot { padding-top: 6px; font-size: 10.5px; }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .rail { width: 220px; flex-basis: 220px; }
  .ledger-page { padding-left: 28px; padding-right: 28px; }
}


/* ===== DuckeryOS 5.11 rail height fix ===== */
@media (min-width: 721px) {
  /* Let the rail stretch with the application instead of ending at the
     browser viewport height. This keeps the green background continuous
     all the way down the left edge of the page. */
  .rail {
    height: auto;
    min-height: 100vh;
    max-height: none;
    align-self: stretch;
  }
}

/* ===== DuckeryOS 5.10 desktop navigation visibility fix (rev 2) ===== */
@media (min-width: 721px) {
  /* .rail-inner is the actual scrolling nav panel: pinned to one viewport
     height and independently scrollable, so Business/Intelligence/Admin
     items are always reachable regardless of how tall .rail (the
     background box, see the 5.11 fix below) grows to match the page. */
  .rail-inner {
    position: sticky;
    top: 0;
    height: 100vh;
    max-height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(241,236,224,.22) transparent;
  }
  .rail-inner::-webkit-scrollbar { width: 7px; }
  .rail-inner::-webkit-scrollbar-track { background: transparent; }
  .rail-inner::-webkit-scrollbar-thumb { background: rgba(241,236,224,.20); border-radius: 8px; }
  .rail-inner::-webkit-scrollbar-thumb:hover { background: rgba(241,236,224,.32); }
  .rail-bottom {
    flex: 0 0 auto;
    margin-top: 2px;
  }
  .rail-brand {
    position: sticky;
    top: -14px;
    z-index: 5;
    background: var(--ink-on-accent);
    padding-top: 14px;
  }
}

/* Keep the complete desktop menu compact enough for common laptop heights
   while preserving the existing DuckeryOS typography and spacing language. */
@media (min-width: 721px) and (max-height: 850px) {
  .rail-inner { padding-top: 10px; padding-bottom: 8px; }
  .rail-brand { padding-top: 10px; padding-bottom: 12px; margin-bottom: 7px; top: -10px; }
  .rail-section-label { padding-top: 7px; padding-bottom: 3px; }
  .rail-tab { min-height: 30px; padding: 6px 12px; font-size: 12.75px; }
  .rail-admin { min-height: 30px; padding: 6px 12px; font-size: 12.75px; }
  .rail-foot { padding-top: 6px; margin-top: 8px; font-size: 10.5px; }
}

/* Native form controls inherit the DuckeryOS palette instead of the browser
   default where the platform allows it. */
.os-farm-form select {
  border: 0;
  color-scheme: light;
}
[data-theme="dark"] .os-farm-form select { color-scheme: dark; }
/* SaaS onboarding / licensing */
.saas-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}.saas-plan-grid-wide{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-top:14px}.saas-plan-card{display:block;border:1px solid var(--line,#D8CFB8);border-radius:10px;padding:14px;background:var(--paper,#fff);cursor:pointer;transition:.15s ease}.saas-plan-card:hover,.saas-plan-card.selected{border-color:#2F6B5E;box-shadow:0 0 0 2px rgba(47,107,94,.10)}.saas-plan-card input{margin-right:7px}.saas-plan-card strong{color:var(--moss-deep,#3E4A34);display:block;font-size:15px}.saas-plan-card>span,.saas-plan-card small{display:block;margin-top:4px;color:var(--muted,#8A8168)}.saas-plan-top{display:flex;justify-content:space-between;gap:10px}.saas-current{background:rgba(47,107,94,.12);color:#2F6B5E!important;border-radius:12px;padding:3px 7px;font-size:10px!important;font-weight:800}.saas-plan-price,.saas-price{font:700 25px Georgia,serif;color:var(--moss-deep,#3E4A34);margin-top:8px}.saas-plan-price small,.saas-price span{font:12px sans-serif;color:var(--muted,#8A8168);font-weight:400}.saas-plan-card ul{padding-left:18px;margin:10px 0 0;color:var(--muted,#6f695a);font-size:12px;line-height:1.7}.saas-account-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--paper,#f8f4e8);border:1px solid var(--line,#d8cfb8);border-radius:12px;padding:22px;margin-bottom:16px}.saas-account-hero h3{font:700 30px Georgia,serif;color:var(--moss-deep,#3e4a34);margin:4px 0 0}.saas-status{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:5px}.saas-status strong{color:var(--moss-deep,#3e4a34)}.saas-status small{color:var(--muted,#8a8168)}.status-pill{display:inline-block;border-radius:20px;padding:5px 10px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:rgba(139,155,122,.2);color:#3e4a34}.status-pill.trialing{background:rgba(201,154,59,.2);color:#80611c}.status-pill.past_due,.status-pill.cancelled{background:rgba(168,82,46,.15);color:#8c3d24}.saas-usage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.saas-usage-card{background:var(--paper,#f8f4e8);border:1px solid var(--line,#d8cfb8);border-radius:10px;padding:15px}.saas-usage-number{font:700 22px Georgia,serif;color:var(--moss-deep,#3e4a34);margin-top:5px}.saas-usage-number span{font:12px sans-serif;color:var(--muted,#8a8168);font-weight:400}.saas-meter{height:6px;background:rgba(139,155,122,.18);border-radius:8px;overflow:hidden;margin-top:10px}.saas-meter span{display:block;height:100%;background:#2F6B5E;border-radius:8px}.saas-feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.saas-feature{display:flex;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line,#d8cfb8);border-radius:8px;font-size:12px}.saas-feature .yes{color:#2F6B5E}.saas-feature .no{color:#8A8168}@media(max-width:700px){.saas-plan-grid,.saas-usage-grid,.saas-feature-grid{grid-template-columns:1fr}.saas-account-hero{align-items:flex-start;flex-direction:column}.saas-status{text-align:left;align-items:flex-start}}
.saas-trial-banner{margin:0 0 18px;padding:11px 14px;border:1px solid rgba(201,154,59,.35);background:rgba(201,154,59,.10);border-radius:9px;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px}.saas-trial-banner strong{color:#80611c;margin-right:8px}.saas-trial-banner span{color:var(--muted,#8a8168)}.saas-trial-banner a{font-weight:800;color:#2F6B5E;text-decoration:none;white-space:nowrap}@media(max-width:700px){.saas-trial-banner{align-items:flex-start;flex-direction:column}}
