/* SOMO ERP — powered by Somoneri Limited
   Design language: navy command bar, horizontal module rail,
   warm parchment canvas, flat squared surfaces, orange signal accents. */

:root{
  --brand:#FF4200;
  --brand-deep:#CC3500;
  --brand-soft:#FFE9E0;
  --navy:#001639;
  --navy-2:#0A2347;
  --navy-3:#14315C;
  --canvas:#F7F4EA;          /* warm parchment from logo cream */
  --surface:#FFFDF7;
  --line:#E4DFD0;
  --line-dark:#C9C2AE;
  --text:#1B2430;
  --muted:#6B7280;
  --ok:#0F7B4D;   --ok-soft:#E3F2EA;
  --warn:#A96A00; --warn-soft:#F8EFD8;
  --bad:#C0362C;  --bad-soft:#F9E6E4;
  --font-head:'Space Grotesk',system-ui,sans-serif;
  --font-body:'IBM Plex Sans',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);font-size:14px;color:var(--text);background:var(--canvas);-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:13.5px;color:var(--text)}
h1,h2,h3,h4{font-family:var(--font-head);letter-spacing:-.01em}

/* ---------- LOGIN : full navy field, centered parchment card ---------- */
.login-wrap{min-height:100vh;background:
  radial-gradient(1100px 520px at 85% -10%, rgba(255,66,0,.13), transparent 60%),
  radial-gradient(800px 600px at -10% 110%, rgba(255,66,0,.08), transparent 55%),
  var(--navy);
  display:flex;align-items:center;justify-content:center;padding:28px}
