/* ============================================================================
   MORENCY & CO — Digital Brand System  ·  "The Private Ledger"
   Implements MORENCY_BRAND_SYSTEM.md as tokens + reusable components.
   Dark theme only (v1). Gold is used sparingly. Data stays clear and calm.
   ============================================================================ */
@import url('/static/css/fonts.css');
@import url('/static/css/morency-theme.css');   /* supplied brand tokens */

*,*::before,*::after{box-sizing:border-box;}

/* ---- type scale ---------------------------------------------------------- */
.t-display{font-family:var(--mco-font-display);font-weight:500;font-size:56px;line-height:64px;letter-spacing:.03em;text-wrap:balance;}
.t-h1{font-family:var(--mco-font-display);font-weight:500;font-size:36px;line-height:44px;letter-spacing:.02em;text-wrap:balance;margin:0;}
.t-h2{font-family:var(--mco-font-display);font-weight:500;font-size:26px;line-height:34px;letter-spacing:.02em;margin:0;}
.t-h3{font-family:var(--mco-font-ui);font-weight:600;font-size:20px;line-height:28px;margin:0;}
.t-body{font-size:15px;line-height:24px;color:var(--mco-text-secondary);}
.t-small{font-size:13px;line-height:20px;font-weight:500;color:var(--mco-text-muted);}
.t-label{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mco-text-muted);}
.t-data-xl{font-family:var(--mco-font-ui);font-weight:500;font-size:42px;line-height:48px;font-variant-numeric:tabular-nums slashed-zero;}
.t-data{font-weight:600;font-size:15px;line-height:22px;font-variant-numeric:tabular-nums slashed-zero;}
.mono{font-family:var(--mco-font-mono);font-variant-numeric:tabular-nums slashed-zero;font-size:12px;}
.parchment{color:var(--mco-parchment-100);}
.gold{color:var(--mco-gold-500);}
.champagne{color:var(--mco-champagne-300);}
.muted{color:var(--mco-text-muted);}
.secondary{color:var(--mco-text-secondary);}
.primary-text{color:var(--mco-text-primary);}
@media (max-width:640px){
  .t-display{font-size:38px;line-height:44px;}
  .t-h1{font-size:30px;line-height:38px;}
  .t-h2{font-size:24px;line-height:32px;}
  .t-data-xl{font-size:34px;line-height:40px;}
}

/* ---- app shell ----------------------------------------------------------- */
.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh;}
.shell.collapsed{grid-template-columns:76px 1fr;}
.sidebar{background:var(--mco-surface-sidebar);border-right:1px solid var(--mco-border-subtle);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:20px 18px;border-bottom:1px solid var(--mco-border-subtle);}
.sidebar-brand img{width:34px;height:auto;border-radius:6px;flex:none;}
.sidebar-brand .wm{font-family:var(--mco-font-display);font-weight:600;font-size:15px;letter-spacing:.14em;color:var(--mco-parchment-100);text-transform:uppercase;white-space:nowrap;}
.sidebar-brand .role{display:block;font:600 10px/1.4 var(--mco-font-ui);letter-spacing:.14em;color:var(--mco-brass-700);text-transform:uppercase;margin-top:2px;}
.nav{display:flex;flex-direction:column;gap:2px;padding:14px 12px;flex:1;}
.nav-section{font:600 10px/1 var(--mco-font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--mco-text-muted);padding:16px 12px 8px;}
.nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--mco-radius-compact);
  color:var(--mco-text-secondary);text-decoration:none;font:500 14px/1 var(--mco-font-ui);
  position:relative;transition:background var(--mco-fast) var(--mco-ease),color var(--mco-fast) var(--mco-ease);}
.nav a svg{width:20px;height:20px;stroke-width:1.6;flex:none;}
.nav a:hover{background:var(--mco-surface-raised);color:var(--mco-text-primary);}
.nav a.active{color:var(--mco-gold-500);background:rgba(201,172,119,.07);}
.nav a.active::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--mco-gold-500);}
.sidebar-foot{padding:14px 16px;border-top:1px solid var(--mco-border-subtle);font-size:12px;color:var(--mco-text-muted);}

.main{display:flex;flex-direction:column;min-width:0;}
.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:0 32px;border-bottom:1px solid var(--mco-border-subtle);background:rgba(18,16,15,.72);
  backdrop-filter:blur(8px);position:sticky;top:0;z-index:20;}
