/* ============================================================================
   AYSON Operating System — Shared Theme  (ayson-theme.css)
   Drop this into any AYSON app and use the classes below for a consistent look.
   Pattern: DARK NAVY chrome (ticker/header/sidebar/footer) around a CREAM content
   area, with GOLD as the single accent. Fonts: Archivo (headings) + Inter Tight.
   Add to <head>:
   <link href="https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800&family=Inter+Tight:wght@400;500;600;700&display=swap" rel="stylesheet">
   ============================================================================ */

:root{
  /* ---- brand ---- */
  --navy:#0D1B2A;            /* dark chrome: ticker, header, sidebar, footer */
  --navy-2:#12233a;          /* raised navy: logo tile, chrome inputs */
  --gold:#C8A15B;            /* primary accent + buttons */
  --gold-deep:#a9843f;       /* gold border / gradient end */
  --gold-lite:#EFC169;       /* logo gradient light stop */
  --logo-navy:#1B3149;       /* exact navy in the AYSON logo */

  /* ---- content surfaces (light) ---- */
  --bg:#F7F4EE;              /* page background (cream) */
  --surface:#ffffff;         /* cards / panels (top of gradient) */
  --surface-2:#fbf8f1;       /* panel base (bottom of gradient) */
  --raised:#efe8d9;          /* hover / raised / active */
  --inset:#ede7d8;           /* input fills, bar tracks */

  /* ---- text ---- */
  --ink:#0D1B2A;             /* primary text (spec) */
  --ink-dim:#3B3E45;         /* secondary text (spec) */
  --ink-mute:#767b84;        /* faint labels / captions */
  --on-navy:#ffffff;         /* text on navy chrome */
  --on-navy-dim:rgba(255,255,255,.6);

  /* ---- lines ---- */
  --line:rgba(13,27,42,.12);
  --line-strong:rgba(13,27,42,.20);
  --line-navy:rgba(255,255,255,.08);   /* hairlines on navy chrome */

  /* ---- semantic (readable on cream) ---- */
  --teal:#1f9c86;   /* positive / success */
  --red:#cf4336;    /* warning / danger */
  --amber:#b7791d;  /* caution */
  --blue:#2f6fbf;   /* info / neutral-accent */

  /* ---- shape & type ---- */
  --radius:7px; --radius-sm:5px;
  --shadow:0 8px 24px -14px rgba(13,27,42,.28), 0 2px 6px -3px rgba(13,27,42,.14);
  --font-head:'Archivo',system-ui,sans-serif;
  --font-body:'Inter Tight',system-ui,sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  font-family:var(--font-body); color:var(--ink); font-size:14px; line-height:1.45;
  -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1100px 720px at 85% -12%, rgba(200,161,91,.06), transparent 60%),
    var(--bg);
}
h1,h2,h3,h4,.head{font-family:var(--font-head);letter-spacing:-.01em;color:var(--ink)}
a{color:var(--gold-deep);text-decoration:none;cursor:pointer}
button{font-family:var(--font-body);cursor:pointer}

/* ============================ APP FRAME ============================
   Recommended grid: dark chrome around cream content.
   <div class="app"> <header class="top">…</header> <nav class="side">…</nav>
   <main class="main">…</main> <footer class="foot">…</footer> </div>          */
.app{display:grid;grid-template-columns:230px 1fr;grid-template-rows:auto 1fr auto;
  grid-template-areas:"head head" "nav main" "foot foot";min-height:100vh}
.top{grid-area:head} .side{grid-area:nav} .main{grid-area:main;overflow:auto;padding:22px 26px 60px} .foot{grid-area:foot}

/* ---- Header (navy chrome) ---- */
.top{display:flex;align-items:center;gap:16px;padding:12px 20px;background:var(--navy);
  color:var(--on-navy);border-bottom:1px solid var(--line-navy);box-shadow:0 2px 10px rgba(13,27,42,.18)}
.top .brand{display:flex;align-items:center;gap:12px}
.top .name{font:800 18px var(--font-head);color:#fff}
.top .name span{color:var(--gold)}                 /* the middot */
.top .sub{font-size:12px;color:var(--on-navy-dim)}
.logo{width:38px;height:38px;border-radius:8px;background:linear-gradient(150deg,var(--navy-2),#0b1622);
  border:1px solid rgba(255,255,255,.14);display:grid;place-items:center}

/* ---- Sidebar (navy chrome) ---- */
.side{background:var(--navy);border-right:1px solid var(--line-navy);padding:14px 12px;
  display:flex;flex-direction:column;gap:3px}
.side .grp{font:700 10px var(--font-head);letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.42);margin:14px 10px 6px}
.side a.nav{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:var(--radius-sm);
  color:rgba(255,255,255,.80);font-weight:500;font-size:13.5px;position:relative}
.side a.nav:hover{background:rgba(255,255,255,.06);color:var(--gold)}
.side a.nav.active{background:rgba(255,255,255,.09);color:#fff}
.side a.nav.active::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;
  border-radius:3px;background:var(--gold)}
.side a.nav .badge{margin-left:auto;background:var(--red);color:#fff;font:700 10px var(--font-body);
  padding:1px 7px;border-radius:20px}

/* ---- Footer (navy chrome) ---- */
.foot{background:var(--navy);color:var(--on-navy-dim);border-top:1px solid var(--line-navy);
  padding:12px 20px;font-size:11px;display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:space-between}
.foot a{color:var(--gold)}

/* ============================ CONTENT ============================ */
.page-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px}
.page-head h1{margin:0;font-size:22px}
.page-head p{margin:3px 0 0;color:var(--ink-dim);font-size:13px;max-width:640px}
.crumb{font:700 11px var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:4px}
.sec-title{display:flex;align-items:center;gap:10px;font:700 12px var(--font-head);letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-dim);margin:22px 0 12px}
.sec-title .line{height:1px;flex:1;background:var(--line)}