.login-shell{display:flex;flex-direction:column;align-items:center;gap:22px;width:100%;max-width:460px}
.login-mark{width:240px;height:auto;filter:drop-shadow(0 6px 24px rgba(255,66,0,.30))}
.login-card{background:var(--surface);border:1px solid var(--line-dark);width:100%;padding:34px 36px 28px}
.login-logo{display:none}
.login-line{height:3px;width:56px;background:var(--brand);margin-bottom:18px}
.login-card h1{font-size:21px;color:var(--navy)}
.login-card .sub{color:var(--muted);font-size:13px;margin:6px 0 20px}
.login-err{display:none;background:var(--bad-soft);border-left:3px solid var(--bad);color:var(--bad);padding:9px 12px;font-size:13px;margin-bottom:14px}
.login-err.show{display:block}
.field{margin-bottom:15px}
.field label{display:block;font-size:11.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--navy);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line-dark);background:#fff;padding:10px 12px;border-radius:0}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand)}
.login-meta{margin-top:18px;padding-top:14px;border-top:1px dashed var(--line-dark);font-size:12px;color:var(--muted);line-height:1.7}
.login-foot{color:#8FA0BC;font-size:12px;letter-spacing:.04em}

/* ---------- BUTTONS : squared, navy primary family ---------- */
.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid transparent;padding:9px 16px;font-size:13.5px;font-weight:600;border-radius:0;transition:background .15s,color .15s,border-color .15s}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--navy)}
.btn-ghost{background:transparent;border-color:var(--line-dark);color:var(--navy)}
.btn-ghost:hover{border-color:var(--navy);background:#fff}
.btn-danger{background:#fff;border-color:var(--bad);color:var(--bad)}
.btn-danger:hover{background:var(--bad);color:#fff}
.btn-sm{padding:5px 10px;font-size:12.5px}
.btn-block{width:100%;justify-content:center}

/* ---------- APP SHELL : navy sidebar + parchment main column ---------- */
.app{display:none;min-height:100vh}
.app.active{display:flex}
.sidebar{width:252px;flex:none;background:var(--navy);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;border-right:3px solid var(--brand)}
.sb-logo{padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,.1)}
.sb-logo img{width:172px;height:auto;display:block}
.sb-env{margin-top:10px;font-size:9.5px;font-weight:700;letter-spacing:.16em;color:#FFD9C7;border:1px solid rgba(255,255,255,.28);display:inline-block;padding:2px 7px}
.sb-nav{flex:1;overflow-y:auto;padding:12px 0 16px;scrollbar-width:thin}
.sb-sec{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#6E82A6;padding:16px 20px 6px;display:flex;align-items:center;gap:8px}
.sb-sec::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.09)}
.sb-item{display:flex;align-items:center;gap:11px;width:100%;background:transparent;border:none;border-left:3px solid transparent;color:#AEBCD4;font-size:13px;font-weight:500;padding:10px 20px 10px 17px;text-align:left}
.sb-item svg{width:15px;height:15px;flex:none}
.sb-item:hover{color:#fff;background:rgba(255,255,255,.04)}
.sb-item.active{color:#fff;border-left-color:var(--brand);background:linear-gradient(90deg,rgba(255,66,0,.18),transparent 70%);font-weight:600}
.sb-user{display:flex;align-items:center;gap:10px;padding:14px 16px;border-top:1px solid rgba(255,255,255,.1)}
.sb-user .avatar{width:34px;height:34px;background:var(--brand);color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex:none}
.sb-user .nm{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-user .rl{font-size:11px;color:#93A5C1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-user .icon-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid rgba(255,255,255,.2);color:#B9C7DC;flex:none}
.sb-user .icon-btn:hover{border-color:var(--brand);color:#fff}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:14px;background:var(--surface);border-bottom:1px solid var(--line-dark);padding:11px 26px;position:sticky;top:0;z-index:40}
.grow{flex:1}
.menu-toggle{display:none;background:transparent;border:1px solid var(--line-dark);color:var(--navy);width:34px;height:34px;align-items:center;justify-content:center}
.crumb{font-size:12.5px;color:var(--muted)}
.crumb b{color:var(--navy);font-weight:600}
.strip-org{font-size:12px;color:var(--muted)}
.tb-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line-dark);padding:7px 12px;width:min(300px,30vw)}
.tb-search svg{width:15px;height:15px;stroke:var(--muted);flex:none}
.tb-search input{background:transparent;border:none;outline:none;color:var(--text);width:100%}
.tb-search input::placeholder{color:var(--muted)}
.tb-btn{position:relative;background:#fff;border:1px solid var(--line-dark);color:var(--navy);width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center}
.tb-btn:hover{border-color:var(--brand);color:var(--brand)}
.tb-btn .dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--brand)}

.content{flex:1;width:100%;max-width:1340px;padding:26px;margin:0 auto}
.app-foot{text-align:center;font-size:11.5px;color:var(--muted);padding:16px 0 24px;letter-spacing:.03em}

/* ---------- PAGE HEAD ---------- */
.page-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.page-head h1{font-size:24px;color:var(--navy);position:relative;padding-left:16px}
.page-head h1::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:5px;background:var(--brand)}
.page-head .desc{flex-basis:100%;color:var(--muted);font-size:13.5px;margin-top:2px;padding-left:16px}
.page-actions{margin-left:auto;display:flex;gap:9px;flex-wrap:wrap}

/* ---------- KPI STRIP : ledger tiles, ruled columns ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:0;margin-bottom:24px;background:var(--surface);border:1px solid var(--line-dark)}
.kpi{padding:18px 20px;border-right:1px dashed var(--line-dark);border-top:none;background:transparent}
.kpi:last-child{border-right:none}
.kpi .k-label{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.1em;display:flex;align-items:center;gap:7px}
.kpi .k-label::before{content:"";width:8px;height:8px;background:var(--brand);flex:none}
.kpi .k-val{font-family:var(--font-head);font-size:25px;font-weight:700;margin-top:8px;color:var(--navy)}
.kpi .k-sub{font-size:12.5px;color:var(--muted);margin-top:4px}
.kpi .up{color:var(--ok);font-weight:600}
.kpi .down{color:var(--bad);font-weight:600}

/* ---------- CARDS : flat parchment, navy caption bar ---------- */
.card{background:var(--surface);border:1px solid var(--line-dark);margin-bottom:22px}
.card-head{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--line-dark);background:linear-gradient(0deg,rgba(0,22,57,.03),rgba(0,22,57,.03))}
.card-head h3{font-size:14.5px;color:var(--navy);display:flex;align-items:center;gap:9px}
.card-head h3::before{content:"";width:9px;height:9px;border:2px solid var(--brand);flex:none}
.card-head .grow{flex:1}
.card-head .mini{font-size:12px;color:var(--muted);font-weight:400}
.card-body{padding:18px}
.card-body.flush{padding:0}

.grid{display:grid;gap:22px}
.grid-2{grid-template-columns:1fr 1fr}
.grid-32{grid-template-columns:1.6fr 1fr}
@media(max-width:980px){.grid-2,.grid-32{grid-template-columns:1fr}}

/* ---------- TABLES : navy header band ---------- */
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:13.2px}
.tbl th{background:var(--navy);color:#EDE8DA;text-align:left;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:10px 14px;white-space:nowrap}
.tbl td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:nth-child(even) td{background:rgba(0,22,57,.025)}
.tbl tr:hover td{background:var(--brand-soft)}
.tbl td .strong{font-weight:600;color:var(--navy)}
.tbl td .sub{font-size:11.5px;color:var(--muted);margin-top:1px}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl tfoot td{font-weight:700;background:var(--canvas);border-top:2px solid var(--navy)}
.row-actions{display:flex;gap:6px;justify-content:flex-end}
.icon-btn{width:27px;height:27px;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line-dark);color:var(--navy)}
.icon-btn:hover{border-color:var(--brand);color:var(--brand)}
.icon-btn.del:hover{border-color:var(--bad);color:var(--bad)}
.icon-btn svg{width:13px;height:13px}

/* ---------- TOOLBAR ---------- */
.toolbar{display:flex;gap:10px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--line-dark);flex-wrap:wrap;background:rgba(0,22,57,.02)}
.toolbar input[type=text],.toolbar select{border:1px solid var(--line-dark);padding:8px 11px;background:#fff;border-radius:0}
.toolbar .grow{flex:1}

/* ---------- BADGES : stamped outline style ---------- */
.badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border:1.5px solid currentColor;background:transparent}
.b-ok{color:var(--ok)} .b-warn{color:var(--warn)} .b-bad{color:var(--bad)}
.b-info{color:var(--brand-deep)} .b-mut{color:var(--muted)}

/* ---------- TABS : file-folder tabs ---------- */
.pill-row{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap;border-bottom:2px solid var(--navy)}
.pill{border:1px solid var(--line-dark);border-bottom:none;background:var(--surface);color:var(--muted);font-size:13px;font-weight:600;padding:9px 16px;margin-bottom:-2px}
.pill:hover{color:var(--navy)}
.pill.sel{background:var(--navy);border-color:var(--navy);color:#fff;border-bottom:2px solid var(--navy)}

/* ---------- FORMS IN MODAL ---------- */
.frm-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.frm-grid .full{grid-column:1/-1}
@media(max-width:640px){.frm-grid{grid-template-columns:1fr}}

/* ---------- MODAL : sharp, navy title band ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(0,22,57,.55);display:none;align-items:flex-start;justify-content:center;padding:6vh 18px;z-index:200;overflow-y:auto}
.modal-bg.open{display:flex}
.modal{background:var(--surface);border:1px solid var(--navy);width:100%;max-width:640px}
.modal-head{display:flex;align-items:center;background:var(--navy);color:#fff;padding:13px 18px}
.modal-head h3{font-size:15px;flex:1}
.modal-x{background:transparent;border:none;color:#B9C7DC;font-size:22px;line-height:1}
.modal-x:hover{color:#fff}
.modal-body{padding:20px 18px;max-height:62vh;overflow-y:auto}
.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:14px 18px;border-top:1px solid var(--line-dark);background:rgba(0,22,57,.02)}

/* ---------- NOTICE ---------- */
.notice{background:var(--brand-soft);border-left:4px solid var(--brand);padding:12px 14px;font-size:13px;color:#7A2A00;margin-bottom:16px}

/* ---------- CHARTS ---------- */
.chart-box{padding:10px 6px 4px}
.chart{width:100%;display:block}

/* ---------- PROGRESS / GANTT ---------- */
.progress{height:8px;background:var(--line);overflow:hidden;min-width:70px}
.progress>span{display:block;height:100%;background:var(--brand)}
.progress.ok>span{background:var(--ok)}
.progress.warn>span{background:var(--warn)}
.gantt-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line-dark)}
.gantt-row:last-child{border-bottom:none}
.gantt-row .nm{width:220px;font-size:13px;font-weight:600;color:var(--navy);flex:none}
.gantt-track{flex:1;height:16px;background:rgba(0,22,57,.05);position:relative}
.gantt-bar{position:absolute;top:0;bottom:0;background:var(--navy);opacity:.92}
.gantt-bar .tick{position:absolute;inset:0;background:var(--brand);transform-origin:left}
.gantt-row .pct{width:44px;text-align:right;font-size:12px;color:var(--muted);flex:none}

/* ---------- DEFINITION LISTS ---------- */
.deflist{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;font-size:13.3px}
.deflist .k{color:var(--muted)}
.deflist .v{font-weight:500}

/* ---------- TAGS / AI OUT ---------- */
.tag-src{display:inline-block;background:rgba(0,22,57,.06);border:1px solid var(--line-dark);font-size:11px;padding:2px 8px;color:var(--navy);margin:2px 4px 2px 0}
.ai-out{white-space:pre-wrap;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12.3px;line-height:1.65;background:var(--navy);color:#EDE8DA;padding:20px;max-height:480px;overflow-y:auto}

/* ---------- TOASTS : telegram slips ---------- */
.toast-wrap{position:fixed;bottom:22px;right:22px;display:flex;flex-direction:column;gap:9px;z-index:300}
.toast{background:var(--surface);color:var(--navy);border:1px solid var(--navy);border-left:5px solid var(--brand);padding:11px 15px;font-size:13px;display:flex;gap:9px;align-items:center;box-shadow:4px 4px 0 rgba(0,22,57,.18);animation:slide .25s ease}
.toast svg{width:15px;height:15px;stroke:var(--brand);flex:none}
@keyframes slide{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}

/* ---------- MISC ---------- */
.mini{font-size:12px;color:var(--muted)}
.up{color:var(--ok)} .down{color:var(--bad)}


/* ---------- COMMAND CENTER STATS ---------- */
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.stat{padding:16px 18px;border-right:1px dashed var(--line-dark);border-bottom:1px dashed var(--line-dark)}
.stat:nth-child(3n){border-right:none}
.stat:nth-last-child(-n+3){border-bottom:none}
.stat .s-k{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:7px}
.stat .s-k::before{content:"";width:8px;height:8px;background:var(--brand);flex:none}
.stat .s-v{font-family:var(--font-head);font-size:21px;font-weight:700;color:var(--navy);margin-top:7px}
.stat .s-m{font-size:12px;color:var(--muted);margin-top:3px}
@media(max-width:640px){.stat-grid{grid-template-columns:1fr 1fr}.stat:nth-child(3n){border-right:1px dashed var(--line-dark)}.stat:nth-child(2n){border-right:none}}

/* ---------- FEED & QUEUE ROWS ---------- */
.feed-item{display:flex;align-items:center;gap:12px;padding:11px 18px;border-bottom:1px dashed var(--line-dark);font-size:13px}
.feed-item:last-child{border-bottom:none}
.feed-item .f-date{flex:none;color:var(--muted);font-size:12px;white-space:nowrap;min-width:74px}
.feed-item .f-body{flex:1;min-width:0}
.queue-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px dashed var(--line-dark);padding:11px 18px;font-size:13px;color:var(--text)}
.queue-item:last-child{border-bottom:none}
.queue-item:hover{background:var(--brand-soft)}
.queue-item .q-go{color:var(--brand);font-weight:700}

/* ---------- AWARD / INITIATIVE CARDS ---------- */
.fund-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-bottom:22px}
.fund-card{background:var(--surface);border:1px solid var(--line-dark);border-top:3px solid var(--navy);padding:16px 18px}
.fund-card .fc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.fund-card .fc-name{font-family:var(--font-head);font-weight:600;font-size:14.5px;color:var(--navy);line-height:1.4;min-height:40px}
.fund-card .fc-bar{display:flex;align-items:center;gap:9px;margin-top:10px}
.fund-card .fc-bar .progress{flex:1}

/* ---------- COUNCIL HERO ---------- */
.hero-meet{background:var(--navy);color:#fff;border-left:5px solid var(--brand);padding:18px 20px;margin-bottom:22px}
.hero-meet .hm-label{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#FFB393}
.hero-meet .hm-title{font-family:var(--font-head);font-size:17px;font-weight:700;margin:7px 0 9px}
.hero-meet .hm-meta{font-size:12.5px;color:#C7D2E4;line-height:1.7}

/* ---------- RESPONSIVE ---------- */
@media(max-width:900px){
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:100;transform:translateX(-100%);transition:transform .2s ease;height:100vh}
  .sidebar.open{transform:none;box-shadow:8px 0 40px rgba(0,22,57,.35)}
  .menu-toggle{display:inline-flex}
  .tb-search,.strip-org{display:none}
  .content{padding:18px 14px}
  .kpis{grid-template-columns:1fr 1fr}
  .kpi{border-bottom:1px dashed var(--line-dark)}
}
@media print{.hdr,.page-strip,.app-foot,.toast-wrap{display:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