.topbar .crumbs{display:flex;align-items:center;gap:8px;color:var(--mco-text-muted);font-size:13px;}
.topbar .crumbs b{color:var(--mco-text-primary);font-weight:600;}
.topbar-right{display:flex;align-items:center;gap:14px;}
.whoami{text-align:right;line-height:1.3;}
.whoami .nm{font:600 13px/1.3 var(--mco-font-ui);color:var(--mco-text-primary);}
.whoami .rl{font:600 10px/1.3 var(--mco-font-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--mco-brass-700);}
.avatar{width:36px;height:36px;border-radius:8px;border:1px solid var(--mco-border-subtle);object-fit:cover;}
.content{padding:32px;max-width:1600px;width:100%;margin:0 auto;flex:1;}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:28px;flex-wrap:wrap;}
.page-head .sub{color:var(--mco-text-muted);font-size:14px;margin-top:6px;}
.stack{display:flex;flex-direction:column;gap:32px;}

/* ---- cards & grid -------------------------------------------------------- */
.grid{display:grid;gap:20px;}
.cols-2{grid-template-columns:repeat(2,1fr);}
.cols-3{grid-template-columns:repeat(3,1fr);}
.cols-4{grid-template-columns:repeat(4,1fr);}
.split-dominant{grid-template-columns:1.55fr 1fr;}
@media (max-width:1100px){.cols-3,.cols-4,.split-dominant{grid-template-columns:repeat(2,1fr);}}
@media (max-width:720px){.grid{gap:14px;}.cols-2,.cols-3,.cols-4,.split-dominant{grid-template-columns:1fr;}}
.card{border:1px solid var(--mco-border-subtle);border-radius:var(--mco-radius-card);
  background:linear-gradient(180deg,rgba(255,255,255,.018),transparent 35%),var(--mco-surface-card);
  box-shadow:var(--mco-shadow-card);padding:22px;}
.card.pad-lg{padding:28px;}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;}
.card-head .t-label{margin:0;}
.card.selected{border-left:3px solid var(--mco-gold-500);}
.hairline{height:1px;background:var(--mco-border-subtle);border:0;margin:18px 0;}
.dominant{background:
  radial-gradient(120% 140% at 88% -20%,rgba(201,172,119,.10),transparent 55%),
  linear-gradient(180deg,rgba(255,255,255,.02),transparent 40%),var(--mco-surface-card);}

/* ---- buttons ------------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;
  border-radius:var(--mco-radius-control);font:600 14px/1 var(--mco-font-ui);cursor:pointer;
  border:1px solid transparent;text-decoration:none;transition:filter var(--mco-standard) var(--mco-ease),
  background var(--mco-fast) var(--mco-ease),transform var(--mco-fast) var(--mco-ease);white-space:nowrap;}
.btn svg{width:18px;height:18px;stroke-width:1.7;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--mco-gold-500);color:var(--mco-text-inverse);}
.btn-primary:hover{filter:brightness(1.06);}
.btn-metal{background:var(--mco-gradient-metal);color:var(--mco-text-inverse);border:1px solid rgba(243,237,207,.34);}
.btn-metal:hover{filter:brightness(1.06);}
.btn-secondary{background:transparent;border-color:var(--mco-border-strong);color:var(--mco-text-primary);}
.btn-secondary:hover{background:var(--mco-surface-raised);}
.btn-tertiary{background:transparent;color:var(--mco-text-secondary);min-height:36px;padding:0 10px;}
.btn-tertiary:hover{color:var(--mco-text-primary);background:var(--mco-surface-raised);}
.btn-danger{background:var(--mco-danger-subtle);color:var(--mco-danger);border-color:rgba(227,154,143,.3);}
.btn-danger:hover{filter:brightness(1.08);}
.btn[disabled]{opacity:.5;cursor:not-allowed;}
.btn-block{width:100%;}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;
  background:transparent;border:1px solid var(--mco-border-subtle);color:var(--mco-text-secondary);cursor:pointer;}
.icon-btn:hover{background:var(--mco-surface-raised);color:var(--mco-text-primary);}

/* ---- forms --------------------------------------------------------------- */
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.field label{font:600 13px/1 var(--mco-font-ui);color:var(--mco-text-secondary);}
.field .hint{font-size:12px;color:var(--mco-text-muted);}
.field .err{font-size:12px;color:var(--mco-danger);}
.input,select.input,textarea.input{width:100%;min-height:44px;background:var(--mco-obsidian-950);
  border:1px solid var(--mco-border-subtle);border-radius:var(--mco-radius-control);color:var(--mco-text-primary);
  font:400 15px/1.4 var(--mco-font-ui);padding:11px 13px;transition:border-color var(--mco-fast) var(--mco-ease);}
