/* Amorino Ops shared component library */
.ao-shell { min-height: 100vh; display: grid; grid-template-columns: var(--ao-sidebar-width) minmax(0,1fr); }
.ao-sidebar {
  min-height:100vh; position:sticky; top:0; height:100vh;
  background:var(--ao-green-950); color:#fff; padding:22px 16px 18px;
  display:flex; flex-direction:column; gap:22px;
}
.ao-sidebar-brand { display:flex; align-items:center; gap:10px; padding:4px 6px 8px; }
.ao-sidebar-brand img { display:block; width:142px; max-width:100%; height:auto; }
.ao-sidebar-label { font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.66); }
.ao-nav { display:flex; flex-direction:column; gap:4px; }
.ao-nav a, .ao-nav span {
  min-height:42px; border-radius:10px; padding:0 11px; display:flex; align-items:center; gap:10px;
  color:rgba(255,255,255,.72); font-size:13px; text-decoration:none;
}
.ao-nav a:hover { background:rgba(255,255,255,.07); color:#fff; }
.ao-nav .is-active { background:rgba(255,255,255,.11); color:#fff; font-weight:500; }
.ao-nav .is-wip { opacity:.50; cursor:default; }
.ao-sidebar-foot { margin-top:auto; padding:12px 7px 4px; border-top:1px solid rgba(255,255,255,.11); font-size:10px; color:rgba(255,255,255,.52); }

.ao-main { min-width:0; }
.ao-topbar { display:none; }
.ao-content { width:min(var(--ao-content-max),100%); margin:0 auto; padding:30px 28px 42px; }

.ao-page-header { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; margin-bottom:24px; }
.ao-eyebrow { margin:0 0 7px; font-size:10px; letter-spacing:.13em; text-transform:uppercase; font-weight:600; color:var(--ao-green-900); }
.ao-page-title { margin:0; font-size:var(--ao-text-display); line-height:1.1; letter-spacing:-.025em; font-weight:600; color:var(--ao-text); }
.ao-page-intro { margin:8px 0 0; color:var(--ao-text-muted); max-width:720px; font-size:13px; }

.ao-card { background:var(--ao-surface); border:1px solid var(--ao-line); border-radius:var(--ao-radius-md); box-shadow:var(--ao-shadow-card); }
.ao-card-pad { padding:20px; }
.ao-section-title { margin:0 0 12px; font-size:var(--ao-text-lg); line-height:1.2; font-weight:600; color:var(--ao-text); }

.ao-button { min-height:42px; border-radius:9px; border:1px solid transparent; padding:0 14px; display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:600; font-size:13px; cursor:pointer; text-decoration:none; }
.ao-button-primary { background:var(--ao-green-900); color:#fff; }
.ao-button-primary:hover { background:var(--ao-green-950); }
.ao-button-secondary { background:#fff; color:var(--ao-green-900); border-color:var(--ao-line-strong); }
.ao-button-secondary:hover { background:var(--ao-green-050); }
.ao-button-quiet { background:transparent; color:var(--ao-green-900); }

.ao-label { display:block; margin-bottom:6px; font-size:13px; font-weight:500; color:var(--ao-text); }
.ao-input, .ao-select, .ao-textarea { width:100%; border:1px solid var(--ao-line-strong); border-radius:9px; background:#fff; color:var(--ao-text); outline:none; }
.ao-input, .ao-select { min-height:44px; padding:0 12px; }
.ao-textarea { min-height:110px; padding:11px 12px; resize:vertical; }
.ao-input:focus, .ao-select:focus, .ao-textarea:focus { border-color:#7f9889; box-shadow:var(--ao-focus); }

.ao-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.ao-kpi { padding:16px; border:1px solid var(--ao-line); border-radius:var(--ao-radius-md); background:var(--ao-surface); }
.ao-kpi-label { font-size:11px; color:var(--ao-text-muted); }
.ao-kpi-value { margin-top:7px; font-size:24px; line-height:1.1; font-weight:600; color:var(--ao-text); }
.ao-kpi-meta { margin-top:5px; font-size:11px; color:var(--ao-text-muted); }

.ao-status { display:inline-flex; align-items:center; gap:6px; min-height:26px; padding:0 9px; border-radius:var(--ao-radius-pill); font-size:10.5px; font-weight:500; }
.ao-status::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.ao-status-success { background:var(--ao-success-bg); color:var(--ao-success); }
.ao-status-warning { background:var(--ao-warning-bg); color:var(--ao-warning); }
.ao-status-danger { background:var(--ao-danger-bg); color:var(--ao-danger); }
.ao-status-neutral { background:#eef1ee; color:var(--ao-text-muted); }

.ao-alert { border-radius:10px; padding:11px 13px; font-size:12px; line-height:1.45; border:1px solid transparent; }
.ao-alert-info { background:var(--ao-info-bg); color:var(--ao-info); }
.ao-alert-warning { background:var(--ao-warning-bg); color:var(--ao-warning); }
.ao-alert-danger { background:var(--ao-danger-bg); color:var(--ao-danger); }

.ao-table-wrap { overflow:auto; border:1px solid var(--ao-line); border-radius:var(--ao-radius-md); background:#fff; }
.ao-table { width:100%; border-collapse:collapse; min-width:680px; }
.ao-table th { text-align:left; padding:11px 13px; font-size:11px; font-weight:600; color:var(--ao-text-muted); background:var(--ao-surface-soft); border-bottom:1px solid var(--ao-line); }
.ao-table td { padding:12px 13px; font-size:13px; border-bottom:1px solid #edf0ed; }
.ao-table tr:last-child td { border-bottom:0; }

/* Current-site compatibility: converts existing pages to the shared system */
body { font-family:var(--ao-font) !important; background:var(--ao-page) !important; color:var(--ao-text) !important; }
body h1, body h2, body h3, body h4, body .section-title,
body .test-card .test-head h3, body .curve-card .curve-head h2,
body .settings-card .settings-heading h2, body .tool h2 {
  font-family:var(--ao-font) !important;
}
body h1 { color:var(--ao-text) !important; font-weight:600 !important; letter-spacing:-.025em !important; }
body .card, body .tool, body .metric, body .mini, body .impact {
  border-color:var(--ao-line) !important;
}
body .card, body .tool { box-shadow:var(--ao-shadow-card) !important; }
body .card { border-radius:var(--ao-radius-md) !important; }
body .tool { border-radius:var(--ao-radius-md) !important; }
body input, body select, body textarea { font-family:var(--ao-font) !important; }

/* Existing variable bridge */
body {
  --brand:var(--ao-green-900);
  --brand-deep:var(--ao-green-950);
  --brand-soft:var(--ao-green-100);
  --ink:var(--ao-text);
  --muted:var(--ao-text-muted);
  --paper:var(--ao-surface);
  --page:var(--ao-page);
  --card:var(--ao-surface);
  --line:var(--ao-line);
  --soft:var(--ao-surface-soft);
  --good:var(--ao-success);
  --goodbg:var(--ao-success-bg);
  --warn:var(--ao-warning);
  --warnbg:var(--ao-warning-bg);
  --bad:var(--ao-danger);
  --badbg:var(--ao-danger-bg);
}

@media (max-width: 860px) {
  .ao-shell { display:block; }
  .ao-sidebar { display:none; }
  .ao-topbar { min-height:58px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 14px; background:var(--ao-green-950); color:#fff; position:sticky; top:0; z-index:20; }
  .ao-topbar img { width:118px; height:auto; display:block; }
  .ao-topbar a { color:#fff; text-decoration:none; font-size:12px; opacity:.85; }
  .ao-content { padding:20px 14px 34px; }
  .ao-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 520px) {
  .ao-page-header { display:block; }
  .ao-card-pad { padding:15px; }
  .ao-kpi-grid { gap:8px; }
  .ao-kpi { padding:12px; }
}

/* Site-specific integration of current scaffold */
.login-shell .identity .logo { filter:none; }
.login-shell .card { box-shadow:var(--ao-shadow-card) !important; }
.login-shell h1 { font-size:30px !important; }
.login-shell button[disabled] { cursor:not-allowed; opacity:.64; }

.ao-content > section > .section-title { font-size:18px !important; letter-spacing:0 !important; text-transform:none !important; color:var(--ao-text) !important; margin-bottom:14px !important; }
.ao-content .tools { gap:12px; }
.ao-content .tool { min-height:200px; padding:19px; }
.ao-content .tool-kicker { color:var(--ao-text-muted); }
.ao-content .tool h2 { font-size:22px !important; font-weight:600 !important; color:var(--ao-text) !important; letter-spacing:-.015em; }
.ao-content .tool.active:hover { border-color:#aebdb3; box-shadow:0 8px 24px rgba(16,44,35,.06) !important; }
.ao-content .status.available { background:var(--ao-green-100); color:var(--ao-green-900); }
.ao-content .available .dot { background:var(--ao-success); }

/* Labour Planner bridge: visual system only; layout/calculation rules remain module-owned. */
.ao-main > .wrap { width:min(1120px,100%); }
.ao-main > .wrap h1 { font-family:var(--ao-font) !important; }
.ao-main > .wrap .eyebrow { color:var(--ao-green-900) !important; }
.ao-main > .wrap .hero-main { background:var(--ao-green-900) !important; }
.ao-main > .wrap .hero-side { background:var(--ao-green-100) !important; }
.ao-main > .wrap .preset.active { background:var(--ao-green-100) !important; border-color:#879d90 !important; }
.ao-main > .wrap .settings-heading h2,
.ao-main > .wrap .curve-head h2,
.ao-main > .wrap .test-head h3,
.ao-main > .wrap .section-title { letter-spacing:0 !important; text-transform:none !important; font-weight:600 !important; color:var(--ao-text) !important; }

@media (min-width:861px) {
  .ao-main > .wrap { padding-left:28px; padding-right:28px; }
}


/* V1.2 mobile shell + compact mobile density */
.ao-menu-button{display:none}
.ao-mobile-drawer,.ao-mobile-backdrop{display:none}

@media (max-width:860px){
  .ao-topbar{height:58px;min-height:58px;padding:8px 12px;}
  .ao-topbar img{width:112px}
  .ao-topbar-title{margin-left:auto;font-size:12px;font-weight:500;color:rgba(255,255,255,.88);}
  .ao-menu-button{
    display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;
    border:0;border-radius:9px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;
    margin-left:4px;padding:0;
  }
  .ao-menu-button:hover{background:rgba(255,255,255,.13)}
  .ao-menu-button svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none}
  .ao-mobile-backdrop{
    position:fixed;inset:58px 0 0;background:rgba(16,44,35,.28);z-index:39;
  }
  .ao-mobile-drawer{
    position:fixed;top:58px;right:0;bottom:0;width:min(320px,86vw);z-index:40;
    background:var(--ao-green-950);color:#fff;padding:14px 12px 18px;
    box-shadow:-18px 0 40px rgba(10,28,22,.16);overflow:auto;
  }
  .ao-mobile-drawer.is-open,.ao-mobile-backdrop.is-open{display:block}
  .ao-mobile-drawer .ao-sidebar-label{padding:5px 8px 10px}
  .ao-mobile-drawer .ao-nav a,.ao-mobile-drawer .ao-nav span{min-height:46px;font-size:14px;padding:0 12px}
  body.ao-menu-open{overflow:hidden}
}

@media (max-width:599px){
  .ao-content{padding:14px 10px 28px}
  .ao-page-header{margin-bottom:16px}
  .ao-page-title{font-size:26px}
  .ao-page-intro{font-size:13px;line-height:1.42;margin-top:6px}

  /* Labour Planner: reduce vertical travel without shrinking decision-critical numbers */
  .ao-main > .wrap{padding:12px 10px 26px !important}
  .ao-main > .wrap header{margin-bottom:10px !important;gap:4px !important}
  .ao-main > .wrap .brand-lockup{display:none !important}
  .ao-main > .wrap h1{font-size:26px !important;line-height:1.1 !important;margin-bottom:5px !important}
  .ao-main > .wrap .sub{font-size:13.5px !important;line-height:1.4 !important}
  .ao-main > .wrap .grid{gap:10px !important}
  .ao-main > .wrap .input-card,
  .ao-main > .wrap .result-card,
  .ao-main > .wrap .test-card{padding:12px !important}
  .ao-main > .wrap .section-title,
  .ao-main > .wrap .test-head h3{font-size:18px !important;margin-bottom:7px !important}
  .ao-main > .wrap label{font-size:13px !important;margin-bottom:6px !important}
  .ao-main > .wrap .input-wrap{height:56px !important;padding-left:12px !important}
  .ao-main > .wrap #sales{font-size:28px !important}
  .ao-main > .wrap .currency{font-size:21px !important}
  .ao-main > .wrap .presets{gap:7px !important;margin-top:9px !important}
  .ao-main > .wrap .preset{min-height:40px !important;padding:7px 4px !important;font-size:13px !important}
  .ao-main > .wrap .net{margin-top:9px !important;padding:10px 11px !important}
  .ao-main > .wrap .net span{font-size:12px !important}
  .ao-main > .wrap .net strong{font-size:17px !important}

  .ao-main > .wrap .result-card .status{margin-bottom:9px !important;padding:6px 9px !important}
  .ao-main > .wrap .hero{gap:7px !important}
  .ao-main > .wrap .hero-main,
  .ao-main > .wrap .hero-side{min-height:150px !important;padding:12px 11px !important}
  .ao-main > .wrap .hero-main .k,
  .ao-main > .wrap .hero-side .k{font-size:10px !important;line-height:1.25 !important}
  .ao-main > .wrap .hero-main .hours,
  .ao-main > .wrap .hero-side .pct{font-size:36px !important;margin:10px 0 7px !important}
  .ao-main > .wrap .hero-main .hours small{font-size:15px !important}
  .ao-main > .wrap .hero-main p,
  .ao-main > .wrap .hero-side p{font-size:10.5px !important;line-height:1.34 !important}
  .ao-main > .wrap .metrics{gap:5px !important;margin-top:8px !important}
  .ao-main > .wrap .metric{padding:8px 7px !important;border-radius:9px !important}
  .ao-main > .wrap .metric .k{font-size:9px !important;line-height:1.15 !important}
  .ao-main > .wrap .metric .v{font-size:14px !important;margin-top:4px !important}
  .ao-main > .wrap .note{margin-top:8px !important;padding:8px 9px !important;font-size:10.5px !important;line-height:1.38 !important}

  .ao-main > .wrap .test-card .test-head{margin-bottom:7px !important}
  .ao-main > .wrap .test-card .test-head p{font-size:11px !important}
  .ao-main > .wrap .test-card .hours-entry{gap:7px !important}
  .ao-main > .wrap .test-card .small-input,
  .ao-main > .wrap .test-card .use-rec{height:42px !important}
  .ao-main > .wrap .test-card .compare{gap:5px !important;margin-top:7px !important}
  .ao-main > .wrap .test-card .impact{padding:7px 6px !important;min-height:52px !important}
}
