:root{
    --bg:#f4f7fb;
    --panel:#ffffff;
    --text:#0f172a;
    --muted:#64748b;
    --primary:#2563eb;
    --primary2:#0f766e;
    --danger:#dc2626;
    --warning:#f59e0b;
    --success:#16a34a;
    --info:#0284c7;
    --line:#e2e8f0;
    --shadow:0 24px 58px rgba(15,23,42,.14);
    --radius:18px;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{text-decoration:none;color:inherit}
.app{min-height:100vh;display:flex}.sidebar{width:280px;background:#0f172a;color:#e5e7eb;position:fixed;left:0;top:0;bottom:0;padding:22px 18px;overflow-y:auto;z-index:30}.brand{display:flex;gap:12px;align-items:center;margin-bottom:28px}.brand-logo{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#38bdf8,#2563eb);display:grid;place-items:center;font-weight:900;color:white;box-shadow:0 10px 25px rgba(37,99,235,.35)}.brand-title{font-size:17px;font-weight:800}.brand small{color:#94a3b8}.nav{display:flex;flex-direction:column;gap:6px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;color:#cbd5e1;transition:.2s}.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.1);color:white}.nav-link.active{box-shadow:inset 3px 0 0 #38bdf8}.main{margin-left:280px;width:calc(100% - 280px)}
.topbar{position:sticky;top:0;background:rgba(91, 154, 236, 0.9);backdrop-filter:blur(16px);z-index:20;padding:16px 24px;display:grid;grid-template-columns:auto minmax(240px,1fr) minmax(260px,420px) auto;align-items:center;gap:16px;border-bottom:1px solid rgba(226,232,240,.7)}.topbar h1{margin:0;font-size:25px}.topbar p{margin:4px 0 0;color:var(--muted)}.top-title{min-width:0}.hamburger{display:none;border:0;background:var(--panel);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow)}.userbox{display:flex;align-items:center;gap:12px;background:var(--panel);padding:10px 12px;border:1px solid var(--line);border-radius:18px}.userbox small{display:block;color:var(--muted)}.avatar{width:40px;height:40px;border-radius:14px;background:#dbeafe;color:#1d4ed8;font-weight:900;display:grid;place-items:center}.top-search{display:flex;align-items:center;gap:8px;background:white;border:1px solid var(--line);padding:6px;border-radius:16px;box-shadow:0 10px 25px rgba(15,23,42,.04)}.top-search input{border:0;outline:0;padding:9px 10px;width:100%;font:inherit}.top-search button{border:0;background:#0f172a;color:#fff;border-radius:12px;padding:9px 14px;font-weight:900;cursor:pointer}.content{padding:28px}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.card-title h2,.card-title h3{margin:0}.title-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}.kpi{position:relative;overflow:hidden}.kpi:after{content:"";position:absolute;right:-35px;top:-35px;width:110px;height:110px;border-radius:50%;background:rgba(37,99,235,.1)}.kpi .label{color:var(--muted);font-weight:700}.kpi .value{font-size:28px;font-weight:900;margin-top:8px}.kpi.success .value{color:var(--success)}.kpi.danger .value{color:var(--danger)}.kpi.warning .value{color:var(--warning)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:13px;padding:10px 14px;font-weight:800;cursor:pointer;transition:.2s;white-space:nowrap}.btn-xs{padding:6px 9px;border-radius:10px;font-size:12px}.btn-primary{background:var(--primary);color:white}.btn-primary:hover{filter:brightness(.95);transform:translateY(-1px)}.btn-secondary{background:#e0f2fe;color:#075985}.btn-success{background:#dcfce7;color:#166534}.btn-warning{background:#fef3c7;color:#92400e}.btn-danger{background:#fee2e2;color:#991b1b}.btn-ghost{background:#f8fafc;color:#334155;border:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.field.wide{grid-column:span 2}.field.full{grid-column:1/-1}.field label{font-size:13px;color:#475569;font-weight:800;display:block;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:13px;padding:12px 13px;font:inherit;background:#fff;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 4px rgba(96,165,250,.15)}.field textarea{min-height:44px;resize:vertical}.form-actions{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap}.filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.filter .field{min-width:170px}.table-wrap{overflow:auto;border-radius:16px;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;background:white;min-width:850px}th,td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}th{background:#f8fafc;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#475569;text-align:center}td{text-align:center}td.text-left{text-align:left}td.num{text-align:right;font-variant-numeric:tabular-nums}td.actions-cell{text-align:center}th.client-sortable{cursor:pointer}.sort-link{display:inline-flex;align-items:center;justify-content:center;gap:5px;color:#334155}.sort-link:hover{color:#2563eb}.sort-arrow{font-size:12px;color:#2563eb}.row-code{font-family:Consolas,monospace;font-weight:900;color:#0f172a;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;padding:5px 8px;display:inline-block}tr:hover td{background:#f8fafc}.badge{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900}.badge-ok{background:#dcfce7;color:#166534}.badge-warn{background:#fef3c7;color:#92400e}.badge-bad{background:#fee2e2;color:#991b1b}.badge-info{background:#e0f2fe;color:#075985}.legend{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.alert{border-radius:14px;padding:14px 16px;margin-bottom:18px;font-weight:700}.alert-success{background:#dcfce7;color:#166534}.alert-danger{background:#fee2e2;color:#991b1b}.alert-info{background:#dbeafe;color:#1d4ed8}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#dbeafe,transparent 35%),linear-gradient(135deg,#0f172a,#1e293b)}.login-card{width:min(440px,92vw);background:white;border-radius:28px;padding:34px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.login-card h1{margin:0 0 8px}.login-card p{color:var(--muted);margin:0 0 22px}.login-logo{width:62px;height:62px;border-radius:20px;background:linear-gradient(135deg,#38bdf8,#2563eb);display:grid;place-items:center;color:white;font-weight:900;font-size:20px;margin-bottom:18px}.note{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:16px;padding:14px;color:#475569}.bar{height:9px;background:#e2e8f0;border-radius:99px;overflow:hidden}.bar span{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#0f766e);border-radius:99px}.actions{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}.empty{padding:28px;text-align:center;color:var(--muted)}.thumb{width:64px;height:48px;object-fit:cover;border-radius:10px;border:1px solid #cbd5e1;background:#f8fafc}.preview-current{margin-top:8px;display:flex;align-items:center;gap:10px}.check-col{width:44px}.batch-pay{position:sticky;bottom:0;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 -12px 35px rgba(15,23,42,.08);margin-top:16px}.pill{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:800;color:#334155}
@media(max-width:1200px){.topbar{grid-template-columns:auto 1fr;}.top-search{grid-column:1/-1}.userbox{position:absolute;right:18px;top:16px}.top-title{padding-right:190px}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sidebar{transform:translateX(-105%);transition:.25s}.sidebar.open{transform:translateX(0)}.main{margin-left:0;width:100%}.hamburger{display:block}.topbar{grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:14px}.userbox{display:none}.top-title{padding-right:0}.top-search{grid-column:1/-1}.content{padding:18px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.topbar h1{font-size:22px}}


/* === Logo PNG/SVG proporsional v3 === */
.brand-logo,.login-logo{background:#fff!important;border:1px solid rgba(226,232,240,.18);overflow:hidden;display:flex!important;align-items:center!important;justify-content:center!important;padding:4px!important;color:#0f172a!important;box-shadow:0 10px 25px rgba(15,23,42,.12)}
.brand-logo img,.login-logo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.brand-logo span{font-weight:900;color:#1d4ed8}.login-logo{border-color:#e2e8f0}.login-logo img{max-width:100%;max-height:100%}
.table-wrap table th,.table-wrap table td{line-height:1.35}.table-wrap table th{vertical-align:middle}.table-wrap table td{vertical-align:middle}.table-wrap table td .badge,.table-wrap table td .row-code{vertical-align:middle}
.calc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.calc-box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}.calc-box label{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;font-weight:900}.calc-box .big{font-size:22px;font-weight:900;margin-top:6px}.calc-box .formula{margin-top:8px;color:#64748b;font-size:12px;line-height:1.45}.calc-box.highlight{background:#f0fdf4;border-color:#bbf7d0}.calc-box.warn{background:#fffbeb;border-color:#fde68a}
.calc-grid-investor{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1200px){.calc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.calc-grid{grid-template-columns:1fr}}
.role-list{display:grid;gap:10px}.role-item{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.role-item.active{border-color:#93c5fd;background:#eff6ff}.role-item p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.permission-check{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.permission-check input{margin-top:4px}.permission-check small{display:block;color:var(--muted);font-size:12px;line-height:1.4;margin-top:3px}.inline-role-form{display:flex;gap:8px;justify-content:center;align-items:center}.inline-role-form select{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}
.access-list{display:grid;gap:10px}.access-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.access-row small{display:block;color:var(--muted);font-size:12px;line-height:1.4;margin-top:3px}.access-row select{border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:#fff}.toggle-line{display:flex!important;align-items:center;gap:8px;margin-top:10px;color:#334155!important}.toggle-line input{width:auto!important}
.field-help{display:block;margin-top:7px;color:var(--muted);line-height:1.4}
.field-disabled{opacity:.62}.field-disabled select{background:#f1f5f9;color:#64748b;cursor:not-allowed}
@media(max-width:760px){.permission-grid{grid-template-columns:1fr}.inline-role-form{flex-direction:column;align-items:stretch}}
@media(max-width:760px){.access-row{grid-template-columns:1fr}}

/* === Responsive polish v4 === */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.topbar{background:rgba(92, 166, 240, 0.92);box-shadow:0 8px 24px rgba(15,23,42,.05)}
.topbar h1{line-height:1.15;letter-spacing:0}
.card{transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease}
.card:hover{border-color:#b8c7dc;box-shadow:0 28px 72px rgba(15,23,42,.18);transform:translateY(-2px)}
.field input,.field select,.field textarea{min-height:46px}
.field select{appearance:auto}
.filter .btn,.form-actions .btn,.title-actions .btn{min-height:38px}
.table-wrap{background:#fff;scrollbar-width:thin;scrollbar-color:#94a3b8 #e2e8f0}
.table-wrap::-webkit-scrollbar{height:10px;width:10px}
.table-wrap::-webkit-scrollbar-track{background:#e2e8f0;border-radius:99px}
.table-wrap::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:99px;border:2px solid #e2e8f0}
tbody tr:last-child td{border-bottom:0}
.actions .btn{white-space:nowrap}

@media(max-width:1024px){
    .content{padding:22px}
    .card{padding:18px;border-radius:16px}
    .filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
    .filter .field{min-width:0}
    .filter .btn{width:100%}
    .title-actions{justify-content:flex-start}
}

@media(max-width:760px){
    body{font-size:14px;background:#eef3f8}
    .sidebar{width:min(300px,86vw);box-shadow:18px 0 50px rgba(15,23,42,.22)}
    .main{min-width:0}
    .topbar{
        grid-template-columns:auto 1fr;
        position:sticky;
        padding:12px 14px;
        gap:10px;
        background:rgba(99, 151, 204, 0.96);
    }
    .hamburger{
        width:42px;
        height:42px;
        padding:0;
        display:grid;
        place-items:center;
        border:1px solid var(--line);
        box-shadow:0 8px 20px rgba(15,23,42,.08);
    }
    .top-title{min-width:0;align-self:center}
    .topbar h1{
        font-size:19px;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    .top-search{
        grid-column:1/-1;
        border-radius:14px;
        padding:5px;
        box-shadow:0 8px 20px rgba(15,23,42,.06);
    }
    .top-search input{min-width:0;font-size:14px}
    .top-search button{padding:9px 12px;border-radius:10px}
    .content{padding:14px}
    .grid{gap:14px}
    .card{
        padding:15px;
        border-radius:16px;
        box-shadow:0 10px 24px rgba(15,23,42,.07);
    }
    .card-title{
        align-items:flex-start;
        flex-direction:column;
        gap:10px;
        margin-bottom:12px;
    }
    .card-title h2{font-size:19px;line-height:1.2}
    .card-title h3{font-size:17px;line-height:1.2}
    .card-title .muted,.muted{font-size:13px}
    .title-actions{width:100%;gap:7px}
    .title-actions .btn{flex:1 1 auto}
    .form-grid{gap:12px}
    .field label{font-size:12px;margin-bottom:6px}
    .field input,.field select,.field textarea{
        border-radius:12px;
        padding:11px 12px;
        font-size:14px;
    }
    .field textarea{min-height:76px}
    .filter{
        display:grid;
        grid-template-columns:1fr;
        gap:11px;
        width:100%;
    }
    .filter .field{width:100%;min-width:0}
    .filter .btn,.filter a.btn{width:100%;min-height:42px}
    .form-actions{display:grid;grid-template-columns:1fr;gap:8px}
    .form-actions .btn{width:100%}
    .kpi .value{font-size:23px}
    .calc-box{border-radius:14px;padding:14px}
    .calc-box .big{font-size:20px}
    .calc-box .formula{font-size:12px}
    .table-wrap{
        margin-left:-2px;
        margin-right:-2px;
        border-radius:14px;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }
    table{min-width:720px}
    th,td{padding:10px 11px;font-size:13px}
    th{font-size:11px;letter-spacing:0}
    .actions{gap:6px;justify-content:flex-start}
    .actions .btn{padding:7px 9px;font-size:12px}
    td.actions-cell{min-width:150px}
    .row-code{font-size:12px;padding:4px 7px}
    .badge{font-size:11px;padding:5px 8px}
    .thumb{width:58px;height:44px;border-radius:9px}
    .preview-current{align-items:flex-start;flex-direction:column}
    .note{font-size:13px;border-radius:14px;padding:12px}
    .pill{font-size:12px}
    .login-card{padding:24px;border-radius:22px}
    .permission-check,.role-item,.access-row{border-radius:13px;padding:11px}
}

.chart-wrap{width:100%;min-height:320px;border:1px solid rgba(148,163,184,.24);border-radius:14px;background:rgba(255,255,255,.82);padding:12px;overflow:hidden;position:relative}
.chart-wrap canvas{display:block;width:100%;height:320px}
.chart-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:12px;color:#475569;font-size:13px;font-weight:800}
.chart-legend span{display:inline-flex;align-items:center;gap:7px}
.chart-legend i{width:12px;height:12px;border-radius:999px;display:inline-block}
.chart-tooltip{position:absolute;z-index:5;min-width:220px;gap:6px;background:rgba(15,23,42,.94);color:#fff;border:1px solid rgba(255,255,255,.16);box-shadow:0 18px 45px rgba(15,23,42,.24);border-radius:12px;padding:10px 12px;font-size:12px;pointer-events:none}
.chart-tooltip>strong{font-size:13px;margin-bottom:2px}
.chart-tooltip div{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#dbeafe}
.chart-tooltip span{display:inline-flex;align-items:center;gap:7px}
.chart-tooltip i{width:9px;height:9px;border-radius:999px;display:inline-block}
.chart-tooltip b{color:#fff}
.chart-tooltip-active{color:#fff!important}
.check-toggle{display:flex!important;align-items:center;gap:8px;border:1px solid var(--line);border-radius:13px;background:#fff;padding:11px 12px;margin:0!important;color:#334155!important;text-transform:none!important;letter-spacing:0!important}
.check-toggle input{width:auto!important;box-shadow:none!important}
.field-disabled{opacity:.52}
.cart-line>strong{white-space:nowrap;color:#0f766e}
@media(max-width:760px){.chart-wrap{min-height:280px;padding:8px}.chart-wrap canvas{height:280px}.cart-line>strong{width:100%;text-align:left}}

@media(max-width:430px){
    .content{padding:10px}
    .card{padding:13px;border-radius:14px}
    .topbar{padding:10px}
    .topbar h1{font-size:18px}
    .btn{padding:9px 11px;border-radius:11px}
    .btn-xs{padding:7px 8px}
    table{min-width:680px}
    th,td{padding:9px 10px}
    .calc-grid{gap:10px}
    .summary{grid-template-columns:1fr}
}

/* === Sparepart store === */
.spare-kpis{margin-bottom:18px}.spare-forms{margin-bottom:18px}.compact-form{grid-template-columns:repeat(2,minmax(0,1fr))}.spare-store-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.cart-panel{position:sticky;top:112px}.spare-catalog .card-title{align-items:flex-start}.spare-catalog .filter{justify-content:flex-end}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.product-card{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;border:2px solid var(--line);border-radius:8px;background:#fff;padding:14px;min-height:148px}.product-card.stock-safe{border-color:#86efac;background:#f0fdf4}.product-card.stock-warning{border-color:#facc15;background:#fffbeb}.product-card.stock-out{border-color:#fca5a5;background:#fff1f2}.product-thumb{width:56px;height:56px;border-radius:8px;background:#e0f2fe;color:#075985;display:grid;place-items:center;font-weight:900}.product-body{min-width:0}.product-body h3{margin:0 0 8px;font-size:16px;line-height:1.25}.product-meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.product-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.product-actions input{min-width:0;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit}.product-actions button:disabled,.product-actions input:disabled,.cart-panel button:disabled{opacity:.55;cursor:not-allowed;transform:none}.product-empty{grid-column:1/-1}.cart-lines{display:grid;gap:10px;margin-bottom:14px}.cart-line{display:grid;grid-template-columns:minmax(0,1fr) 86px auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff}.cart-line strong{display:block;line-height:1.25}.cart-line small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.cart-line input{width:100%;border:1px solid var(--line);border-radius:10px;padding:8px 9px;font:inherit}.cart-fields{margin-top:12px}.cart-total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:12px;margin-top:12px;font-weight:900}.cart-total span{color:var(--muted)}.cart-total strong{font-size:20px}
@media(max-width:1280px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spare-store-layout{grid-template-columns:1fr}.cart-panel{position:static}}
@media(max-width:760px){.compact-form{grid-template-columns:1fr}.product-grid{grid-template-columns:1fr}.product-card{grid-template-columns:48px minmax(0,1fr);padding:12px}.product-thumb{width:48px;height:48px}.spare-catalog .filter{width:100%}.cart-line{grid-template-columns:1fr 78px auto}.cart-line .btn{padding:7px 8px}.cart-total strong{font-size:18px}}
@media(max-width:430px){.cart-line{grid-template-columns:1fr}.cart-line input,.cart-line .btn{width:100%}.product-actions{grid-template-columns:1fr}.product-actions .btn{width:100%}}
@media(max-width:430px){.file-source-modal{align-items:flex-end;padding:0}.file-source-card{width:100%;border-radius:18px 18px 0 0;padding:22px 16px}.file-source-actions{grid-template-columns:1fr}.file-source-card h2{font-size:20px}}

/* === Professional login refresh === */
.login-page{min-height:100vh;display:grid;place-items:center;padding:28px;background:linear-gradient(135deg,#08111f 0%,#10233a 44%,#f1f5f9 44%,#e2e8f0 100%)}.login-shell{width:min(1040px,94vw);display:grid;grid-template-columns:minmax(0,1.08fr) 430px;background:rgba(255,255,255,.92);border:1px solid rgba(226,232,240,.9);border-radius:24px;box-shadow:0 34px 95px rgba(15,23,42,.28);overflow:hidden}.login-brand-panel{position:relative;min-height:590px;padding:44px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:linear-gradient(145deg,rgba(15,23,42,.96),rgba(14,116,144,.88)),url('logo.png');background-size:cover;background-position:center}.login-brand-panel:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 42%,rgba(0,0,0,.22));pointer-events:none}.login-brand-panel>*{position:relative}.login-page .login-logo{width:128px!important;height:128px!important;border-radius:26px!important;padding:10px!important;margin:0 0 34px!important;background:#fff!important;border:1px solid rgba(255,255,255,.6)!important;box-shadow:0 24px 58px rgba(0,0,0,.28)!important}.login-page .login-logo img{width:100%;height:100%;object-fit:contain}.login-eyebrow{margin:0 0 10px!important;color:#bae6fd!important;font-size:13px!important;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.login-brand-panel h1{margin:0;font-size:42px;line-height:1.05;letter-spacing:0}.login-brand-panel p{max-width:520px;margin:14px 0 0;color:#dbeafe;line-height:1.7}.login-feature-list{display:flex;gap:10px;flex-wrap:wrap}.login-feature-list span{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900;color:#eef6ff}.login-page .login-card{width:auto;background:#fff;border-radius:0;padding:48px 42px;box-shadow:none;display:flex;flex-direction:column;justify-content:center}.login-form-head h2{margin:0 0 8px;font-size:28px;letter-spacing:0;color:#0f172a}.login-form-head p{margin:0 0 26px;color:#64748b;line-height:1.55}.login-form{display:grid;gap:16px}.login-form .field label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#334155}.login-form .field input{min-height:50px;border-radius:12px;background:#f8fafc;border-color:#d7e0ea}.login-form .field input:focus{background:#fff;border-color:#0284c7;box-shadow:0 0 0 4px rgba(2,132,199,.14)}.login-submit{width:100%;min-height:50px;margin-top:2px;border-radius:12px;background:linear-gradient(135deg,#0f766e,#2563eb);box-shadow:0 16px 34px rgba(37,99,235,.22)}.login-submit:hover{transform:translateY(-2px);filter:brightness(1.02)}.login-note{margin-top:24px;display:grid;gap:6px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:14px;color:#475569;font-size:12px}.login-note b{color:#0f172a;font-size:13px}.login-note span{font-family:Consolas,monospace}.login-page .alert{margin-bottom:18px;border-radius:12px}
@media(max-width:900px){.login-page{padding:18px;background:#eef3f8}.login-shell{grid-template-columns:1fr}.login-brand-panel{min-height:auto;padding:30px}.login-page .login-logo{width:104px!important;height:104px!important;margin-bottom:22px!important}.login-brand-panel h1{font-size:32px}.login-feature-list{margin-top:24px}.login-page .login-card{padding:32px 26px}}
@media(max-width:430px){.login-page{padding:10px}.login-shell{width:100%;border-radius:18px}.login-brand-panel{padding:24px}.login-page .login-logo{width:92px!important;height:92px!important}.login-brand-panel h1{font-size:28px}.login-page .login-card{padding:26px 18px}.login-form-head h2{font-size:24px}.login-note{font-size:11px}}

/* Login logo without frame */
.login-page .login-logo{width:156px!important;height:156px!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;border-radius:0!important}
.login-page .login-logo img{object-fit:contain!important}
@media(max-width:900px){.login-page .login-logo{width:132px!important;height:132px!important}}
@media(max-width:430px){.login-page .login-logo{width:112px!important;height:112px!important}}

/* Login blue tone */
.login-page{background:linear-gradient(135deg,#082f60 0%,#0f63b7 42%,#e8f2ff 42%,#f4f8ff 100%)}
.login-brand-panel{background:linear-gradient(145deg,rgba(7,47,103,.96),rgba(14,116,196,.9)),url('logo.png')!important}
.login-eyebrow{color:#dbeafe!important}
.login-brand-panel p{color:#e0f2fe}
.login-feature-list span{background:rgba(219,234,254,.16);border-color:rgba(219,234,254,.34);color:#f8fbff}
.login-submit{background:linear-gradient(135deg,#0ea5e9,#1d4ed8);box-shadow:0 16px 34px rgba(29,78,216,.26)}
.login-form .field input:focus{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.15)}

/* Login photo background: place the attached photo at assets/login-bg.jpg */
.login-page{position:relative;overflow:hidden;background:#082f60}
.login-page:before{content:"";position:fixed;inset:-22px;background-image:url('login-bg.jpg');background-size:cover;background-position:center;filter:blur(14px) saturate(1.45) contrast(1.08);transform:scale(1.06);z-index:0}
.login-page:after{content:"";position:fixed;inset:0;background:linear-gradient(135deg,rgba(3,37,76,.72),rgba(14,116,196,.48) 48%,rgba(232,242,255,.52));z-index:0}
.login-shell{position:relative;z-index:1;background:rgba(255,255,255,.9);backdrop-filter:blur(18px)}
.login-brand-panel{background:linear-gradient(145deg,rgba(7,47,103,.84),rgba(14,116,196,.64))!important}

/* === Blue glass app theme === */
body:not(.login-page):not(.report-page){background:#e8f2ff;position:relative;overflow-x:hidden}
body:not(.login-page):not(.report-page):before{content:"";position:fixed;inset:-24px;background-image:url('login-bg.jpg');background-size:cover;background-position:center;filter:blur(16px) saturate(1.35) contrast(1.05);transform:scale(1.06);opacity:.42;z-index:-2}
body:not(.login-page):not(.report-page):after{content:"";position:fixed;inset:0;background:linear-gradient(135deg,rgba(8,47,96,.72),rgba(14,116,196,.34) 42%,rgba(244,248,255,.82));z-index:-1}
.app{position:relative;z-index:1}
.sidebar{background:linear-gradient(180deg,rgba(7,47,103,.96),rgba(15,23,42,.98));box-shadow:18px 0 46px rgba(8,47,96,.28)}
.nav-link:hover,.nav-link.active{background:rgba(219,234,254,.14);color:#fff}.nav-link.active{box-shadow:inset 3px 0 0 #7dd3fc}
.main{background:transparent}.topbar{background:rgba(239,246,255,.78)!important;backdrop-filter:blur(20px);border-bottom:1px solid rgba(191,219,254,.75);box-shadow:0 14px 34px rgba(8,47,96,.12)}
.topbar h1{color:#082f60}.top-search,.userbox,.hamburger{background:rgba(255,255,255,.82);border-color:rgba(191,219,254,.9);box-shadow:0 14px 32px rgba(8,47,96,.1)}
.top-search button{background:linear-gradient(135deg,#0ea5e9,#1d4ed8)}
.content{background:transparent}.card{background:rgba(255,255,255,.88);backdrop-filter:blur(16px);border-color:rgba(191,219,254,.86);box-shadow:0 26px 66px rgba(8,47,96,.14)}
.card:hover{border-color:rgba(59,130,246,.5);box-shadow:0 30px 78px rgba(8,47,96,.19)}
.card-title h2,.card-title h3{color:#0f376d}.kpi:after{background:rgba(14,165,233,.12)}
.btn-primary{background:linear-gradient(135deg,#0ea5e9,#1d4ed8);box-shadow:0 12px 26px rgba(29,78,216,.18)}.btn-secondary{background:#dbeafe;color:#075985}.btn-ghost{background:rgba(248,250,252,.86);border-color:#bfdbfe;color:#1e3a8a}
.field input,.field select,.field textarea{background:rgba(255,255,255,.92);border-color:#bfdbfe}.field input:focus,.field select:focus,.field textarea:focus{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.14)}
.table-wrap{border-color:rgba(191,219,254,.9);box-shadow:0 16px 38px rgba(8,47,96,.08)}table{background:rgba(255,255,255,.94)}th{background:#eff6ff;color:#1e3a8a}tr:hover td{background:#f0f7ff}
.note{background:rgba(248,250,252,.86);border-color:#93c5fd}.pill{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a}

/* Sidebar account + mobile overflow fixes */
.sidebar{display:flex;flex-direction:column}.nav{flex:1}.sidebar-user{margin-top:18px;padding-top:16px;border-top:1px solid rgba(219,234,254,.18);display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:center}.sidebar-user-meta{min-width:0}.sidebar-user-meta strong,.sidebar-user-meta small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-meta small{color:#bfdbfe}.sidebar-logout{grid-column:1/-1;margin-top:8px;background:rgba(239,68,68,.14)!important;color:#fee2e2!important}.sidebar-logout:hover{background:rgba(239,68,68,.24)!important;color:#fff!important}
@media(max-width:760px){
    html,body{max-width:100%;overflow-x:hidden}
    .app,.main,.content,.grid,.card,.card-title,.filter,.form-grid,.spare-store-layout,.product-grid,.calc-grid,.summary,.table-wrap{max-width:100%;min-width:0}
    .content{width:100%;overflow-x:hidden;padding-left:10px;padding-right:10px}
    .grid,.grid-2,.grid-3,.grid-4,.calc-grid,.summary{grid-template-columns:minmax(0,1fr)!important}
    .grid>*,.form-grid>*,.spare-store-layout>*,.product-grid>*,.calc-grid>*,.summary>*{min-width:0}
    .card{width:100%;margin-left:0!important;margin-right:0!important;transform:none!important}
    .card:hover,.product-card:hover{transform:none!important}
    .table-wrap{width:100%;margin-left:0!important;margin-right:0!important;overflow-x:auto}
    .filter,.form-actions,.title-actions,.actions{max-width:100%;min-width:0}
    .btn,.btn-xs{max-width:100%;white-space:normal;text-align:center;line-height:1.25}
    .kpi .value,.calc-box .big,.card-title h2,.card-title h3{overflow-wrap:anywhere}
    .topbar{max-width:100%;overflow:hidden}
    .top-search{min-width:0;width:100%}
}

.spare-actions{margin-bottom:18px}.product-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.product-card:hover{transform:translateY(-3px);box-shadow:0 22px 55px rgba(15,23,42,.18)}.product-thumb{overflow:hidden}.product-thumb img{width:100%;height:100%;object-fit:cover;display:block}.product-thumb span{display:grid;place-items:center;width:100%;height:100%}.product-spec{margin:0 0 8px;color:#334155;font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-actions{grid-template-columns:minmax(76px,1fr) auto auto auto auto}.inline-delete-form{display:inline-flex;margin:0}.inline-delete-form .btn{height:100%}.doc-chip-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.modal-open{overflow:hidden}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;align-items:center;justify-content:center;padding:18px;z-index:80}.modal-backdrop.open{display:flex}.modal-card{width:min(720px,96vw);max-height:92vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 28px 80px rgba(15,23,42,.24);padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.modal-head h2{margin:0;font-size:21px}.modal-head p{margin:4px 0 0}.modal-card .preview-current{min-height:0}.modal-card .form-actions{justify-content:flex-end}
.summary-table{min-width:0;width:100%;table-layout:auto}.summary-table th,.summary-table td{white-space:normal;text-align:left}.summary-table .num{text-align:right;white-space:normal}.stockpile-summary-card{overflow:hidden}.doc-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px}.doc-chip .thumb{width:56px;height:42px}.doc-chip .btn{min-height:32px}
.file-source-modal{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.48);backdrop-filter:blur(6px)}.file-source-modal.open{display:flex}.file-source-card{position:relative;width:min(420px,94vw);background:rgba(255,255,255,.96);border:1px solid rgba(191,219,254,.9);border-radius:16px;box-shadow:0 28px 80px rgba(15,23,42,.28);padding:24px}.file-source-card h2{margin:0 34px 8px 0;color:#0f376d;font-size:22px;line-height:1.2}.file-source-card p{margin:0 0 18px;color:#64748b;line-height:1.55}.file-source-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.file-source-actions .btn{width:100%;min-height:46px}.file-source-close{position:absolute;right:12px;top:12px;width:34px;height:34px;border:0;border-radius:10px;background:#eff6ff;color:#1e3a8a;font-size:22px;line-height:1;cursor:pointer}
@media(max-width:430px){.file-source-modal{align-items:flex-end;padding:0}.file-source-card{width:100%;border-radius:18px 18px 0 0;padding:22px 16px}.file-source-actions{grid-template-columns:1fr}.file-source-card h2{font-size:20px}}
@media(max-width:760px){.product-actions{grid-template-columns:1fr 1fr}.product-actions input{grid-column:1/-1}.inline-delete-form,.inline-delete-form .btn{width:100%}.modal-backdrop{align-items:flex-end;padding:0}.modal-card{width:100%;max-height:88vh;border-radius:16px 16px 0 0;padding:16px}.modal-card .form-actions{justify-content:stretch}}
@media(max-width:430px){.product-actions{grid-template-columns:1fr}.product-actions input,.product-actions .btn{width:100%}}