.input::placeholder{color:var(--mco-text-muted);}
.input:focus,select.input:focus,textarea.input:focus{outline:none;border-color:var(--mco-gold-500);box-shadow:var(--mco-focus-ring);}
textarea.input{min-height:110px;resize:vertical;font-family:var(--mco-font-ui);}
.input.big{min-height:48px;font-size:16px;}
.input-money{font-variant-numeric:tabular-nums slashed-zero;font-weight:600;}

/* ---- status pills -------------------------------------------------------- */
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;
  font:600 12px/1.3 var(--mco-font-ui);border:1px solid transparent;white-space:nowrap;}
.pill svg{width:13px;height:13px;stroke-width:2;}
.pill.ok{background:var(--mco-success-subtle);color:var(--mco-success);border-color:rgba(156,195,164,.24);}
.pill.warn{background:var(--mco-warning-subtle);color:var(--mco-warning);border-color:rgba(224,185,121,.24);}
.pill.bad{background:var(--mco-danger-subtle);color:var(--mco-danger);border-color:rgba(227,154,143,.26);}
.pill.info{background:var(--mco-info-subtle);color:var(--mco-info);border-color:rgba(159,182,197,.24);}
.pill.neutral{background:var(--mco-surface-raised);color:var(--mco-text-secondary);border-color:var(--mco-border-subtle);}

/* ---- tables -------------------------------------------------------------- */
.table-wrap{overflow-x:auto;border:1px solid var(--mco-border-subtle);border-radius:var(--mco-radius-card);}
table.tbl{width:100%;border-collapse:collapse;font-size:14px;min-width:560px;}
table.tbl thead th{position:sticky;top:0;background:var(--mco-carbon-800);text-align:left;
  font:600 11px/1 var(--mco-font-ui);letter-spacing:.07em;text-transform:uppercase;color:var(--mco-text-muted);
  padding:13px 16px;border-bottom:1px solid var(--mco-border-subtle);}
table.tbl tbody td{padding:13px 16px;border-bottom:1px solid rgba(201,172,119,.07);color:var(--mco-text-secondary);vertical-align:middle;}
table.tbl tbody tr:last-child td{border-bottom:0;}
table.tbl tbody tr:hover{background:var(--mco-surface-raised);}
table.tbl td.num,table.tbl th.num{text-align:right;font-variant-numeric:tabular-nums slashed-zero;color:var(--mco-text-primary);}
table.tbl td.entity{color:var(--mco-text-primary);font-weight:500;}
.skel{background:linear-gradient(90deg,rgba(255,255,255,.03),rgba(255,255,255,.07),rgba(255,255,255,.03));
  border-radius:6px;height:14px;animation:sk 1.4s ease-in-out infinite;}
@keyframes sk{0%,100%{opacity:.6}50%{opacity:1}}

/* ---- money / identifiers ------------------------------------------------- */
.money{font-variant-numeric:tabular-nums slashed-zero;white-space:nowrap;}
.copyval{display:inline-flex;align-items:center;gap:7px;}
.copyval button{background:transparent;border:0;color:var(--mco-text-muted);cursor:pointer;padding:2px;border-radius:4px;}
.copyval button:hover{color:var(--mco-gold-500);}
.hashline{display:inline-flex;align-items:center;gap:8px;font-family:var(--mco-font-mono);font-size:12px;color:var(--mco-champagne-300);}

