:root{--bg-app: #f6f8fb;--bg-card: #ffffff;--bg-sidebar: #0b1b2b;--text-primary: #020617;--text-secondary: #475569;--text-muted: #64748b;--border-color: #e2e8f0;--green: #22c55e;--green-soft: #dcfce7;--amber: #f59e0b;--amber-soft: #fef3c7;--red: #ef4444;--red-soft: #fee2e2;--blue: #2563eb;--blue-soft: #e8f1ff;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 6px 16px rgba(15, 23, 42, .08);--sidebar-width: 260px;--content-max-width: 1280px}html,body{margin:0;padding:0;background:var(--bg-app);color:var(--text-primary);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.45}h1{font-size:34px;font-weight:800;letter-spacing:-.02em;margin:0}h2{font-size:16px;font-weight:700;margin:0}h3{font-size:14px;font-weight:600;margin:0}h4,h5,h6{font-size:14px;font-weight:500;margin:0}.app-root{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:linear-gradient(180deg,#0b1b2b,#071425);color:#fff;padding:20px}.main{flex:1;padding:32px 40px;display:flex;justify-content:center}.main-inner{width:100%;max-width:var(--content-max-width)}.page-title{font-size:34px;font-weight:800;letter-spacing:-.02em;color:var(--text-primary)}.page-subtitle{margin-top:6px;font-size:15px;font-weight:400;color:var(--text-secondary)}.section-title{font-size:16px;font-weight:700;color:var(--text-primary)}.text-muted{font-size:12px;color:var(--text-muted)}.text-strong{font-weight:700}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--border-color);padding:20px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-title{font-size:13px;font-weight:500;color:var(--text-secondary)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.stat-card{position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.stat-green:before{background:var(--green)}.stat-amber:before{background:var(--amber)}.stat-red:before{background:var(--red)}.stat-blue:before{background:var(--blue)}.stat-value{font-size:28px;font-weight:800;margin-top:6px}.stat-desc{font-size:13px;color:var(--text-secondary);margin-top:4px}table{width:100%;border-collapse:collapse}th{font-size:13px;font-weight:600;color:var(--text-secondary);text-align:left;padding:10px;background:var(--blue-soft)}td{font-size:14px;padding:10px;border-top:1px solid var(--border-color)}.table-strong{font-weight:700}.table-total{background:var(--green-soft);font-weight:700}.section{margin-top:28px}.section-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px}@media (max-width: 1200px){.stat-grid{grid-template-columns:repeat(2,1fr)}.section-grid{grid-template-columns:1fr}}input,select,textarea{width:100%;padding:10px 14px;font-size:14px;font-family:inherit;background:#fff;color:var(--text-primary);border:1.5px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,box-shadow .15s ease}input::placeholder,textarea::placeholder{color:var(--text-muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb2e}input[type=date]{padding-right:12px}.purchases-table{width:100%;border-collapse:collapse;font-size:13px}.purchases-table thead th{background:#eef4ff;color:#1e3a8a;padding:10px;text-align:left;font-weight:700;border-bottom:1px solid #dbe4f0}.purchases-table td{padding:10px;border-bottom:1px solid #eef2f7}.p-col-date{background:#f8fafc}.p-col-cat{background:#f1f5f9}.p-col-supp{background:#f8fafc}.p-col-item{background:#f1f5f9}.p-col-qty{background:#f8fafc;text-align:right}.p-col-unit{background:#f1f5f9;text-align:right}.p-col-total{background:#ecfeff;font-weight:700;text-align:right}:root{--bg: #f6f8fb;--panel: #ffffff;--text: #0f172a;--muted: #64748b;--border: #e5eaf2;--shadow: 0 1px 2px rgba(2,6,23,.05);--radius: 14px;--nav: #0b1f3a;--nav2:#081a30;--brand:#0b1f3a;--fieldBg:#fff;--fieldBorder: var(--border);--fieldFocus: rgba(11, 31, 58, .12)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--text);background:var(--bg)}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0}.fh-page{min-height:100vh;background:var(--bg);padding:24px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--text)}.fh-container{max-width:1200px;margin:0 auto}.fh-card{background:var(--panel);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px;box-shadow:var(--shadow);border:1px solid var(--border)}.fh-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:#fff;color:var(--text);padding:8px 14px;border-radius:10px;font-size:13px;cursor:pointer;transition:background .15s ease,transform .05s ease}.fh-btn:hover{background:#f1f5f9}.fh-btn:active{transform:translateY(1px)}.fh-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.fh-btn.primary:hover{filter:brightness(1.05)}.fh-btn.danger{background:#dc2626;border-color:#dc2626;color:#fff}.fh-input,.fh-select,.fh-textarea{width:100%;padding:8px 10px;border-radius:10px;border:1px solid var(--border);font-size:13px;background:#fff;color:var(--text)}.fh-input:focus,.fh-select:focus,.fh-textarea:focus{outline:none;box-shadow:0 0 0 4px var(--fieldFocus);border-color:var(--brand)}.fh-table{width:100%;border-collapse:collapse;font-size:13px}.fh-table th{text-align:left;font-weight:600;color:var(--muted);padding:10px 8px;border-bottom:1px solid var(--border)}.fh-table td{padding:10px 8px;border-bottom:1px solid var(--border)}.fh-table tr:hover td{background:#02061708}.fh-shell{display:flex;min-height:100vh;background:var(--bg)}.fh-sidebar{width:240px;background:linear-gradient(180deg,var(--nav),var(--nav2));color:#fff;padding:18px 14px;display:flex;flex-direction:column;gap:16px}.fh-brand{font-size:18px;font-weight:700;letter-spacing:.3px;padding:6px 10px 12px}.fh-sidebar .fh-select{background:#ffffff24;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:13px}.fh-sidebar .fh-select option{color:var(--text)}.fh-nav{display:flex;flex-direction:column;gap:2px;margin-top:6px}.fh-nav a{padding:9px 12px;border-radius:10px;font-size:14px;color:#ffffffd9;transition:background .15s ease,color .15s ease}.fh-nav a:hover{background:#ffffff1f;color:#fff}.fh-nav a.active{background:#fff;color:var(--nav);font-weight:600}.fh-sidebar .fh-btn.danger{margin-top:auto;width:100%;background:#ffffff26;border:1px solid rgba(255,255,255,.25);color:#fff}.fh-sidebar .fh-btn.danger:hover{background:#ffffff40}.fh-main{flex:1;padding:24px;overflow-y:auto}.shell{min-height:100vh;display:grid;grid-template-columns:300px 1fr}.sidebar{background:radial-gradient(1200px 800px at 0% 0%,#0b2b55,#061a33 45%,#041225);padding:22px 18px;position:sticky;top:0;height:100vh;overflow:auto}.brandRow{margin-bottom:14px}.brand{color:#fff;font-weight:900;letter-spacing:.2px;font-size:20px;line-height:1.1}.brandSub{margin-top:6px;color:#ffffff9e;font-size:12px}.bizCard{margin-top:14px;margin-bottom:18px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;border-radius:14px;padding:12px}.bizTop{display:grid;gap:4px;margin-bottom:10px}.bizName{color:#fff;font-weight:800;font-size:13px}.bizUser{color:#ffffffb3;font-size:12px}.bizActions{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.bizSelect{height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:#0000001f;color:#fff;padding:0 10px;outline:none}.miniBtn{height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#fff;font-weight:700;cursor:pointer;padding:0 10px}.miniBtn:hover{background:#ffffff1f}.bizHint{margin-top:10px;font-size:12px;color:#ffffffbf}.nav{display:flex;flex-direction:column;gap:10px}.navLink{color:#ffffffdb;text-decoration:none;font-size:16px;padding:14px;border-radius:14px;transition:background .12s ease,transform .12s ease}.navLink:hover{background:#ffffff0f;transform:translateY(-1px)}.navLinkActive{background:#ffffff1f;color:#fff}.content{background:#f6f8fb;padding:22px;overflow:auto}