.card,.panel{background:linear-gradient(180deg,var(--surface),var(--surface-2));
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card.pad{padding:16px}
.panel{overflow:hidden}
.panel .ph{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:13px 16px;border-bottom:1px solid var(--line)}
.panel .ph h3{margin:0;font-size:14px}
.panel .pb{padding:6px 6px 8px}

/* stat tile */
.stat{padding:15px 16px}
.stat .k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);font-weight:600}
.stat .v{font:800 30px/1 var(--font-head)}
.stat.alert{border-color:rgba(207,67,54,.35)} .stat.alert .v{color:var(--red)}
.stat.warn{border-color:rgba(183,121,29,.32)}  .stat.warn .v{color:var(--amber)}
.stat.good .v{color:var(--teal)}

/* ---- tables ---- */
table{width:100%;border-collapse:collapse;font-size:13px}
thead th{text-align:left;font:600 10.5px var(--font-head);letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-mute);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
tbody td{padding:11px 12px;border-bottom:1px solid rgba(13,27,42,.06);vertical-align:middle}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:rgba(47,111,191,.05)}
.name-cell{display:flex;flex-direction:column}
.name-cell b{font-weight:600;font-size:13.5px}
.name-cell small{color:var(--ink-mute);font-size:11.5px}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:var(--radius-sm);
  border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-weight:600;font-size:13px;transition:.12s}
.btn:hover{background:var(--raised);border-color:var(--gold)}
.btn.sm{padding:5px 10px;font-size:12px}
.btn.primary{background:var(--gold);border-color:var(--gold-deep);color:var(--navy)}   /* gold w/ navy text */
.btn.primary:hover{filter:brightness(1.05)}
.btn.ghost{background:transparent}
.btn.call{background:linear-gradient(180deg,var(--teal),#17836f);border-color:#17836f;color:#04201b}
.btn.danger{background:transparent;border-color:rgba(207,67,54,.5);color:var(--red)}
.btn.danger:hover{background:rgba(207,67,54,.10)}

/* ---- chips / filter pills ---- */
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:20px;border:1px solid var(--line);
  background:var(--surface-2);color:var(--ink-dim);font-size:12.5px;font-weight:500;cursor:pointer}
.chip:hover,.chip.on{border-color:var(--gold);color:var(--ink);background:var(--surface)}

/* ---- tags (status / type) ---- */
.tag{display:inline-flex;align-items:center;gap:5px;font:600 11px var(--font-body);padding:3px 9px;
  border-radius:20px;border:1px solid transparent;white-space:nowrap}
.t-new{background:rgba(47,111,191,.14);color:var(--blue);border-color:rgba(47,111,191,.3)}
.t-hot{background:rgba(207,67,54,.14);color:var(--red);border-color:rgba(207,67,54,.32)}
.t-warm{background:rgba(183,121,29,.15);color:var(--amber);border-color:rgba(183,121,29,.32)}
.t-active{background:rgba(31,156,134,.15);color:var(--teal);border-color:rgba(31,156,134,.3)}
.t-cold{background:rgba(120,132,148,.14);color:var(--ink-mute);border-color:var(--line)}
.t-dnc{background:rgba(207,67,54,.1);color:var(--red);border-color:rgba(207,67,54,.3)}

/* ---- flags (inline status marks) ---- */
.flag{display:inline-flex;align-items:center;gap:5px;font:600 11px var(--font-body);padding:2px 8px;border-radius:5px}
.flag.dup{background:rgba(183,121,29,.14);color:var(--amber)}
.flag.ok{color:var(--ink-mute)}
.flag.conf{background:rgba(207,67,54,.14);color:var(--red)}   /* red badge (overdue / attention) */

/* ---- forms ---- */
.field{margin-bottom:12px}
.field label{display:block;font:600 11.5px var(--font-body);letter-spacing:.03em;text-transform:uppercase;
  color:var(--ink-mute);margin:0 0 5px}
input,select,textarea{width:100%;background:var(--inset);border:1px solid var(--line);border-radius:6px;
  color:var(--ink);padding:9px 11px;font:400 13px var(--font-body);outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--gold)}

/* ---- overlay / modal ---- */
.overlay{position:fixed;inset:0;z-index:50;background:rgba(13,27,42,.45);backdrop-filter:blur(3px);
  display:none;align-items:center;justify-content:center;padding:20px}
.overlay.show{display:flex}
.modal{width:min(560px,96vw);max-height:92vh;overflow:auto;
  background:linear-gradient(180deg,var(--surface),var(--surface-2));
  border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 30px 80px -20px rgba(13,27,42,.5)}
.modal .mhead{padding:16px 18px;border-bottom:1px solid var(--line);font-weight:700}
.modal .mbody{padding:16px 18px}
.modal .mfoot{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}

/* ---- toast ---- */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(20px);z-index:80;
  background:var(--surface);border:1px solid var(--gold);color:var(--ink);padding:12px 18px;border-radius:9px;
  box-shadow:var(--shadow);font-size:13.5px;opacity:0;transition:.25s}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---- empty state ---- */
.empty{text-align:center;padding:48px 20px;color:var(--ink-mute)}

/* ---- light scrollbars ---- */
*::-webkit-scrollbar{width:11px;height:11px}
*::-webkit-scrollbar-thumb{background:rgba(13,27,42,.20);border-radius:8px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-track{background:transparent}