/* ---- misc panels --------------------------------------------------------- */
.stat{display:flex;flex-direction:column;gap:6px;}
.stat .k{font:600 11px/1 var(--mco-font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--mco-text-muted);}
.stat .v{font-weight:600;font-size:20px;color:var(--mco-text-primary);font-variant-numeric:tabular-nums;}
.svc{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 0;border-bottom:1px solid rgba(201,172,119,.07);}
.svc:last-child{border-bottom:0;}
.svc .nm{display:flex;align-items:center;gap:10px;font-weight:500;color:var(--mco-text-primary);}
.dot{width:8px;height:8px;border-radius:50%;flex:none;}
.dot.ok{background:var(--mco-success);}.dot.bad{background:var(--mco-danger);}.dot.warn{background:var(--mco-warning);}.dot.info{background:var(--mco-info);}
.empty{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:44px 24px;color:var(--mco-text-muted);}
.empty svg{width:28px;height:28px;stroke-width:1.5;color:var(--mco-brass-700);}
.banner{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--mco-radius-control);border:1px solid;font-size:14px;}
.banner svg{width:18px;height:18px;flex:none;margin-top:1px;}
.banner.warn{background:var(--mco-warning-subtle);border-color:rgba(224,185,121,.28);color:var(--mco-warning);}
.banner.bad{background:var(--mco-danger-subtle);border-color:rgba(227,154,143,.3);color:var(--mco-danger);}
.banner.info{background:var(--mco-info-subtle);border-color:rgba(159,182,197,.26);color:var(--mco-info);}
.banner.crit{background:var(--mco-danger-subtle);border:1px solid var(--mco-oxblood-500);color:var(--mco-danger);}
.banner b{color:var(--mco-text-primary);}
.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid rgba(201,172,119,.07);}
.list-row:last-child{border-bottom:0;}

/* ---- AI operator trace --------------------------------------------------- */
.trace{display:flex;flex-direction:column;gap:10px;}
.trace-step{border:1px solid var(--mco-border-subtle);border-radius:var(--mco-radius-control);padding:14px 16px;background:var(--mco-obsidian-950);}
.trace-step .th{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;}
.trace-step .tool{font:600 13px/1 var(--mco-font-ui);color:var(--mco-text-primary);display:flex;align-items:center;gap:8px;}
.trace-step .io{font-family:var(--mco-font-mono);font-size:12px;color:var(--mco-text-muted);white-space:pre-wrap;word-break:break-word;}
.doctrine{font-family:var(--mco-font-display);font-weight:500;letter-spacing:.04em;color:var(--mco-brass-700);font-size:13px;}

/* ---- login --------------------------------------------------------------- */
.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;}
.auth-brand{position:relative;display:flex;align-items:center;justify-content:center;padding:40px;
  background:radial-gradient(120% 90% at 50% 30%,rgba(201,172,119,.06),transparent 60%),var(--mco-obsidian-950);
  border-right:1px solid var(--mco-border-subtle);overflow:hidden;}
.auth-brand img{max-width:min(560px,86%);height:auto;filter:drop-shadow(0 30px 80px rgba(0,0,0,.6));}
.auth-panel{display:flex;align-items:center;justify-content:center;padding:40px 32px;background:var(--mco-obsidian-900);}
.auth-card{width:100%;max-width:400px;}
.auth-card .sig{font-family:var(--mco-font-display);letter-spacing:.14em;font-size:12px;color:var(--mco-brass-700);text-transform:uppercase;margin-top:18px;}
@media (max-width:860px){
  .auth{grid-template-columns:1fr;}
  .auth-brand{min-height:210px;border-right:0;border-bottom:1px solid var(--mco-border-subtle);}
  .auth-brand img{max-width:280px;}
}

/* ---- mobile shell -------------------------------------------------------- */
.mobile-only{display:none;}
.hamburger{display:none;}
.bottom-nav{display:none;}
@media (max-width:900px){
  .shell{grid-template-columns:1fr;}
  .sidebar{display:none;}
  .sidebar.drawer-open{display:flex;position:fixed;z-index:60;width:264px;left:0;top:0;box-shadow:var(--mco-shadow-modal);}
  .hamburger{display:inline-flex;}
  .topbar{padding:0 16px;height:60px;}
  .content{padding:18px 16px 96px;}
  .drawer-scrim{display:none;}
  .drawer-scrim.on{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:55;}
  .bottom-nav.portal{display:flex;position:fixed;bottom:0;left:0;right:0;height:64px;z-index:50;
    background:var(--mco-carbon-800);border-top:1px solid var(--mco-border-subtle);}
  .bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    color:var(--mco-text-muted);text-decoration:none;font:600 10px/1 var(--mco-font-ui);letter-spacing:.02em;}
  .bottom-nav a svg{width:20px;height:20px;stroke-width:1.7;}
  .bottom-nav a.active{color:var(--mco-gold-500);}
}
.skip{position:absolute;left:-999px;}
.skip:focus{left:16px;top:16px;z-index:100;background:var(--mco-gold-500);color:var(--mco-text-inverse);padding:8px 14px;border-radius:8px;}
