*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f4f6f9;color:#1a2940}.top{background:#1a2940;color:#fff;padding:16px 28px;display:flex;align-items:center;gap:14px}.top h1{font-size:20px;font-weight:700;letter-spacing:.5px}.top .tag{font-size:12px;opacity:.7;background:#2a3f5f;padding:3px 8px;border-radius:6px}.wrap{max-width:1100px;margin:24px auto;padding:0 20px}.cards{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-bottom:28px}.card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.card .n{font-size:30px;font-weight:800;color:#1a2940}.card .l{font-size:13px;color:#6b7a90;margin-top:4px}.sec{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.08);margin-bottom:24px}.sec h2{font-size:15px;margin-bottom:14px;color:#2a3f5f}table{width:100%;border-collapse:collapse;font-size:13px}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid #eef1f5}th{color:#6b7a90;font-weight:600}input{padding:10px 12px;border:1px solid #d4dae3;border-radius:8px;width:100%;font-size:14px}.badge{background:#e8f5e9;color:#2e7d32;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600}.muted{color:#9aa7b8}.subnav{background:#fff;border-bottom:1px solid #e4e9f0;padding:0 28px;display:flex;align-items:center;gap:4px;box-shadow:0 1px 2px rgba(0,0,0,.04)}.subnav a{padding:14px 16px;color:#2a3f5f;text-decoration:none;font-size:14px;font-weight:500;border-bottom:3px solid transparent}.subnav a:hover{border-bottom-color:#5b9bd5}.subnav.office a:hover{border-bottom-color:#2e7d32}.subnav .spacer{flex:1 1}.subnav .who{font-size:13px;color:#6b7a90;margin-right:12px}.subnav .lo{background:#eef1f5;border:none;padding:7px 14px;border-radius:7px;cursor:pointer;color:#c0392b;font-weight:600}.loginwrap{min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center}.loginbox{background:#fff;padding:34px;border-radius:14px;box-shadow:0 4px 20px rgba(0,0,0,.1);width:340px;display:flex;flex-direction:column;gap:14px}.loginbox h2{color:#1a2940;font-size:20px;margin-bottom:6px}.loginbox button{background:#1a2940;color:#fff;border:none;padding:12px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.loginbox .err{color:#c0392b;font-size:13px}a{color:#2a6fb0}.btn{background:#1a2940;color:#fff;border:none;padding:10px 18px;border-radius:8px;cursor:pointer;font-weight:600}.btn:disabled{opacity:.5}.landing{max-width:860px;margin:60px auto;padding:0 20px;text-align:center}.hero h1{font-size:46px;color:#1a2940;letter-spacing:1px}.hero p{color:#6b7a90;margin-top:6px;font-size:15px}.choices{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px;margin:48px 0}.choice{display:block;background:#fff;border-radius:16px;padding:34px;text-decoration:none;color:#1a2940;box-shadow:0 2px 10px rgba(0,0,0,.07);border:2px solid transparent;transition:.15s}.choice:hover{border-color:#5b9bd5;transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.12)}.choice.office:hover{border-color:#2e7d32}.choice .ico{font-size:44px;margin-bottom:14px}.choice h3{font-size:20px;margin-bottom:8px}.choice p{color:#6b7a90;font-size:14px;min-height:40px}.choice .go{display:inline-block;margin-top:14px;font-weight:700;color:#2a6fb0}.choice.office .go{color:#2e7d32}.foot{color:#9aa7b8;font-size:12px;margin-top:30px}@media(max-width:640px){.choices{grid-template-columns:1fr}}.ohdr{background:#fff;border-bottom:1px solid #e4e9f0;display:flex;align-items:center;justify-content:space-between;padding-right:20px;position:relative;box-shadow:0 1px 2px rgba(0,0,0,.04)}.omenu{flex:1 1}.obar{display:flex;flex-wrap:wrap}.obar,.oitem{align-items:center}.oitem{background:none;padding:13px 10px;font-size:13px;font-weight:600;color:#2a3f5f;cursor:pointer;text-decoration:none;border:none;border-bottom:3px solid transparent;display:inline-flex;gap:5px}.oitem.on,.oitem:hover{border-bottom-color:#5b9bd5;background:#f6f9fc}.oitem .car{opacity:.4;font-size:9px}.oitem.ai{color:#7c3aed}.oitem.dim{color:#9aa7b8;cursor:default}.opanel{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid #e4e9f0;box-shadow:0 10px 28px rgba(0,0,0,.13);z-index:50;padding:20px 26px}.ocols{display:flex;flex-wrap:wrap;gap:28px;max-height:62vh;overflow:auto}.ocol{min-width:185px}.ohead{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#9aa7b8;font-weight:700;margin:6px 0 4px}.oleaf{display:block;padding:3px 0;color:#2a3f5f;text-decoration:none;font-size:13px}.oleaf:hover{color:#2a6fb0}.oleaf.head{font-weight:700}.ouser{display:flex;align-items:center;gap:10px;font-size:13px;color:#6b7a90;white-space:nowrap}.modgrid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:18px;gap:18px;margin-top:8px}.modcard{background:#fff;border-radius:12px;padding:20px;text-decoration:none;color:#1a2940;box-shadow:0 1px 3px rgba(0,0,0,.08);transition:.15s}.modcard:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(0,0,0,.12)}.modcard .ico{width:46px;height:46px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:12px}.modcard h3{font-size:16px}.modcard .cnt{display:inline-block;margin-top:12px;font-size:12px;font-weight:700;color:#5b9bd5;background:#eef5fb;padding:3px 10px;border-radius:10px}.mcols{display:flex;flex-wrap:wrap;gap:28px}.mcol{min-width:200px}@media(max-width:900px){.modgrid{grid-template-columns:repeat(2,1fr)}}.office-app{--bg:#f7f9fc;--card:#fff;--line:#e5e9f0;--ink:#0f2440;--mut:#64748b;--acc:#2563eb;--acc-soft:#eff4ff;background:var(--bg);min-height:100vh;color:#1e293b}.office-app a{text-decoration:none;color:inherit}.office-app .topbar{background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;min-height:58px;padding:6px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.office-app .brand{font-size:19px;font-weight:800;letter-spacing:.5px;color:var(--ink);margin-right:6px;white-space:nowrap}.office-app .brand b{color:var(--acc)}.office-app .brand span{font-size:10px;font-weight:700;color:var(--acc);background:var(--acc-soft);padding:3px 8px;border-radius:20px;margin-left:6px;vertical-align:middle;letter-spacing:.5px}.office-app .mainmenu{list-style:none;display:flex;align-items:center;gap:1px;margin-left:22px;flex:1 1;flex-wrap:wrap}.office-app .mainmenu>li{position:relative}.office-app .mainmenu>li>a{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:8px;font-size:13px;font-weight:500;color:var(--mut);cursor:pointer;transition:.14s;white-space:nowrap}.office-app .mainmenu>li>a .ic{font-size:14px;opacity:.85}.office-app .mainmenu>li:hover>a{background:var(--acc-soft);color:var(--acc)}.office-app .mainmenu>li.dis>a{opacity:.35;cursor:not-allowed}.office-app .dd{list-style:none;position:absolute;top:calc(100% + 4px);left:0;background:var(--card);min-width:240px;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(15,36,64,.12);padding:7px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.16s;z-index:200}.office-app .mainmenu>li:hover .dd{opacity:1;visibility:visible;transform:translateY(0)}.office-app .dd>li{position:relative}.office-app .dd>li>a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border-radius:7px;font-size:13px;color:#334155;cursor:pointer}.office-app .dd>li>a:hover{background:var(--acc-soft);color:var(--acc)}.office-app .dd>li>a .arr{opacity:.5;font-size:11px}.office-app .ddlogout{background:none;border:none;font:inherit;color:#dc2626;cursor:pointer;padding:0;font-weight:600}.office-app .fly{list-style:none;position:absolute;left:calc(100% + 4px);top:-7px;background:var(--card);min-width:230px;max-height:70vh;overflow:auto;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(15,36,64,.14);padding:7px;opacity:0;visibility:hidden;transform:translateX(6px);transition:.16s;z-index:300}.office-app .dd>li:hover .fly{opacity:1;visibility:visible;transform:translateX(0)}.office-app .fly li a{display:block;padding:7px 11px;border-radius:7px;font-size:12.5px;color:#334155}.office-app .fly li a:hover{background:var(--acc-soft);color:var(--acc)}.office-app .userbox{display:flex;align-items:center;gap:14px;margin-left:auto;font-size:13px;color:var(--mut);white-space:nowrap}.office-app .userbox .u{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--ink)}.office-app .userbox .logout{border:1px solid var(--line);color:var(--mut);padding:6px 14px;border-radius:8px;font-weight:600;font-size:12px;cursor:pointer;background:#fff;transition:.14s}.office-app .userbox .logout:hover{border-color:#fca5a5;color:#dc2626;background:#fef2f2}.office-app .content{max-width:1280px;margin:28px auto;padding:0 20px}.office-app .dash h1{font-size:22px;font-weight:700;color:var(--ink);margin-bottom:3px;letter-spacing:-.3px}.office-app .dash .sub{color:var(--mut);margin-bottom:24px;font-size:14px}.office-app .dash-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px}.office-app .dash-date{font-size:13px;color:var(--mut);background:var(--card);border:1px solid var(--line);padding:8px 14px;border-radius:10px}.office-app .stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:14px;gap:14px;margin-bottom:28px}.office-app .stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;position:relative;overflow:hidden}.office-app .stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--acc)}.office-app .stat.s-green:before{background:#16a34a}.office-app .stat.s-orange:before{background:#f59e0b}.office-app .stat.s-purple:before{background:#8b5cf6}.office-app .stat-v{font-size:25px;font-weight:800;color:var(--ink);letter-spacing:-.5px}.office-app .stat-l{font-size:12px;color:var(--mut);margin-top:3px;font-weight:500}.office-app .stat-ic{position:absolute;right:14px;top:14px;font-size:20px;opacity:.25}.office-app .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));grid-gap:16px;gap:16px}.office-app .card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;transition:.18s;position:relative}.office-app .card:hover{border-color:#c7d7f5;box-shadow:0 10px 30px rgba(37,99,235,.1);transform:translateY(-2px)}.office-app .card-ic{width:46px;height:46px;display:flex;align-items:center;justify-content:center;font-size:22px;border-radius:12px;margin-bottom:12px}.office-app .card-name{font-size:16px;font-weight:700;color:var(--ink)}.office-app .card-desc{font-size:12.5px;color:var(--mut);margin:3px 0 12px}.office-app .card-count{font-size:11px;font-weight:700;display:inline-block;padding:3px 10px;border-radius:20px}.office-app .card-sub{list-style:none;margin-top:14px;border-top:1px solid var(--line);padding-top:8px;max-height:0;overflow:hidden;transition:max-height .3s ease}.office-app .card:hover .card-sub{max-height:900px}.office-app .card-sub li a{display:flex;justify-content:space-between;align-items:center;padding:6px 9px;font-size:12.5px;color:#475569;border-radius:6px;transition:.12s}.office-app .card-sub li a:hover{background:var(--acc-soft);color:var(--acc)}.office-app .card-sub .arr{opacity:.45;font-size:10px}.office-app .bc{color:var(--mut);font-size:13px;margin-bottom:18px}.office-app .bc a{color:var(--acc)}.office-app .bc strong{color:var(--ink)}.office-app .sec-title{font-size:20px;font-weight:700;color:var(--ink);margin-bottom:18px;display:flex;align-items:center;gap:10px}.office-app .sub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:12px;gap:12px}.office-app .sub-item{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;font-size:13.5px;font-weight:600;color:var(--ink);transition:.15s;display:flex;align-items:center;gap:10px}.office-app .sub-item:hover{border-color:#c7d7f5;box-shadow:0 6px 18px rgba(37,99,235,.1);color:var(--acc);transform:translateY(-2px)}.office-app .sub-item .d{width:8px;height:8px;border-radius:50%;flex-shrink:0}.office-app .ph-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:56px;text-align:center}.office-app .ph-ic{font-size:50px;margin-bottom:16px;opacity:.85}.office-app .ph-card h2{font-size:21px;color:var(--ink);margin-bottom:8px}.office-app .ph-card p{color:var(--mut);margin-bottom:22px}.office-app .btn{display:inline-block;background:var(--acc);color:#fff;padding:10px 22px;border-radius:9px;font-weight:600;font-size:13px;border:none;cursor:pointer}.office-app .btn:hover{background:#1d4ed8}.office-app .sec{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:18px}.office-app .sec h2{font-size:16px;margin-bottom:14px;color:var(--ink)}.office-app input{padding:10px 12px;border:1px solid #d4dae3;border-radius:8px;width:100%;font-size:14px}.office-app table{width:100%;border-collapse:collapse;font-size:13px}.office-app td,.office-app th{text-align:left;padding:8px 10px;border-bottom:1px solid #eef1f5}.office-app th{color:var(--mut);font-weight:600}.office-app .badge{background:#e8f5e9;color:#2e7d32;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600}.office-app .muted{color:#9aa7b8}@media(max-width:980px){.office-app .mainmenu{display:none}}.portal-app .ptop{background:#fff;border-bottom:1px solid #e5e9f0;display:flex;align-items:center;height:58px;padding:0 20px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.portal-app .brand{font-size:19px;font-weight:800;color:#0f2440;white-space:nowrap}.portal-app .brand b{color:#2563eb}.portal-app .brand span{font-size:10px;font-weight:700;color:#2563eb;background:#eff4ff;padding:3px 8px;border-radius:20px;margin-left:6px;vertical-align:middle}.portal-app .pnav{list-style:none;display:flex;gap:2px;margin-left:24px;flex:1 1}.portal-app .pnav a{display:block;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:500;color:#64748b}.portal-app .pnav a:hover{background:#eff4ff;color:#2563eb}.portal-app .userbox{display:flex;align-items:center;gap:12px;font-size:13px;color:#64748b}.portal-app .userbox .u{font-weight:600;color:#0f2440}.portal-app .userbox .logout{border:1px solid #e5e9f0;color:#64748b;padding:6px 14px;border-radius:8px;font-weight:600;font-size:12px;cursor:pointer;background:#fff}.portal-app .userbox .logout:hover{border-color:#fca5a5;color:#dc2626}.portal-app .content{max-width:1100px;margin:24px auto;padding:0 20px}.portal-app{background:#f0f2f5;color:#333;min-height:100vh;font-family:Arial,Helvetica,sans-serif}.portal-app a{color:#2563eb;text-decoration:none}.portal-app a:hover{text-decoration:underline}.portal-app .navbar{background:#1a2940;color:#fff;padding:0 24px;display:flex;align-items:center;height:56px;box-shadow:0 2px 8px rgba(0,0,0,.3);position:-webkit-sticky;position:sticky;top:0;z-index:100}.portal-app .navbar-brand{font-size:1.25rem;font-weight:700;color:#fff;letter-spacing:1px;margin-right:32px}.portal-app .navbar-brand b{color:#f59e0b}.portal-app .nav-links{display:flex;gap:4px;flex:1 1;list-style:none}.portal-app .nav-links a{color:#cbd5e1;padding:6px 14px;border-radius:6px;font-size:.875rem;transition:.2s}.portal-app .nav-links a.active,.portal-app .nav-links a:hover{background:#2563eb;color:#fff;text-decoration:none}.portal-app .nav-right{display:flex;align-items:center;gap:16px;margin-left:auto}.portal-app .nav-user{color:#94a3b8;font-size:.875rem}.portal-app .nav-logout{background:#ef4444;color:#fff;padding:5px 14px;border-radius:6px;font-size:.875rem;border:none;cursor:pointer}.portal-app .nav-logout:hover{background:#dc2626}.portal-app .main{max-width:1200px;margin:32px auto;padding:0 16px}.portal-app .page-title{font-size:1.5rem;font-weight:700;color:#1a2940;margin-bottom:24px}.portal-app .card{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.1);padding:24px;margin-bottom:24px}.portal-app .card-title{font-size:1rem;font-weight:700;color:#1a2940;margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid #e2e8f0}.portal-app .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:16px;gap:16px;margin-bottom:24px}.portal-app .stat-card{background:#fff;border-radius:10px;padding:20px;box-shadow:0 1px 4px rgba(0,0,0,.1);border-left:4px solid #2563eb}.portal-app .stat-card.warning{border-left-color:#f59e0b}.portal-app .stat-card.danger{border-left-color:#ef4444}.portal-app .stat-card.success{border-left-color:#10b981}.portal-app .stat-label{font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.portal-app .stat-value{font-size:1.5rem;font-weight:700;color:#1a2940}.portal-app .table-wrap{overflow-x:auto}.portal-app td.act,.portal-app th.act{position:-webkit-sticky;position:sticky;right:0;white-space:nowrap;background:#fff;box-shadow:-7px 0 7px -7px rgba(15,36,64,.22)}.portal-app th.act,.portal-app tr:hover td.act{background:#f8fafc}.portal-app table{width:100%;border-collapse:collapse;font-size:.875rem}.portal-app th{background:#f8fafc;color:#475569;font-weight:600;padding:10px 12px;text-align:left;border-bottom:2px solid #e2e8f0}.portal-app td{padding:10px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.portal-app tr:hover td{background:#f8fafc}.portal-app .text-right{text-align:right}.portal-app .badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:.75rem;font-weight:600}.portal-app .badge-danger{background:#fee2e2;color:#dc2626}.portal-app .badge-warning{background:#fef3c7;color:#d97706}.portal-app .badge-success{background:#d1fae5;color:#059669}.portal-app .badge-info{background:#dbeafe;color:#2563eb}.portal-app .btn{display:inline-block;padding:6px 14px;border-radius:6px;font-size:.8rem;cursor:pointer;border:none;transition:opacity .2s}.portal-app .btn:hover{opacity:.85;text-decoration:none}.portal-app .btn-primary{background:#2563eb;color:#fff}.portal-app .btn-secondary{background:#64748b;color:#fff}.portal-app .btn-success{background:#10b981;color:#fff}.portal-app .btn-danger{background:#ef4444;color:#fff}.portal-app .btn-sm{padding:4px 10px;font-size:.75rem}.portal-app .form-group{margin-bottom:16px}.portal-app label{display:block;font-size:.875rem;font-weight:600;color:#475569;margin-bottom:6px}.portal-app input,.portal-app select,.portal-app textarea{width:100%;padding:8px 12px;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem;outline:none}.portal-app input:focus{border-color:#2563eb}.portal-app .alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:.875rem}.portal-app .alert-danger{background:#fee2e2;color:#dc2626;border:1px solid #fecaca}.portal-app .alert-success{background:#d1fae5;color:#059669;border:1px solid #a7f3d0}.portal-app .tabs{display:flex;gap:2px;border-bottom:2px solid #e2e8f0;margin-bottom:20px}.portal-app .tab-btn{padding:8px 20px;background:none;cursor:pointer;font-size:.875rem;color:#64748b;border:none;border-bottom:2px solid transparent;margin-bottom:-2px}.portal-app .tab-btn.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:600}.portal-app .progress{background:#e2e8f0;border-radius:20px;height:12px;overflow:hidden;margin:8px 0}.portal-app .progress-bar{height:100%;background:#2563eb;border-radius:20px}.portal-app .progress-bar.danger{background:#ef4444}.portal-app .progress-bar.warning{background:#f59e0b}.invoice-doc{max-width:800px;margin:20px auto;background:#fff;padding:30px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:#333}.invoice-doc .inv-header{display:flex;justify-content:space-between;margin-bottom:24px;border-bottom:3px solid #1a2940;padding-bottom:16px}.invoice-doc .company-name{font-size:22px;font-weight:700;color:#1a2940}.invoice-doc .company-sub{color:#64748b;font-size:11px;margin-top:4px}.invoice-doc .inv-title{text-align:right}.invoice-doc .inv-title h2{font-size:20px;color:#1a2940;margin-bottom:4px}.invoice-doc .inv-meta{font-size:11px;color:#64748b}.invoice-doc .addresses{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;margin-bottom:20px}.invoice-doc .addr-box h4{font-size:11px;text-transform:uppercase;color:#64748b;margin-bottom:6px;letter-spacing:.5px}.invoice-doc table{width:100%;border-collapse:collapse;margin-bottom:20px}.invoice-doc th{background:#1a2940;color:#fff;padding:8px;text-align:left;font-size:11px}.invoice-doc td{padding:7px 8px;border-bottom:1px solid #e2e8f0;font-size:11px}.invoice-doc .tr{text-align:right}.invoice-doc .totals-table{width:300px;margin-left:auto}.invoice-doc .totals-table td{border:none;padding:4px 8px}.invoice-doc .totals-table tr.grand td{font-weight:700;font-size:13px;background:#f8fafc}.invoice-doc .footer{margin-top:30px;padding-top:12px;border-top:1px solid #e2e8f0;font-size:10px;color:#64748b;text-align:center}@media print{.portal-app .navbar{display:none!important}}.portal-app .nav-burger{display:none;background:none;border:none;color:#fff;font-size:24px;margin-left:12px;cursor:pointer;padding:2px 10px;line-height:1}.no-cols{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px}.no-cols>div{min-width:0}.no-mobilebar{display:none}@media(max-width:820px){.no-cols{grid-template-columns:1fr;gap:16px}.no-mobilebar{position:fixed;bottom:0;left:0;right:0;background:#1a2940;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;z-index:50;box-shadow:0 -4px 12px rgba(0,0,0,.25)}.portal-app .main{padding-bottom:74px}}@media(max-width:768px){.portal-app .navbar{padding:0 12px}.portal-app .nav-burger{display:block}.portal-app .nav-links{display:none;position:absolute;top:56px;left:0;right:0;background:#1a2940;flex-direction:column;gap:0;padding:6px 10px 12px;box-shadow:0 10px 20px rgba(0,0,0,.35);z-index:99}.portal-app .nav-links.open{display:flex}.portal-app .nav-links a{display:block;padding:12px 10px;font-size:1rem;border-bottom:1px solid #2c3e57;border-radius:0}.portal-app .nav-right{margin-left:auto}.portal-app .nav-user{display:none}}@media(max-width:640px){.portal-app .hide-m{display:none}.portal-app .card{padding:14px}.portal-app .page-title{font-size:1.25rem;margin-bottom:14px}.portal-app td input[type=number]{width:72px}}.admin-app{font-family:Arial,sans-serif;background:#f0f2f5;color:#222;min-height:100vh}.admin-app .topbar{background:#2c3e50;color:#fff;padding:12px 24px;display:flex;justify-content:space-between;align-items:center}.admin-app .topbar .logo{font-size:18px;font-weight:700}.admin-app .topbar .logo span{color:#e74c3c;font-size:11px;margin-left:8px;letter-spacing:1px}.admin-app .topbar .r{font-size:13px;color:#ccc;display:flex;align-items:center;gap:12px}.admin-app .topbar .lo{background:none;border:1px solid #557;color:#bbb;padding:5px 12px;border-radius:5px;cursor:pointer;font-size:12px}.admin-app .container{max-width:1200px;margin:24px auto;padding:0 16px}.admin-app .card{background:#fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.1);margin-bottom:20px}.admin-app .card-header{padding:14px 20px;border-bottom:1px solid #eee;font-weight:700;font-size:15px;color:#2c3e50;display:flex;justify-content:space-between;align-items:center}.admin-app .card-body{padding:20px}.admin-app table{width:100%;border-collapse:collapse;font-size:14px}.admin-app th{background:#f5f7fa;padding:10px 12px;text-align:left;border-bottom:2px solid #dde;color:#444}.admin-app td{padding:9px 12px;border-bottom:1px solid #eee;vertical-align:middle}.admin-app tr:hover td{background:#fafbfc}.admin-app .badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:700}.admin-app .badge-green{background:#e6f4ea;color:#2e7d32}.admin-app .badge-red{background:#fdecea;color:#c62828}.admin-app .badge-orange{background:#fff4e5;color:#b26a00}.admin-app .stat-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:20px}.admin-app .stat{flex:1 1;min-width:160px;background:#fff;border-radius:8px;padding:18px;box-shadow:0 1px 4px rgba(0,0,0,.1);text-align:center}.admin-app .stat .val{font-size:32px;font-weight:700;color:#2c3e50}.admin-app .stat .lbl{font-size:13px;color:#666;margin-top:4px}.admin-app input{padding:8px 10px;border:1px solid #ccc;border-radius:5px;font-size:13px;width:100%}.admin-app label{display:block;margin-bottom:4px;font-size:13px;color:#555;font-weight:600}.admin-app .btn{display:inline-block;padding:7px 16px;background:#2c3e50;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:13px}.admin-app .btn:hover{background:#1a252f}.admin-app .btn-red{background:#c62828}.admin-app .btn-green{background:#2e7d32}.admin-app .btn-orange{background:#e65100}.admin-app .alert{padding:12px 16px;border-radius:6px;margin-bottom:16px;font-size:14px}.admin-app .alert-success{background:#e6f4ea;color:#2e7d32;border:1px solid #a5d6a7}.admin-app .alert-error{background:#fdecea;color:#c62828;border:1px solid #ef9a9a}.admin-app .grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.admin-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#2c3e50;font-family:Arial}.admin-login .box{background:#fff;border-radius:10px;padding:40px;width:100%;max-width:360px;box-shadow:0 4px 20px rgba(0,0,0,.4)}.admin-login .logo{text-align:center;font-size:22px;font-weight:700;color:#1a3c5e;margin-bottom:4px}.admin-login .sub{text-align:center;color:#e74c3c;font-size:12px;font-weight:700;letter-spacing:2px;margin-bottom:24px}.admin-login label{display:block;margin-bottom:4px;font-size:13px;color:#555;font-weight:600}.admin-login input{width:100%;padding:10px 12px;border:1px solid #ccc;border-radius:5px;font-size:14px;margin-bottom:14px}.admin-login .btn{width:100%;padding:12px;background:#2c3e50;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:15px}.admin-login .error{background:#fdecea;color:#c62828;padding:10px 12px;border-radius:5px;font-size:13px;margin-bottom:16px}.office-app .ts{padding:0}.office-app .ts-toolbar{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e5e9f0;border-radius:10px;padding:10px 14px;margin-bottom:12px}.office-app .tsbtn{background:#eef2f7;border:1px solid #d4dae3;border-radius:7px;padding:6px 12px;font-size:13px;cursor:pointer;font-weight:600}.office-app .tsbtn:disabled{opacity:.45;cursor:default}.office-app .ts-tabs{display:flex;gap:3px;margin-bottom:10px}.office-app .ts-tab{background:#e9eef5;border:1px solid #d4dae3;border-bottom:none;border-radius:8px 8px 0 0;padding:7px 14px;font-size:12.5px;cursor:pointer;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.office-app .ts-tab.on{background:#fff;font-weight:700;color:#1a2940}.office-app .cm-active-banner{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;padding:12px 16px;margin-bottom:14px;font-size:13px;color:#1e3a5f;line-height:1.5}.office-app .cm-sales-panel{padding:22px 24px}.office-app .cm-sales-heading{font-size:17px;font-weight:700;color:var(--ink);margin:0 0 6px}.office-app .cm-sales-desc{font-size:13px;color:var(--mut);margin:0 0 18px}.office-app .cm-sales-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:14px;gap:14px}.office-app .cm-field-card{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;transition:border-color .15s,box-shadow .15s}.office-app .cm-field-card:focus-within{border-color:#93c5fd;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.office-app .cm-field-label{font-size:13px;font-weight:700;color:var(--ink)}.office-app .cm-field-hint{font-size:11.5px;color:var(--mut);margin-bottom:4px;line-height:1.35}.office-app .cm-field-select{font-size:13.5px;padding:9px 11px;border-radius:8px;border:1px solid #d4dae3;background:#fff;width:100%}.office-app .cm-field-select:disabled{background:#f1f5f9;color:#64748b;cursor:not-allowed}.office-app .ts-cust{display:flex;align-items:center;gap:10px}.office-app .ts-cname{font-weight:600;color:#1a2940}.office-app .ts-subnav{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:12px;border-bottom:2px solid #e5e9f0}.office-app .ts-sub{background:none;padding:8px 14px;font-size:13px;color:#64748b;cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-2px}.office-app .ts-sub.on{color:#2563eb;border-bottom-color:#2563eb;font-weight:600}.office-app .ts-grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.office-app .ts-panel{margin-top:14px;border-top:1px solid #eef1f5;padding-top:12px}.office-app .ts-prodname{font-weight:700;color:#1a2940;margin-bottom:8px}.office-app .ts-stats{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:#475569;margin-bottom:12px}.office-app .ts-add{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.office-app .ts-add label{font-size:12px;color:#64748b;display:flex;flex-direction:column;gap:3px}.office-app .btn-green2{background:#16a34a;color:#fff;border:none}.office-app .r{text-align:right}.office-app .lo{background:#fee2e2;color:#c0392b;border:none;border-radius:6px;padding:3px 9px;cursor:pointer;font-weight:700}.note-doc{max-width:800px;margin:20px auto;background:#fff;padding:30px;font-family:Arial,sans-serif;font-size:12px;color:#222}.note-doc .nd-head{display:flex;justify-content:space-between;border-bottom:3px solid #1a2940;padding-bottom:14px;margin-bottom:18px}.note-doc .nd-co{font-size:22px;font-weight:700;color:#1a2940}.note-doc .nd-sub{font-size:11px;color:#64748b}.note-doc .nd-title{text-align:right}.note-doc .nd-title h2{font-size:18px;color:#1a2940}.note-doc .nd-meta{font-size:11px;color:#475569}.note-doc .nd-addr{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;margin-bottom:18px}.note-doc .nd-addr h4{font-size:11px;text-transform:uppercase;color:#64748b;margin-bottom:5px}.note-doc table{width:100%;border-collapse:collapse;margin-bottom:16px}.note-doc th{background:#1a2940;color:#fff;padding:7px;text-align:left;font-size:11px}.note-doc td{padding:6px 7px;border-bottom:1px solid #e2e8f0;font-size:11px}.note-doc .r{text-align:right}.note-doc .nd-tot{width:280px;margin-left:auto}.note-doc .nd-tot td{border:none;padding:3px 7px}.note-doc .nd-tot tr.g td{font-weight:700;font-size:13px;background:#f8fafc}.note-doc .nd-foot{margin-top:30px;padding-top:12px;border-top:1px solid #e2e8f0;font-size:11px;color:#475569}@media print{.office-app .topbar{display:none!important}.office-app{background:#fff}}.office-app .btn-secondary2{background:#64748b;color:#fff;border:none}.office-app .ts-typeahead{position:relative;flex:1 1;max-width:520px}.office-app .ts-typeahead input{width:100%}.office-app .ts-dd{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #d4dae3;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:60;max-height:320px;overflow:auto;margin-top:3px}.office-app .ts-dd-item{padding:8px 12px;font-size:13px;cursor:pointer;border-bottom:1px solid #f1f5f9}.office-app .ts-dd-item:hover{background:#eff4ff}.picker-app{font-family:system-ui,sans-serif;background:#0f172a;min-height:100vh;color:#e2e8f0}.picker-app .pk-top{background:#1e293b;display:flex;align-items:center;gap:10px;padding:12px 16px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.picker-app .pk-top b{font-size:18px}.picker-app .pk-top span{color:#f59e0b}.picker-app .pk-who{margin-left:auto;font-size:13px;color:#94a3b8}.picker-app .pk-lo{background:#ef4444;color:#fff;border:none;border-radius:8px;padding:7px 14px;font-weight:600}.picker-app .pk-wrap{padding:16px;max-width:680px;margin:0 auto}.picker-app h1{font-size:20px;margin-bottom:14px}.picker-app .pk-card{display:block;background:#1e293b;border-radius:14px;padding:16px;margin-bottom:12px;text-decoration:none;color:#e2e8f0;border:1px solid #334155}.picker-app .pk-card-top{display:flex;justify-content:space-between;align-items:center}.picker-app .pk-cust{font-size:17px;font-weight:600;margin-top:4px}.picker-app .pk-meta{font-size:13px;color:#94a3b8;margin-top:4px}.picker-app .pk-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}.picker-app .pk-b-grey{background:#334155;color:#cbd5e1}.picker-app .pk-b-orange{background:#7c2d12;color:#fdba74}.picker-app .pk-b-green{background:#14532d;color:#86efac}.picker-app .pk-back{color:#60a5fa;text-decoration:none;font-size:14px}.picker-app .pk-line{background:#1e293b;border-radius:12px;padding:14px;margin-bottom:10px;border:1px solid #334155;display:flex;flex-wrap:wrap;align-items:stretch;gap:12px}.picker-app .pk-line-main{flex:1 1 240px;min-width:0}.picker-app .pk-line-toggles{flex:0 0 auto;display:flex;flex-direction:column;justify-content:center;gap:8px}.picker-app .pk-desc{font-size:16px;font-weight:600;margin-bottom:10px}.picker-app .pk-qrow{display:flex;align-items:center;gap:10px}.picker-app .pk-step{width:46px;height:46px;border-radius:10px;border:none;background:#334155;color:#fff;font-size:24px;font-weight:700}.picker-app .pk-qty{width:90px;height:46px;text-align:center;font-size:20px;border-radius:10px;border:1px solid #475569;background:#0f172a;color:#fff}.picker-app .pk-ord{margin-left:auto;font-size:13px;color:#94a3b8}.picker-app .pk-actions{display:flex;gap:12px;margin-top:16px;position:-webkit-sticky;position:sticky;bottom:0;padding:12px 0;background:#0f172a}.picker-app .pk-save{background:#475569}.picker-app .pk-done,.picker-app .pk-save{flex:1 1;color:#fff;border:none;border-radius:12px;padding:16px;font-size:16px;font-weight:700}.picker-app .pk-done{background:#16a34a}.picker-app .pk-msg{color:#86efac;font-size:14px}.picker-app .pk-login{min-height:100vh;display:flex;align-items:center;justify-content:center}.picker-app .pk-login form{background:#1e293b;padding:30px;border-radius:16px;width:320px;display:flex;flex-direction:column;gap:12px;border:1px solid #334155}.picker-app .pk-login h2{font-size:20px;text-align:center}.picker-app .pk-login input{padding:14px;border-radius:10px;border:1px solid #475569;background:#0f172a;color:#fff;font-size:16px}.picker-app .pk-login button{padding:14px;border-radius:10px;border:none;background:#16a34a;color:#fff;font-size:16px;font-weight:700}.picker-app .pk-login .err{color:#fca5a5;font-size:13px}.sm-app{font-family:system-ui,sans-serif;background:#f1f5f9;min-height:100vh;color:#0f172a}.sm-app .sm-top{background:#1a2940;color:#fff;display:flex;align-items:center;gap:10px;padding:12px 16px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.sm-app .sm-top b{font-size:18px}.sm-app .sm-top span{color:#f59e0b}.sm-app .sm-who{margin-left:auto;font-size:13px;color:#cbd5e1}.sm-app .sm-lo{background:#ef4444;color:#fff;border:none;border-radius:8px;padding:7px 14px;font-weight:600}.sm-app .sm-wrap{padding:16px;max-width:760px;margin:0 auto}.sm-app .sm-tw{overflow-x:auto}.sm-app .sm-tw td.act,.sm-app .sm-tw th.act{position:-webkit-sticky;position:sticky;right:0;background:#fff;box-shadow:-7px 0 7px -7px rgba(15,36,64,.22)}.sm-app .sm-tw th.act{background:#f8fafc}@media(max-width:900px){.sm-app .sm-hide-s{display:none}}.sm-app h1{font-size:20px;margin-bottom:14px}.sm-app .sm-muted{color:#64748b}.sm-app .sm-card{display:block;background:#fff;border-radius:14px;padding:16px;margin-bottom:12px;text-decoration:none;color:#0f172a;box-shadow:0 1px 4px rgba(0,0,0,.08)}.sm-app .sm-card-top{display:flex;justify-content:space-between}.sm-app .sm-cust{font-size:17px;font-weight:600;margin-top:4px}.sm-app .sm-meta{font-size:13px;color:#64748b;margin-top:4px}.sm-app .sm-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}.sm-app .sm-b-orange{background:#fef3c7;color:#d97706}.sm-app .sm-b-blue{background:#dbeafe;color:#2563eb}.sm-app .sm-b-green{background:#d1fae5;color:#059669}.sm-app .sm-back{color:#2563eb;text-decoration:none;font-size:14px}.sm-app .sm-tbl{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;margin-top:10px}.sm-app .sm-tbl th{background:#f8fafc;padding:10px;text-align:left;font-size:12px;color:#475569}.sm-app .sm-tbl td{padding:10px;border-bottom:1px solid #f1f5f9;font-size:14px}.sm-app .sm-p,.sm-app .sm-q{width:72px;padding:8px;border:1px solid #cbd5e1;border-radius:8px;font-size:15px;text-align:right}.sm-app .sm-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.sm-app .sm-save{background:#2563eb;color:#fff;border:none;border-radius:10px;padding:12px 18px;font-size:14px;font-weight:700}.sm-app .sm-actions{display:flex;gap:10px;margin-top:16px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.sm-app .sm-rej{background:#64748b}.sm-app .sm-ok,.sm-app .sm-rej{flex:1 1;color:#fff;border:none;border-radius:12px;padding:14px 10px;font-size:14px;font-weight:700;min-height:48px}.sm-app .sm-ok{background:#16a34a}.sm-app .sm-msg{color:#059669;font-size:14px;margin:8px 0}.sm-app .sm-login{min-height:100vh;display:flex;align-items:center;justify-content:center}.sm-app .sm-login form{background:#fff;padding:30px;border-radius:16px;width:320px;display:flex;flex-direction:column;gap:12px;box-shadow:0 4px 20px rgba(0,0,0,.1)}.sm-app .sm-login h2{text-align:center;font-size:20px;color:#1a2940}.sm-app .sm-login input{padding:13px;border:1px solid #cbd5e1;border-radius:10px;font-size:16px}.sm-app .sm-login button{padding:14px;border:none;border-radius:10px;background:#1a2940;color:#fff;font-size:16px;font-weight:700}.sm-app .sm-login .err{color:#dc2626;font-size:13px}.admin-nav{display:inline-flex;gap:4px;margin-left:24px}.admin-nav a{padding:6px 14px;border-radius:6px;color:#fff;text-decoration:none;font-size:14px;opacity:.85}.admin-nav a:hover{background:rgba(255,255,255,.15);opacity:1}.picker-app .pk-refresh{background:#334155;color:#e2e8f0;border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer}.picker-app .pk-variety{font-size:13px;color:#94a3b8;margin-bottom:10px;margin-top:-6px}.picker-app .pk-na-label,.picker-app .pk-op-label{display:flex;align-items:center;gap:10px;margin:0;min-width:158px;padding:12px 14px;border:1px solid #475569;border-radius:12px;background:#0f172a;font-size:15px;font-weight:600;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.picker-app .pk-na-label{color:#fca5a5}.picker-app .pk-op-label{color:#86efac}.picker-app .pk-na-label input,.picker-app .pk-op-label input{width:28px;height:28px;flex-shrink:0;margin:0;cursor:pointer}.picker-app .pk-na-label input{accent-color:#ef4444}.picker-app .pk-op-label input{accent-color:#22c55e}.picker-app .pk-op-label input:disabled{cursor:not-allowed;opacity:.45}.picker-app .pk-line-na .pk-na-label{background:#7f1d1d;border-color:#ef4444;color:#fff}.picker-app .pk-line-op .pk-op-label{background:#14532d;border-color:#22c55e;color:#fff}.picker-app .pk-line-na .pk-desc,.picker-app .pk-line-na .pk-variety{color:#64748b}.picker-app .pk-line-op .pk-desc,.picker-app .pk-line-op .pk-variety{color:#4ade80}.ck-wrap{max-width:540px;margin:0 auto;padding:16px 12px 100px}.ck-back{color:#60a5fa;text-decoration:none;font-size:14px}.ck-refresh{background:#334155;color:#e2e8f0;border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer}.ck-card{display:block;text-decoration:none;background:#1e293b;border-radius:12px;padding:14px 16px;margin-bottom:10px;border:1px solid #334155;color:inherit}.ck-card:hover{border-color:#60a5fa}.ck-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.ck-cust{font-size:15px;color:#e2e8f0;font-weight:600;margin-bottom:4px}.ck-meta{font-size:13px;color:#64748b}.ck-muted{color:#64748b;font-size:14px}.ck-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}.ck-b-grey{background:#334155;color:#94a3b8}.ck-b-green{background:#14532d;color:#86efac}.ck-lines{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.ck-line{background:#1e293b;border-radius:10px;padding:12px 14px;border:1px solid #334155}.ck-line.ck-line-done{border-color:#166534;background:#0f2d1f}.ck-line.ck-line-na{opacity:.6}.ck-check-label{display:flex;align-items:center;gap:12px;cursor:pointer;width:100%}.ck-check-label input[type=checkbox]{width:22px;height:22px;accent-color:#22c55e;flex-shrink:0;cursor:pointer}.ck-line-info{flex:1 1;min-width:0}.ck-desc{font-size:15px;color:#e2e8f0;font-weight:500}.ck-variety{font-size:13px;color:#94a3b8;margin-top:2px}.ck-out{display:inline-block;margin-left:8px;font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px;background:#7f1d1d;color:#fca5a5}.ck-line-right{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.ck-qty{font-size:16px;font-weight:700;color:#e2e8f0}.ck-price{font-size:12px;color:#94a3b8}.ck-actions{display:flex;gap:10px;position:-webkit-sticky;position:sticky;bottom:0;background:#0f172a;padding:12px 0;border-top:1px solid #1e293b}.ck-save{flex:1 1;background:#334155;color:#e2e8f0;font-size:14px}.ck-done,.ck-save{border:none;border-radius:12px;padding:14px;font-weight:700;cursor:pointer}.ck-done{flex:2 1;background:#16a34a;color:#fff;font-size:15px}.ck-msg{color:#86efac;font-size:14px;margin:8px 0}.qty-ns::-webkit-inner-spin-button,.qty-ns::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.qty-ns{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}