:root{--bg:#f4f7fb;--panel:#fff;--ink:#122033;--muted:#677489;--line:#dce4ef;--brand:#155eef;--brand2:#0b46bd;--good:#157f5b;--warn:#b26a00;--bad:#c93636;--sidebar:#101c2c;--sidebar2:#17263a;--radius:14px;--shadow:0 8px 28px rgba(20,36,60,.08)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}a{color:var(--brand);text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--sidebar),var(--sidebar2));color:#dce7f6;padding:22px 16px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 22px}.brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#3f82ff,#16b8a6);display:grid;place-items:center;color:#fff;font-weight:800}.brand strong{display:block;color:#fff;font-size:15px}.brand small{color:#91a4bd}.nav-group{margin:18px 0 8px;padding:0 10px;color:#7f93ad;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.12em}.nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;color:#cbd8e8;margin:3px 0;font-size:14px}.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.09);color:#fff}.main{min-width:0}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.topbar-title{font-weight:750}.user-menu{display:flex;align-items:center;gap:14px}.avatar{width:36px;height:36px;border-radius:50%;background:#e7efff;color:var(--brand);display:grid;place-items:center;font-weight:800}.content{padding:26px;max-width:1600px;margin:auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.page-head h1{font-size:24px;margin:0 0 4px}.page-head p{color:var(--muted);margin:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-body{padding:20px}.card-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.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))}.metric{padding:20px}.metric-label{color:var(--muted);font-size:13px}.metric-value{font-size:26px;font-weight:800;margin-top:8px}.metric-note{font-size:12px;color:var(--muted);margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:9px;padding:9px 14px;border:1px solid transparent;font-weight:700;font-size:13px;cursor:pointer;background:#fff}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand2)}.btn-secondary{border-color:var(--line);color:var(--ink)}.btn-danger{background:#fff1f1;color:var(--bad);border-color:#ffd5d5}.btn-success{background:#e8f8f1;color:var(--good);border-color:#c7eadc}.btn-warning{background:#fff5df;color:var(--warn);border-color:#f4d49c}.btn-sm{padding:6px 10px;font-size:12px}.actions{display:flex;flex-wrap:wrap;gap:8px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th{background:#f8fafc;color:#5c6a7e;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:13px 14px;border-bottom:1px solid #edf1f6;font-size:13px;vertical-align:top}.table tr:hover td{background:#fafcff}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field.full{grid-column:1/-1}.field label{display:block;font-size:12px;font-weight:750;margin:0 0 7px}.field .hint{font-size:11px;color:var(--muted);margin-top:5px}.control{width:100%;border:1px solid #cfd9e7;border-radius:9px;background:#fff;padding:10px 11px;outline:none;transition:.15s}.control:focus{border-color:#6b98f5;box-shadow:0 0 0 3px rgba(21,94,239,.1)}textarea.control{min-height:100px;resize:vertical}.checkbox{display:flex;align-items:center;gap:9px;padding-top:25px}.checkbox input{width:18px;height:18px}.invalid{color:var(--bad);font-size:12px;margin-top:5px}.alert{padding:12px 15px;border-radius:10px;margin-bottom:18px;border:1px solid}.alert-success{background:#eaf9f2;border-color:#bde8d5;color:#116847}.alert-error{background:#fff0f0;border-color:#f4c1c1;color:#9a2525}.alert-warning{background:#fff8e7;border-color:#f0d69e;color:#805300}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:750;background:#edf2f8;color:#536177}.badge-green{background:#e6f7ef;color:#14724f}.badge-red{background:#ffeded;color:#aa3030}.badge-yellow{background:#fff4d8;color:#895c00}.badge-blue{background:#eaf1ff;color:#1f5dc2}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.search{display:flex;gap:8px;max-width:520px;width:100%}.pagination{display:flex;gap:5px;padding:16px 18px;align-items:center}.pagination a,.pagination span{border:1px solid var(--line);border-radius:7px;padding:6px 10px;font-size:12px}.pagination .current{background:var(--brand);color:#fff;border-color:var(--brand)}.empty{text-align:center;padding:45px;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.detail{background:#fff;padding:15px}.detail-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.detail-value{font-weight:650;margin-top:5px;word-break:break-word}.status-draft{background:#edf2f8;color:#536177}.status-approved,.status-posted,.status-paid,.status-active,.status-completed{background:#e6f7ef;color:#14724f}.status-pending_approval,.status-partially_paid,.status-in_progress{background:#fff4d8;color:#895c00}.status-rejected,.status-overdue,.status-cancelled,.status-reversed,.status-expired{background:#ffeded;color:#aa3030}.login-page{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:#fff}.login-art{background:linear-gradient(135deg,#0e2342,#155eef 60%,#12a594);color:#fff;padding:70px;display:flex;flex-direction:column;justify-content:center}.login-art h1{font-size:44px;line-height:1.08;margin:0 0 18px}.login-art p{max-width:580px;font-size:18px;color:#d7e5ff}.login-panel{display:flex;align-items:center;justify-content:center;padding:35px}.login-box{width:min(440px,100%)}.login-box h2{font-size:28px;margin:0 0 8px}.login-box>p{color:var(--muted);margin:0 0 28px}.divider{height:1px;background:var(--line);margin:20px 0}.line-items{border:1px solid var(--line);border-radius:12px;overflow:auto}.line-items input,.line-items select{min-width:100px}.totals{margin-left:auto;width:min(420px,100%)}.total-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #edf1f6}.total-row.grand{font-size:18px;font-weight:800;border-top:2px solid var(--ink);border-bottom:0;margin-top:6px;padding-top:14px}.mobile-toggle{display:none}.muted{color:var(--muted)}.text-right{text-align:right}.nowrap{white-space:nowrap}@media(max-width:1050px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:780px){.app-shell{display:block}.sidebar{position:fixed;left:-280px;z-index:50;width:260px;transition:.2s}.sidebar.open{left:0}.mobile-toggle{display:inline-flex}.topbar{padding:0 16px}.content{padding:16px}.form-grid,.grid-2,.grid-3,.grid-4,.detail-grid{grid-template-columns:1fr}.page-head{flex-direction:column}.login-page{grid-template-columns:1fr}.login-art{display:none}.table th,.table td{padding:10px}.user-meta{display:none}}@media print{.sidebar,.topbar,.no-print{display:none!important}.app-shell{display:block}.content{padding:0}.card{box-shadow:none;border:0}.print-document{display:block!important}}

/* Complete application additions */
.bg-soft{background:#f4f7fb}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.page-header h1{margin:0 0 5px;font-size:25px}.page-header p{margin:0}.card-header,.card-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid #e5e7eb}.card-footer{border-top:1px solid #e5e7eb;border-bottom:0}.card-header h3{margin:0}.form-actions{display:flex;align-items:center;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid #e5e7eb}.span-2{grid-column:span 2}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.choice{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #dbe3ee;border-radius:8px;background:#fff}.choice small{display:block;color:#64748b;margin-top:3px}.permission-row{display:flex;flex-wrap:wrap;gap:8px 18px}.inline-form{display:flex;align-items:center;justify-content:flex-end;gap:8px}.control-sm{min-height:32px;padding:5px 8px;font-size:12px}.badge-success{background:#dcfce7;color:#166534}.badge-danger{background:#fee2e2;color:#991b1b}.detail-list{display:grid;grid-template-columns:130px 1fr;gap:12px;margin:0}.detail-list dt{font-weight:700;color:#475569}.detail-list dd{margin:0;overflow-wrap:anywhere}.json-view{white-space:pre-wrap;word-break:break-word;max-height:520px;overflow:auto;background:#0f172a;color:#e2e8f0;padding:14px;border-radius:8px;font-size:12px}.filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%}.filter-bar .control{width:auto;min-width:160px}.flex-between{display:flex;align-items:center;justify-content:space-between;gap:12px}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#eef2f7;padding:2px 5px;border-radius:4px}
@media(max-width:900px){.choice-grid{grid-template-columns:1fr 1fr}.span-2{grid-column:1/-1}}
@media(max-width:600px){.page-header{flex-direction:column}.choice-grid{grid-template-columns:1fr}.inline-form{flex-direction:column;align-items:stretch}.filter-bar .control{width:100%}.detail-list{grid-template-columns:1fr}.span-2{grid-column:auto}}
