/* Noto Sans Georgian — SIL Open Font License 1.1 (self-hosted, Georgian + Latin subsets) */
@font-face {
  font-family: 'Noto Sans Georgian';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/noto-sans-georgian-georgian-400-normal.woff2) format('woff2');
  unicode-range: U+0589,U+10A0-10FF,U+1C90-1CBA,U+1CBD-1CBF,U+205A,U+2D00-2D2F,U+2E31;
}
@font-face {
  font-family: 'Noto Sans Georgian';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/noto-sans-georgian-latin-400-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Noto Sans Georgian';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(fonts/noto-sans-georgian-georgian-500-normal.woff2) format('woff2');
  unicode-range: U+0589,U+10A0-10FF,U+1C90-1CBA,U+1CBD-1CBF,U+205A,U+2D00-2D2F,U+2E31;
}
@font-face {
  font-family: 'Noto Sans Georgian';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(fonts/noto-sans-georgian-latin-500-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Noto Sans Georgian';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(fonts/noto-sans-georgian-georgian-600-normal.woff2) format('woff2');
  unicode-range: U+0589,U+10A0-10FF,U+1C90-1CBA,U+1CBD-1CBF,U+205A,U+2D00-2D2F,U+2E31;
}
@font-face {
  font-family: 'Noto Sans Georgian';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(fonts/noto-sans-georgian-latin-600-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Noto Sans Georgian';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(fonts/noto-sans-georgian-georgian-700-normal.woff2) format('woff2');
  unicode-range: U+0589,U+10A0-10FF,U+1C90-1CBA,U+1CBD-1CBF,U+205A,U+2D00-2D2F,U+2E31;
}
@font-face {
  font-family: 'Noto Sans Georgian';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(fonts/noto-sans-georgian-latin-700-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
:root{
  --bg:#f4f3ef; --card:#fff; --ink:#1d2731; --ink-2:#3b4652; --muted:#6c7784; --line:#e3e1da; --line-2:#efede8;
  --accent:#1f6b58; --accent-d:#17533f; --accent-l:#e6f0ec; --side:#18222c; --side-2:#22303c; --side-t:#c9d3dc;
  --danger:#b3443a; --danger-l:#fbeceb; --warn:#a86d12; --warn-l:#fdf3e2; --info-l:#eaf1f8;
  --r:10px; --sh:0 1px 2px rgba(20,30,40,.05),0 2px 10px rgba(20,30,40,.04);
  --font:'Noto Sans Georgian','Sylfaen','Segoe UI',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14.5px/1.5 var(--font);font-feature-settings:"tnum"}
a{color:var(--accent);text-decoration:none}
h1,h2,h3{margin:0;line-height:1.25;font-weight:650;letter-spacing:-.005em}
h1{font-size:24px} h2{font-size:16px} h3{font-size:14px}
small{font-size:12.5px}
.muted{color:var(--muted)} .mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.block{display:block} .nowrap{white-space:nowrap} .right{text-align:right} .num{text-align:right;white-space:nowrap}
.grow{flex:1;min-width:0}
.ico{flex:none;vertical-align:-3px}

/* layout */
.side{position:fixed;inset:0 auto 0 0;width:248px;background:var(--side);color:var(--side-t);display:flex;flex-direction:column;z-index:20}
.brand{display:flex;gap:11px;align-items:center;padding:20px 18px 18px;color:#fff;border-bottom:1px solid rgba(255,255,255,.06)}
.mark{width:34px;height:34px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:16px;flex:none}
.brand-t{font-weight:600;font-size:14px;line-height:1.25}.brand-t small{display:block;color:#8a98a6;font-weight:400;font-size:11.5px}
.side nav{padding:12px 10px;flex:1;overflow:auto}
.side nav a{display:flex;gap:11px;align-items:center;padding:9px 11px;border-radius:8px;color:var(--side-t);margin-bottom:2px;font-size:14px}
.side nav a:hover{background:var(--side-2);color:#fff}
.side nav a.on{background:rgba(31,107,88,.28);color:#fff;box-shadow:inset 3px 0 0 #4fb393}
.nav-h{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7c8a98;padding:16px 11px 6px}
.me{display:flex;align-items:center;gap:10px;padding:14px 16px;border-top:1px solid rgba(255,255,255,.06)}
.me-t{flex:1;min-width:0;font-size:13px;color:#fff}.me-t b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me a{color:#8a98a6;padding:4px}.me a:hover{color:#fff}
.avatar{width:32px;height:32px;border-radius:50%;background:#2f4252;color:#fff;display:inline-grid;place-items:center;font-size:12px;font-weight:600;flex:none}
.avatar.sm{width:26px;height:26px;font-size:11px;background:var(--accent-l);color:var(--accent-d);vertical-align:middle;margin-right:4px}
.main{margin-left:248px;padding:28px 36px 96px;max-width:1400px}
.bare{min-height:100vh}
.menu-btn{display:none}

/* page header */
.page-h{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.eyebrow{margin:0 0 4px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.crumb{display:inline-flex;gap:4px;align-items:center;font-size:13px;color:var(--muted);margin-bottom:6px}
.crumb:hover{color:var(--accent)}
.meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin:8px 0 0;color:var(--ink-2);font-size:13.5px}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions.row{margin-top:14px}
.actions form{margin:0}

/* buttons */
.btn{display:inline-flex;gap:7px;align-items:center;justify-content:center;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;font-weight:500;cursor:pointer;line-height:1.2;white-space:nowrap}
.btn:hover{border-color:#cfccc3;background:#fbfaf8}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-d)}
.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:rgba(0,0,0,.04)}
.btn.danger{color:var(--danger)}.btn.danger:hover{background:var(--danger-l)}
.btn.sm{padding:5px 10px;font-size:13px;border-radius:7px}
.btn.lg{padding:11px 18px;font-size:15px}
.btn.wide{width:100%}
.link{display:inline-flex;gap:4px;align-items:center;font-size:13px;font-weight:500}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:20px 22px;margin-bottom:18px}
.card.flush{padding:0;overflow:hidden}
.card-h{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.card-h.pad{padding:16px 20px 4px;margin:0}
.card h2+p{margin-top:6px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.two.wide-left{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr)}
.count{display:inline-block;min-width:22px;padding:0 7px;border-radius:20px;background:var(--line-2);color:var(--ink-2);font-size:12px;text-align:center;font-weight:600}

/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh)}
.stat span{display:block;color:var(--muted);font-size:12.5px}.stat b{font-size:28px;font-weight:650;letter-spacing:-.02em}

/* lists */
.list{list-style:none;margin:0;padding:0}
.list li{border-top:1px solid var(--line-2)}.list li:first-child{border-top:0}
.list li>a,.list li{display:flex;gap:12px;align-items:center;padding:10px 2px;color:var(--ink)}
.list li>a{padding:10px 2px;width:100%}
.list li>a:hover b{color:var(--accent)}
.list b{display:block;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.list small{display:block;color:var(--muted)}
.list time{color:var(--muted);font-size:12.5px;white-space:nowrap}
.list.compact li{padding:8px 2px;font-size:13.5px}
.doc-ico{width:30px;height:30px;border-radius:8px;background:var(--accent-l);color:var(--accent);display:grid;place-items:center;flex:none}
.empty{color:var(--muted);text-align:center;padding:22px 10px;margin:0}

/* tables */
.tbl{width:100%;border-collapse:collapse}
.tbl th{font-size:12px;font-weight:600;color:var(--muted);text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);background:#faf9f6;text-transform:uppercase;letter-spacing:.04em}
.tbl td{padding:11px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl.hover tbody tr{cursor:pointer}.tbl.hover tbody tr:hover td{background:#fafaf7}
.tbl .dim td,.dim{opacity:.55}
.card .tbl td:first-child,.card .tbl th:first-child{padding-left:20px}
.card .tbl td:last-child,.card .tbl th:last-child{padding-right:20px}

/* badges, tags */
.badge{display:inline-block;padding:1px 8px;border-radius:20px;font-size:11.5px;font-weight:600;background:var(--line-2);color:var(--ink-2);vertical-align:middle;white-space:nowrap}
.role-admin{background:#efe7f8;color:#5d3c8a}.role-manager{background:var(--info-l);color:#2a5b8a}.role-accountant{background:var(--accent-l);color:var(--accent-d)}
.me .badge{margin-top:2px;background:rgba(255,255,255,.1);color:#d9e2ea}
.tag{display:inline-block;padding:1px 8px;margin:1px 4px 1px 0;border-radius:6px;font-size:12px;background:var(--line-2);color:var(--ink-2)}
.warn-t{color:var(--warn);font-size:13px}

/* tabs, pills, filters */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 20px;overflow-x:auto}
.tabs a{padding:10px 14px;color:var(--muted);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs a:hover{color:var(--ink)}.tabs a.on{color:var(--ink);border-bottom-color:var(--accent)}
.pills{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.pills a{padding:5px 12px;border-radius:20px;color:var(--ink-2);background:#fff;border:1px solid var(--line);font-size:13px}
.pills a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.filters select,.filters input[type=date]{width:auto}
.search{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:0 10px;flex:1;min-width:220px;color:var(--muted)}
.search input{border:0;padding:8px 0;box-shadow:none!important;background:transparent}
form.inline{display:inline}

/* forms */
input,select,textarea{width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid #d9d6ce;border-radius:8px;padding:8px 10px;outline:none;transition:border-color .12s,box-shadow .12s}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(31,107,88,.14)}
input[type=checkbox]{width:16px;height:16px;padding:0;accent-color:var(--accent);flex:none}
input[type=file]{padding:6px}
textarea{resize:vertical}
textarea.code{font:12.5px/1.5 ui-monospace,Menlo,Consolas,monospace;background:#fbfbf9}
label{font-size:13px;font-weight:500;color:var(--ink-2)}
.stack{display:flex;flex-direction:column;gap:12px}.stack label{display:flex;flex-direction:column;gap:5px}
.stack.top{margin-top:10px}
.check{display:flex!important;flex-direction:row!important;gap:8px;align-items:center;cursor:pointer;font-weight:500}
.fgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px 16px}
.fld{display:flex;flex-direction:column;gap:5px;min-width:0}
.w-full{grid-column:span 12}.w-half{grid-column:span 6}.w-third{grid-column:span 4}.w-quarter{grid-column:span 3}.w-sixth{grid-column:span 2}
.fld-check{justify-content:flex-end;padding-bottom:8px}
.req{color:var(--danger);font-weight:600}
.help{color:var(--muted);font-weight:400}
.subsec{border-top:1px solid var(--line-2);margin-top:20px;padding-top:18px}.subsec h3{margin-bottom:12px}
.form-card .sec-t,.sec-t{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600;margin-bottom:14px}
.form-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line-2)}
.narrow{max-width:460px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer;background:#fff}
.chip:has(input:checked){border-color:var(--accent);background:var(--accent-l)}
.chip small{color:var(--muted)}
.invalid{border-color:var(--danger)!important;box-shadow:0 0 0 3px rgba(179,68,58,.12)!important}

/* flash */
.flashes{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.flash{padding:11px 14px;border-radius:9px;border:1px solid;font-size:14px}
.flash-success{background:var(--accent-l);border-color:#bcd9cf;color:var(--accent-d)}
.flash-error{background:var(--danger-l);border-color:#efc9c5;color:#8e2f27}
.flash-info{background:var(--info-l);border-color:#c9dbeb;color:#2a5b8a}

/* auth */
.auth .bare{display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 500px at 20% -10%,#dfe9e4 0,transparent 60%),var(--bg)}
.auth-wrap{width:100%;max-width:400px}
.auth-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px 30px 26px;box-shadow:0 10px 40px rgba(20,30,40,.08)}
.auth-card h1{font-size:21px;margin:22px 0 8px}.auth-card .muted{margin:0 0 16px;font-size:13.5px}
.auth-card form{margin-top:16px}
.auth-brand{display:flex;gap:12px;align-items:center}.auth-brand b{display:block}.auth-brand small{color:var(--muted)}
.auth .flashes{max-width:400px;margin:0 auto 14px}

/* client tiles & modules */
.client-grid,.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.mod-cat{display:inline-block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}
.client-tile{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff;transition:border-color .12s,transform .12s}
.client-tile:hover{border-color:var(--accent);transform:translateY(-1px)}
.client-tile small{color:var(--muted)}
.tile-foot{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:12.5px;color:var(--accent);font-weight:500}
.modules{margin-bottom:22px}
.mod-group{margin-bottom:14px}.mod-group h3{font-size:12.5px;color:var(--muted);font-weight:600;margin:0 0 8px}
.module{display:flex;gap:12px;align-items:center;padding:13px 14px;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--ink);box-shadow:var(--sh);transition:border-color .12s,box-shadow .12s}
.module:hover{border-color:var(--accent);box-shadow:0 4px 16px rgba(31,107,88,.1)}
.module b{display:block;font-weight:600}.module small{display:block;color:var(--muted);line-height:1.35;margin-top:2px}
.mod-ico{width:38px;height:38px;border-radius:9px;background:var(--accent-l);color:var(--accent);display:grid;place-items:center;flex:none}
.mod-go{color:var(--muted)}.module:hover .mod-go{color:var(--accent)}
.dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px 22px;margin:0}
.dl dt{font-size:12px;color:var(--muted)}.dl dd{margin:2px 0 0;font-weight:500}
.notes{border-top:1px solid var(--line-2);margin-top:18px;padding-top:14px}.notes p{white-space:pre-wrap;margin:6px 0 0}

/* document view */
.ready{display:flex;gap:18px;align-items:flex-start;padding:24px}
.ready-ico{width:58px;height:58px;border-radius:14px;background:var(--accent-l);color:var(--accent);display:grid;place-items:center;flex:none}
.ready h2{font-size:18px}.ready .actions{margin-top:14px}
.ready.fresh{border-color:#bcd9cf;background:linear-gradient(180deg,#f3f9f6,#fff)}
.pager{display:flex;gap:8px;justify-content:center}
.hint{font-size:13.5px}.hint h3{margin:18px 0 8px}.card.hint h3{margin-top:0}
.code-list{padding-left:18px;margin:6px 0;display:flex;flex-direction:column;gap:6px}
code{font:12px ui-monospace,Menlo,Consolas,monospace;background:var(--line-2);padding:1px 5px;border-radius:5px;color:#4a3a6a}

/* document form */
.docform .card{padding:20px 22px 22px}
.party{border:1px solid var(--line);border-radius:10px;padding:14px 16px 16px;margin:0;background:#fcfcfa}
.party-h{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.party legend{font-weight:600;font-size:14px;padding:0;float:left}
.party .picker{max-width:360px;background:#fff}
.out{display:block;padding:8px 10px;border-radius:8px;background:var(--accent-l);color:var(--accent-d);font-weight:600;text-align:right;min-height:38px}
.tablefld .tbl-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.edit-tbl{width:100%;border-collapse:collapse;min-width:640px}
.edit-tbl th{font-size:11.5px;font-weight:600;color:var(--muted);text-align:left;padding:8px 6px;background:#faf9f6;border-bottom:1px solid var(--line);white-space:nowrap}
.edit-tbl td{padding:4px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.edit-tbl input{padding:6px 7px;border-radius:6px;border-color:transparent;background:transparent}
.edit-tbl input:hover{border-color:#e2dfd7;background:#fff}.edit-tbl input:focus{background:#fff}
.edit-tbl .numin{text-align:right;min-width:72px}
.edit-tbl input[type=text]:not(.numin){min-width:105px}.edit-tbl td:nth-child(2) input[type=text]{min-width:170px}.edit-tbl input[type=date]{min-width:140px}
.edit-tbl th.num,.edit-tbl td.num{text-align:right}
.edit-tbl .chk{text-align:center;width:44px}
.edit-tbl .idx{width:34px;text-align:center;color:var(--muted);font-size:12px}
.edit-tbl .rm{width:34px;text-align:center}
.edit-tbl .out{background:transparent;padding:6px 7px;min-height:0;font-weight:500;color:var(--ink)}
.edit-tbl tfoot td{background:#faf9f6;border-bottom:0;padding:9px 8px}
.edit-tbl tfoot .out{font-weight:650;color:var(--accent-d)}
.x{border:0;background:transparent;color:#aaa;font-size:18px;line-height:1;cursor:pointer;border-radius:6px;width:26px;height:26px}
.x:hover{background:var(--danger-l);color:var(--danger)}
.addrow{align-self:flex-start;margin-top:4px}
.sticky-foot{position:fixed;left:248px;right:0;bottom:0;display:flex;gap:10px;align-items:center;justify-content:flex-end;padding:12px 36px;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);border-top:1px solid var(--line);z-index:10}
.sticky-foot #sumline{margin-right:auto;font-weight:600;color:var(--ink-2)}

@media (max-width:1000px){
  .two,.two.wide-left{grid-template-columns:1fr}
  .w-third,.w-quarter{grid-column:span 6}.w-sixth{grid-column:span 4}
}
@media (max-width:760px){
  .side{transform:translateX(-100%);transition:transform .2s}.side.open{transform:none}
  .menu-btn{display:block;position:fixed;top:10px;left:10px;z-index:30;border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font-size:18px}
  .main{margin-left:0;padding:56px 16px 110px}
  .w-half,.w-third,.w-quarter,.w-sixth{grid-column:span 12}
  .sticky-foot{left:0;padding:10px 16px;flex-wrap:wrap}
  .tbl th:nth-child(n+4),.tbl td:nth-child(n+4){display:none}
  .tbl td:last-child,.tbl th:last-child{display:table-cell}
}
