:root { --bg:#f4f6f8; --surface:#fff; --ink:#14211b; --muted:#68756f; --line:#e3e9e5; --brand:#0b7753; --brand-dark:#075d40; }
* { box-sizing:border-box; }
html { background:var(--bg); }
body { margin:0; color:var(--ink); background:var(--bg); font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
button,a { font:inherit; }
button { cursor:pointer; }
.app-shell { min-height:100vh; }
.sidebar { position:fixed; inset:0 auto 0 0; width:252px; padding:28px 18px; background:#0c211a; color:#fff; display:flex; flex-direction:column; z-index:10; }
.brand { display:flex; align-items:center; gap:11px; padding:0 10px 30px; font-weight:800; letter-spacing:.12em; }
.brand-mark { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; color:#082118; background:#60d6a2; letter-spacing:0; }
.sidebar nav { display:grid; gap:6px; }
.nav-item { display:flex; gap:13px; align-items:center; padding:12px 14px; border-radius:10px; color:#aebdb6; text-decoration:none; }
.nav-item span { width:18px; text-align:center; font-size:18px; }
.nav-item:hover,.nav-item.active { background:#193a2f; color:#fff; }
.sidebar-footer { margin-top:auto; padding:18px 10px 2px; border-top:1px solid #244237; display:flex; align-items:center; gap:11px; }
.avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; color:#073f2b; background:#8ce7bb; font-size:12px; font-weight:800; }
.sidebar-footer strong,.sidebar-footer small { display:block; }
.sidebar-footer strong { font-size:13px; }.sidebar-footer small { margin-top:3px; color:#8ca198; }
main { margin-left:252px; padding:34px 38px 56px; max-width:1600px; }
.topbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:28px; }
h1,h2,p { margin:0; } h1 { margin-top:3px; font-size:28px; letter-spacing:-.04em; } h2 { margin-top:3px; font-size:19px; letter-spacing:-.02em; }
.eyebrow { color:#7a8781; font-size:11px; text-transform:uppercase; letter-spacing:.11em; font-weight:750; }
.top-actions { display:flex; gap:10px; }
.primary,.icon-button { border:0; border-radius:10px; }
.primary { padding:11px 16px; background:var(--brand); color:#fff; font-weight:700; box-shadow:0 7px 18px #0b775329; }
.primary:hover { background:var(--brand-dark); }
.icon-button { width:42px; background:var(--surface); border:1px solid var(--line); font-size:21px; }
.metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:16px; }
.metric { position:relative; overflow:hidden; min-height:148px; padding:20px; border:1px solid var(--line); border-radius:15px; background:var(--surface); box-shadow:0 3px 16px #173a2b08; }
.metric-dot { position:absolute; top:19px; right:19px; width:9px; height:9px; border-radius:50%; background:#4087ef; box-shadow:0 0 0 6px #4087ef18; }
.metric.amber .metric-dot { background:#e49a31; box-shadow:0 0 0 6px #e49a3118; }.metric.green .metric-dot { background:#20a36d; box-shadow:0 0 0 6px #20a36d18; }.metric.violet .metric-dot { background:#8d67d6; box-shadow:0 0 0 6px #8d67d618; }
.metric p { color:var(--muted); font-size:13px; }.metric strong { display:block; margin:19px 0 10px; font-size:25px; letter-spacing:-.045em; }.metric strong small { font-size:11px; color:var(--muted); letter-spacing:0; }.metric span { color:#829089; font-size:11px; }
.content-grid { display:grid; grid-template-columns:minmax(0,1.9fr) minmax(280px,.75fr); gap:16px; }
.panel { border:1px solid var(--line); border-radius:15px; background:var(--surface); box-shadow:0 3px 16px #173a2b08; }
.panel-heading { padding:20px 22px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); }
.text-button { border:0; background:transparent; color:var(--brand); font-size:12px; font-weight:700; }
.project-row { position:relative; display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:13px; align-items:center; padding:17px 22px 20px; border-bottom:1px solid var(--line); }
.project-row:last-child { border-bottom:0; }
.project-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:11px; color:#a7670d; background:#fff2d9; font-weight:800; }.project-icon.installation { color:#176d9c; background:#e0f3ff; }
.project-title { display:flex; gap:9px; align-items:center; }.project-title strong { font-size:14px; }.project-main p { margin-top:5px; color:#74817b; font-size:11px; }.kind { display:inline-block; margin-top:7px; color:#52625a; font-size:10px; font-weight:700; }
.status { padding:3px 7px; border-radius:20px; color:#16704d; background:#ddf5ea; font-size:9px; font-weight:800; }.status.approved { color:#456396; background:#e7edfb; }.status.draft { color:#7b6847; background:#f4eddf; }
.project-finance { text-align:right; }.project-finance strong,.project-finance span { display:block; }.project-finance strong { font-size:14px; }.project-finance strong small { font-size:9px; color:#77847e; }.project-finance span { margin-top:4px; color:#8a9690; font-size:10px; }
.progress { position:absolute; height:3px; left:79px; right:22px; bottom:10px; overflow:hidden; border-radius:5px; background:#edf1ef; }.progress div { height:100%; background:#51bf91; }
.snapshot { align-self:start; }.snapshot-item { padding:18px 22px; border-bottom:1px solid var(--line); }.snapshot-item:last-child { border-bottom:0; }.snapshot-item span,.snapshot-item strong { display:block; }.snapshot-item span { color:var(--muted); font-size:11px; }.snapshot-item strong { margin-top:7px; font-size:16px; }.snapshot-item.accent { margin:12px; border:0; border-radius:11px; color:#fff; background:#0e6e4e; }.snapshot-item.accent span { color:#c8ebdc; }
.mobile-nav { display:none; }
@media (max-width:1050px) { .metrics { grid-template-columns:repeat(2,1fr); }.content-grid { grid-template-columns:1fr; }.snapshot { display:grid; grid-template-columns:repeat(2,1fr); }.snapshot .panel-heading { grid-column:1/-1; }.snapshot-item:nth-last-child(-n+2) { border-bottom:0; } }
@media (max-width:720px) { .sidebar { display:none; } main { margin-left:0; padding:22px 16px 90px; }.topbar { align-items:flex-end; }.top-actions .icon-button { display:none; }.primary { font-size:0; width:42px; height:42px; padding:0; }.primary::first-letter { font-size:20px; }.metrics { grid-template-columns:1fr 1fr; gap:9px; }.metric { min-height:124px; padding:15px; }.metric strong { margin:15px 0 8px; font-size:19px; }.content-grid { gap:10px; }.panel-heading { padding:17px; }.project-row { grid-template-columns:39px 1fr; padding:15px 16px 19px; }.project-icon { width:38px; height:38px; }.project-title { align-items:flex-start; flex-direction:column; gap:5px; }.project-finance { grid-column:2; text-align:left; }.progress { left:70px; right:16px; }.snapshot { display:block; }.snapshot-item { padding:16px 18px; }.mobile-nav { position:fixed; z-index:20; inset:auto 0 0; height:70px; padding:8px 16px max(8px,env(safe-area-inset-bottom)); display:flex; justify-content:space-around; align-items:center; border-top:1px solid var(--line); background:#fffffff2; backdrop-filter:blur(14px); }.mobile-nav a { display:grid; place-items:center; gap:2px; color:#65736c; text-decoration:none; font-size:18px; }.mobile-nav a span { font-size:9px; }.mobile-nav button { width:43px; height:43px; border:0; border-radius:14px; color:white; background:var(--brand); font-size:22px; box-shadow:0 6px 18px #0b775342; } }
@media (max-width:420px) { .metrics { grid-template-columns:1fr; }.metric { min-height:112px; }.metric strong { font-size:22px; } h1 { font-size:24px; } }
.project-dialog { width:min(720px,calc(100vw - 30px)); max-height:calc(100vh - 30px); padding:0; border:0; border-radius:18px; color:var(--ink); background:var(--surface); box-shadow:0 30px 80px #071c1455; }
.project-dialog::backdrop { background:#071c1490; backdrop-filter:blur(3px); }
.project-dialog form,.detail-dialog>div { padding:24px; }
.dialog-heading { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:22px; }
.dialog-close { width:36px; height:36px; border:1px solid var(--line); border-radius:10px; color:#53625b; background:#f7f9f8; font-size:22px; line-height:1; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field { display:grid; gap:7px; }.field.full { grid-column:1/-1; }.field span { font-size:11px; font-weight:750; color:#52625a; }
.field input,.field select,.field textarea { width:100%; padding:11px 12px; border:1px solid #d9e2dd; border-radius:10px; outline:0; color:var(--ink); background:#fbfcfb; }.field input:focus,.field select:focus,.field textarea:focus { border-color:#36a77b; box-shadow:0 0 0 3px #36a77b1f; }.field textarea { resize:vertical; }.hidden { display:none; }
.form-error { min-height:18px; margin-top:12px; color:#b53434; font-size:11px; }.dialog-actions { display:flex; justify-content:flex-end; gap:10px; padding-top:5px; }.secondary { padding:10px 15px; border:1px solid var(--line); border-radius:10px; color:#53625b; background:#fff; font-weight:700; }
.toast { position:fixed; z-index:50; right:24px; bottom:24px; padding:12px 16px; border-radius:10px; color:#fff; background:#0b7753; box-shadow:0 10px 35px #0b392855; opacity:0; transform:translateY(12px); pointer-events:none; transition:.2s ease; }.toast.show { opacity:1; transform:none; }
.detail-header { display:flex; justify-content:space-between; gap:20px; padding-bottom:20px; border-bottom:1px solid var(--line); }.detail-header h2 { font-size:24px; }.detail-type { display:inline-block; margin-top:10px; padding:5px 9px; border-radius:20px; color:#176d4e; background:#e1f5eb; font-size:10px; font-weight:800; }.detail-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:18px; }.detail-card { padding:15px; border:1px solid var(--line); border-radius:12px; background:#fafcfb; }.detail-card span,.detail-card strong { display:block; }.detail-card span { color:var(--muted); font-size:10px; }.detail-card strong { margin-top:6px; font-size:16px; }.detail-meta { margin-top:18px; padding:15px; border-radius:12px; background:#f0f5f2; color:#53625b; font-size:12px; line-height:1.8; }
@media(max-width:620px){.project-dialog { width:100vw; max-width:none; max-height:92vh; margin:auto 0 0; border-radius:20px 20px 0 0; }.project-dialog form,.detail-dialog>div { padding:20px 16px calc(20px + env(safe-area-inset-bottom)); }.form-grid { grid-template-columns:1fr; }.field.full { grid-column:auto; }.dialog-actions { position:sticky; bottom:0; padding-top:14px; background:#fff; }.detail-grid { grid-template-columns:1fr 1fr; }.toast { left:16px; right:16px; bottom:84px; text-align:center; }}
.detail-dialog { width:min(980px,calc(100vw - 24px)); }.detail-tabs { display:flex; gap:4px; margin:18px 0; padding:4px; overflow-x:auto; border-radius:11px; background:#eff4f1; }.detail-tab { flex:1; min-width:max-content; padding:9px 12px; border:0; border-radius:8px; color:#64736c; background:transparent; font-size:11px; font-weight:750; }.detail-tab.active { color:#155f45; background:#fff; box-shadow:0 2px 8px #173a2b12; }.tab-panel.hidden { display:none; }.empty-state { padding:40px 20px; border:1px dashed #ccd8d2; border-radius:13px; text-align:center; background:#fbfcfb; }.empty-state strong,.empty-state span { display:block; }.empty-state span { margin-top:7px; color:var(--muted); font-size:11px; }
.estimate-toolbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }.estimate-toolbar h3 { margin:3px 0 0; font-size:18px; }.small { padding:8px 11px; font-size:11px; }.estimate-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:12px; }.estimate-summary.two { grid-template-columns:repeat(2,1fr); }.estimate-summary span { padding:12px; border:1px solid var(--line); border-radius:10px; color:var(--muted); background:#fafcfb; font-size:9px; }.estimate-summary strong { display:block; margin-top:5px; color:var(--ink); font-size:14px; }.estimate-settings { display:flex; gap:10px; margin-bottom:14px; }.estimate-settings label { color:var(--muted); font-size:10px; }.estimate-settings input { width:90px; margin-left:7px; padding:7px; border:1px solid var(--line); border-radius:8px; }.estimate-groups { display:grid; gap:10px; }.estimate-group { overflow:hidden; border:1px solid var(--line); border-radius:12px; }.group-heading { display:flex; justify-content:space-between; align-items:center; padding:12px 14px; background:#f7faf8; }.group-heading strong,.group-heading span { display:block; }.group-heading strong { font-size:13px; }.group-heading span { margin-top:3px; color:var(--muted); font-size:9px; }.group-empty { padding:14px; color:var(--muted); font-size:10px; }.estimate-table { overflow-x:auto; }.estimate-row { display:grid; grid-template-columns:minmax(180px,2fr) 70px 60px 100px 110px; min-width:590px; padding:9px 14px; border-top:1px solid var(--line); font-size:10px; }.estimate-row.work { grid-template-columns:minmax(180px,2fr) 65px 60px 90px 50px 110px; }.estimate-table.work .estimate-row { grid-template-columns:minmax(180px,2fr) 65px 60px 90px 50px 110px; min-width:650px; }.estimate-row.header { color:#77857f; background:#fcfdfc; font-size:9px; font-weight:750; }.estimate-row strong { text-align:right; }
@media(max-width:620px){.detail-dialog { width:100vw; }.estimate-summary { grid-template-columns:1fr 1fr; }.estimate-toolbar { align-items:flex-start; }.estimate-settings { flex-direction:column; }.detail-tabs { margin-left:-4px; margin-right:-4px; }.group-heading { align-items:flex-start; gap:10px; }}
.projects-panel { scroll-margin-top:18px; transition:box-shadow .25s,border-color .25s; }.projects-panel.attention { border-color:#4bc093; box-shadow:0 0 0 4px #4bc09322,0 12px 35px #173a2b18; }.saved-project { background:#fbfffd; }.saved-project:focus { outline:3px solid #44b78b55; outline-offset:-3px; }.open-hint { padding:3px 7px; border-radius:12px; color:#0b7753; background:#e1f6ec; font-size:9px; font-weight:800; }
.app-view.hidden { display:none; }.list-toolbar { display:grid; grid-template-columns:minmax(260px,1fr) 190px 180px; gap:10px; margin-bottom:14px; }.search-field { display:flex; align-items:center; gap:8px; padding:0 12px; border:1px solid var(--line); border-radius:11px; background:#fff; }.search-field input { width:100%; padding:11px 0; border:0; outline:0; background:transparent; }.list-toolbar select { padding:10px 12px; border:1px solid var(--line); border-radius:11px; color:var(--ink); background:#fff; }.full-list .project-row { min-height:96px; }.page-back { margin-bottom:12px; }.detail-page { padding:22px; }.detail-page .detail-header { padding-bottom:18px; }.detail-page .tab-panel { min-height:180px; }
@media(max-width:720px){.list-toolbar { grid-template-columns:1fr 1fr; }.search-field { grid-column:1/-1; }.detail-page { padding:16px; }.detail-page .detail-header h2 { font-size:21px; }}
.finance-toolbar { gap:16px; }.finance-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:6px; }.finance-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:14px; }.finance-kpis>span { padding:13px; border:1px solid var(--line); border-radius:10px; color:var(--muted); background:#fafcfb; font-size:9px; }.finance-kpis strong { display:block; margin-top:6px; color:var(--ink); font-size:15px; }.finance-kpis strong.positive { color:#0b7753; }.finance-kpis strong.negative { color:#b53434; }.finance-table { overflow-x:auto; border:1px solid var(--line); border-radius:11px; }.finance-row { display:grid; grid-template-columns:95px 135px minmax(180px,1fr) 150px 110px; min-width:700px; align-items:center; padding:10px 13px; border-top:1px solid var(--line); font-size:10px; }.finance-row:first-child { border-top:0; }.finance-row.header { color:var(--muted); background:#f7faf8; font-size:9px; font-weight:750; }.finance-row>strong { text-align:right; }.finance-row .status { justify-self:end; }
@media(max-width:720px){.finance-toolbar { align-items:flex-start; flex-direction:column; }.finance-actions { justify-content:flex-start; }.finance-kpis { grid-template-columns:1fr 1fr; }}
.finance-balance-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:14px; }.balance-card { padding:17px; }.balance-card span,.balance-card strong,.balance-card small { display:block; }.balance-card span { color:var(--muted); font-size:10px; }.balance-card strong { margin:8px 0 5px; font-size:17px; }.balance-card small { color:#8b9892; font-size:9px; }.company-finance { border:0; border-radius:0 0 15px 15px; }.finance-row.company { grid-template-columns:90px 110px 135px minmax(180px,1fr) 160px; }.record-project-link { justify-self:start; padding:0; border:0; color:var(--brand); background:transparent; font-size:10px; font-weight:800; }.finance-empty { margin:18px; }
@media(max-width:1000px){.finance-balance-grid { grid-template-columns:1fr 1fr; }}
@media(max-width:720px){.finance-page-metrics { grid-template-columns:1fr 1fr; }.finance-balance-grid { grid-template-columns:1fr 1fr; }}
.entry-dialog { width:min(620px,calc(100vw - 30px)); }.entry-dialog .form-grid { align-items:end; }.entry-dialog input[type="number"] { text-align:right; }.entry-dialog .dialog-actions { margin-top:2px; }
.toast.error { background:#a93636; }
.partner-toolbar { grid-template-columns:minmax(260px,1fr) 220px; }.partner-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.partner-card { padding:18px; }.partner-card-head { display:flex; justify-content:space-between; align-items:center; }.partner-avatar { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; color:#0b6849; background:#dff5ea; font-size:12px; font-weight:850; }.partner-card h3 { margin:14px 0 5px; font-size:15px; }.partner-card>p,.partner-card>small { color:var(--muted); font-size:10px; }.partner-meta { display:grid; grid-template-columns:1fr 1.5fr; gap:8px; margin:14px 0; padding:11px; border-radius:10px; background:#f5f8f6; }.partner-meta span,.partner-meta strong { display:block; }.partner-meta span { color:var(--muted); font-size:9px; }.partner-meta strong { margin-top:5px; color:var(--ink); font-size:11px; }.partner-grid+.empty-state { margin-top:12px; }
@media(max-width:1000px){.partner-grid { grid-template-columns:1fr 1fr; }}
@media(max-width:650px){.partner-grid { grid-template-columns:1fr; }.partner-toolbar { grid-template-columns:1fr; }.partner-toolbar .search-field { grid-column:auto; }}
.finance-page-actions { display:flex; justify-content:flex-end; gap:8px; margin:-58px 0 20px; }.account-section { margin-bottom:14px; }.section-title { display:flex; justify-content:space-between; margin:18px 0 10px; }.account-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }.account-card { display:flex; align-items:center; gap:12px; padding:16px; }.account-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; color:#0d704f; background:#e0f5eb; font-size:18px; }.account-card span,.account-card strong,.account-card p { display:block; }.account-card span { color:var(--muted); font-size:9px; }.account-card strong { margin-top:3px; font-size:12px; }.account-card p { margin-top:7px; font-size:15px; font-weight:800; }.compact-empty { padding:22px; }.transfer-panel { margin-top:14px; }.transfer-row { display:grid; grid-template-columns:90px 140px 140px minmax(180px,1fr) 160px; min-width:760px; padding:10px 13px; border-top:1px solid var(--line); font-size:10px; }.transfer-row:first-child { border-top:0; }.transfer-row.header { color:var(--muted); background:#f7faf8; font-size:9px; font-weight:750; }.transfer-row strong { text-align:right; }
@media(max-width:900px){.account-grid { grid-template-columns:1fr 1fr; }}
@media(max-width:720px){.finance-page-actions { margin:-12px 0 14px; justify-content:flex-start; }.account-grid { grid-template-columns:1fr; }}
.report-filters { display:flex; align-items:end; gap:10px; padding:14px; margin-bottom:14px; }.report-filters label { display:grid; gap:6px; color:var(--muted); font-size:9px; }.report-filters input { padding:9px 10px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:#fff; }.report-layout { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }.period-label { color:var(--muted); font-size:9px; }.pnl-lines { padding:6px 20px 18px; }.pnl-lines>div { display:flex; justify-content:space-between; padding:13px 2px; border-bottom:1px solid var(--line); font-size:11px; }.pnl-lines>div:last-child { border-bottom:0; }.pnl-lines .pnl-total { margin-top:5px; padding:15px 12px; border-radius:10px; background:#f1f7f4; font-weight:800; }.positive { color:#0b7753 !important; }.negative { color:#b53434 !important; }.report-balances { grid-template-columns:1fr 1fr; }.report-table-panel { margin-top:12px; }.project-report-table { overflow-x:auto; }.project-report-row { width:100%; min-width:700px; display:grid; grid-template-columns:minmax(220px,1.5fr) repeat(4,130px); align-items:center; padding:11px 16px; border:0; border-top:1px solid var(--line); color:var(--ink); background:#fff; text-align:right; font-size:10px; }.project-report-row:not(.header):hover { background:#f8fbf9; }.project-report-row.header { color:var(--muted); background:#f7faf8; font-size:9px; font-weight:750; }.project-report-row>span:first-child { text-align:left; }.project-report-row strong,.project-report-row small { display:block; }.project-report-row small { margin-top:3px; color:var(--muted); font-size:9px; }
@media(max-width:720px){.report-filters { display:grid; grid-template-columns:1fr 1fr; }.report-layout { grid-template-columns:1fr; }.report-balances { grid-template-columns:1fr 1fr; }}
.employee-toolbar { grid-template-columns:minmax(260px,1fr) 190px 190px; }.employee-list { overflow-x:auto; }.employee-row { min-width:760px; display:grid; grid-template-columns:minmax(230px,1.5fr) 150px 120px 140px 80px; align-items:center; padding:11px 16px; border-top:1px solid var(--line); font-size:10px; }.employee-row:first-child { border-top:0; }.employee-row.header { color:var(--muted); background:#f7faf8; font-size:9px; font-weight:750; }.employee-person { display:flex; align-items:center; gap:10px; }.employee-person i { width:36px; height:36px; display:grid; place-items:center; border-radius:11px; color:#155f45; background:#e1f5eb; font-size:10px; font-style:normal; font-weight:850; }.employee-person strong,.employee-person small { display:block; }.employee-person small { margin-top:3px; color:var(--muted); font-size:9px; }.employee-row>.status { justify-self:start; }
@media(max-width:850px){.employee-toolbar { grid-template-columns:1fr 1fr; }.employee-toolbar .search-field { grid-column:1/-1; }}
.attendance-toolbar { grid-template-columns:220px 220px; justify-content:start; }.month-field { display:flex; align-items:center; gap:8px; padding:0 12px; border:1px solid var(--line); border-radius:11px; color:var(--muted); background:#fff; font-size:9px; }.month-field input { padding:10px 0; border:0; outline:0; color:var(--ink); background:transparent; }.attendance-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:12px; }.attendance-kpis article { padding:16px; }.attendance-kpis span,.attendance-kpis strong { display:block; }.attendance-kpis span { color:var(--muted); font-size:9px; }.attendance-kpis strong { margin-top:6px; font-size:20px; }.attendance-summary,.attendance-log-table { overflow-x:auto; }.attendance-row { min-width:680px; display:grid; grid-template-columns:minmax(230px,1.4fr) 120px 110px minmax(180px,1fr); align-items:center; padding:11px 15px; border-top:1px solid var(--line); font-size:10px; }.attendance-row:first-child { border-top:0; }.attendance-row.header,.attendance-log-row.header { color:var(--muted); background:#f7faf8; font-size:9px; font-weight:750; }.attendance-row strong,.attendance-row small { display:block; }.attendance-row small { margin-top:3px; color:var(--muted); font-size:9px; }.attendance-log { margin-top:12px; }.attendance-log-row { min-width:680px; display:grid; grid-template-columns:100px minmax(200px,1.3fr) 70px 150px 150px; padding:10px 15px; border-top:1px solid var(--line); font-size:10px; }
@media(max-width:650px){.attendance-toolbar { grid-template-columns:1fr; }.attendance-kpis { grid-template-columns:repeat(3,1fr); }.attendance-kpis article { padding:12px; }.attendance-kpis strong { font-size:17px; }}
.inventory-toolbar{grid-template-columns:minmax(260px,1fr) 190px}.inventory-table{overflow-x:auto}.inventory-row{min-width:680px;display:grid;grid-template-columns:minmax(240px,1.5fr) 90px 90px 130px 150px;align-items:center;padding:11px 15px;border-top:1px solid var(--line);font-size:10px}.inventory-row:first-child{border-top:0}.inventory-row.header{color:var(--muted);background:#f7faf8;font-size:9px;font-weight:750}.inventory-row strong,.inventory-row small{display:block}.inventory-row small{margin-top:3px;color:var(--muted);font-size:9px}@media(max-width:650px){.inventory-toolbar{grid-template-columns:1fr}}
.payroll-table{overflow-x:auto}.payroll-row{min-width:850px;display:grid;grid-template-columns:minmax(210px,1.3fr) 130px 100px 150px 150px 100px;align-items:center;padding:11px 15px;border-top:1px solid var(--line);font-size:10px}.payroll-row:first-child{border-top:0}.payroll-row.header{color:var(--muted);background:#f7faf8;font-size:9px;font-weight:750}.payroll-row strong,.payroll-row small{display:block}.payroll-row small{margin-top:3px;color:var(--muted);font-size:9px}
.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product-card{padding:18px}.product-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.product-card h3{margin:4px 0 0;font-size:15px}.product-code{color:var(--muted);font-size:9px}.product-card>p{min-height:30px;color:var(--muted);font-size:10px}.product-stats{display:grid;grid-template-columns:1fr 1fr;margin:14px 0;border:1px solid var(--line);border-radius:10px}.product-stats span{padding:10px;color:var(--muted);font-size:9px}.product-stats span+span{border-left:1px solid var(--line)}.product-stats strong{display:block;margin-top:4px;color:var(--ink);font-size:11px}.bom-list{margin-bottom:12px}.bom-list div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line);font-size:9px}@media(max-width:760px){.product-grid{grid-template-columns:1fr}}
.production-table{overflow-x:auto}.production-row{min-width:820px;display:grid;grid-template-columns:130px 120px minmax(220px,1.4fr) 100px 150px 80px;align-items:center;padding:11px 15px;border-top:1px solid var(--line);font-size:10px}.production-row:first-child{border-top:0}.production-row.header{color:var(--muted);background:#f7faf8;font-size:9px;font-weight:750}.production-row strong,.production-row small{display:block}.production-row small{margin-top:3px;color:var(--muted);font-size:9px}
.delivery-table{overflow-x:auto}.delivery-row{min-width:820px;display:grid;grid-template-columns:150px 120px minmax(220px,1.4fr) 100px 160px 90px;align-items:center;padding:11px 15px;border-top:1px solid var(--line);font-size:10px}.delivery-row:first-child{border-top:0}.delivery-row.header{color:var(--muted);background:#f7faf8;font-size:9px;font-weight:750}.delivery-row strong,.delivery-row small{display:block}.delivery-row small{margin-top:3px;color:var(--muted);font-size:9px}
.act-table{overflow-x:auto}.act-row{min-width:850px;display:grid;grid-template-columns:150px 120px minmax(230px,1.5fr) 100px 160px 110px;align-items:center;padding:11px 15px;border-top:1px solid var(--line);font-size:10px}.act-row:first-child{border-top:0}.act-row.header{color:var(--muted);background:#f7faf8;font-size:9px;font-weight:750}.act-row strong,.act-row small{display:block}.act-row small{margin-top:3px;color:var(--muted);font-size:9px}
.purchase-table{overflow-x:auto}.purchase-row{min-width:880px;display:grid;grid-template-columns:150px 170px minmax(210px,1.3fr) 110px 160px 100px;align-items:center;padding:11px 15px;border-top:1px solid var(--line);font-size:10px}.purchase-row:first-child{border-top:0}.purchase-row.header{color:var(--muted);background:#f7faf8;font-size:9px;font-weight:750}.purchase-row strong,.purchase-row small{display:block}.purchase-row small{margin-top:3px;color:var(--muted);font-size:9px}
.cancelled-row{opacity:.55;text-decoration:line-through}.cancelled-row .status{text-decoration:none}.activity-list{display:grid;gap:0}.activity-list article{display:flex;gap:12px;align-items:flex-start;padding:13px;border-bottom:1px solid var(--line)}.activity-list i{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#e7f5ee;color:var(--brand);font-style:normal;font-weight:800}.activity-list strong,.activity-list span{display:block}.activity-list strong{font-size:10px}.activity-list span{margin-top:4px;color:var(--muted);font-size:9px}
.project-status-actions{display:flex;align-items:center;gap:10px}.status.completed{background:#e8f1ff;color:#315f9a}.status.closed{background:#e7ece9;color:#42544c}.project-status-actions button:disabled{opacity:.55;cursor:not-allowed}
.permission-hidden{display:none!important}.sidebar-footer select{width:145px;margin-top:5px;border:1px solid #355348;border-radius:6px;background:#17372c;color:#dfeae5;font-size:9px}.user-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.user-card{display:flex;align-items:center;justify-content:space-between;padding:16px}@media(max-width:700px){.user-grid{grid-template-columns:1fr}}
.backup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.backup-card{padding:24px}.backup-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#e4f5ed;color:var(--brand);font-size:22px}.backup-card h2{margin:16px 0 8px;font-size:16px}.backup-card p{min-height:42px;color:var(--muted);font-size:10px;line-height:1.6}.warning-card .backup-icon{background:#fff3df;color:#a66a12}.backup-status{display:grid;grid-template-columns:repeat(3,1fr);margin-top:12px;padding:18px}.backup-status div+div{border-left:1px solid var(--line);padding-left:18px}.backup-status span,.backup-status strong{display:block}.backup-status span{color:var(--muted);font-size:9px}.backup-status strong{margin-top:6px;font-size:12px}@media(max-width:700px){.backup-grid{grid-template-columns:1fr}.backup-status{grid-template-columns:1fr;gap:14px}.backup-status div+div{border-left:0;padding-left:0}}
.readiness-hero{display:flex;align-items:center;justify-content:space-between;padding:20px;margin-bottom:12px}.readiness-hero>div{display:flex;align-items:center;gap:14px}.readiness-hero>div>span{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;font-size:20px;font-weight:900}.readiness-hero.ready>div>span{background:#daf2e7;color:#167451}.readiness-hero.blocked>div>span{background:#ffe7e3;color:#ae382b}.readiness-hero h2{margin:3px 0 0;font-size:16px}.readiness-hero>strong{font-size:11px}.check-list{display:grid;gap:8px}.check-item{width:100%;display:grid;grid-template-columns:36px 1fr auto;align-items:center;text-align:left;padding:13px;border:1px solid var(--line);cursor:pointer}.check-item i{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;font-style:normal;font-weight:800}.check-item.pass i{background:#e2f4eb;color:#19704f}.check-item.warning i{background:#fff2d9;color:#a96a0d}.check-item.error i{background:#ffe4e0;color:#ad382d}.check-item strong,.check-item small{display:block}.check-item strong{font-size:10px}.check-item small{margin-top:3px;color:var(--muted);font-size:9px}.check-item b{color:var(--brand);font-size:9px}
