:root{--bg: #F4F6F9;--surface-2: #EEF2F7;--dark: #0F2A43;--dark-2: #0A1F33;--card: #FFFFFF;--border: #E4E9F0;--yellow: #FF6A00;--yellow-dim: #E25E00;--text: #16202C;--muted: #6A7686;--red: #E5484D;--green: #1FA463;--blue: #2D7FF9;--orange: #FF6A00;--font-body: "Barlow", -apple-system, system-ui, sans-serif;--font-display: "Barlow Condensed", "Barlow", sans-serif;--radius: 10px;--radius-sm: 6px;--sidebar-w: 250px;--shadow-sm: 0 1px 2px rgba(16, 42, 67, .06);--shadow: 0 1px 3px rgba(16, 42, 67, .08), 0 6px 16px rgba(16, 42, 67, .05);--shadow-lg: 0 12px 32px rgba(16, 42, 67, .16);--ring: 0 0 0 3px rgba(255, 106, 0, .18)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;margin:0;letter-spacing:.01em}h1{font-size:28px}h2{font-size:22px}h3{font-size:17px;letter-spacing:.02em}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--dark) 0%,var(--dark-2) 100%);padding:18px 0 24px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;overflow:hidden}.sidebar .brand{display:flex;align-items:center;gap:11px;padding:4px 18px 18px;margin-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-mark{width:34px;height:34px;border-radius:9px;flex-shrink:0;background:linear-gradient(150deg,var(--yellow) 0%,#ff8c3a 100%);display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px #ff6a0066}.brand-text h1{color:#fff;font-size:20px;line-height:1.05}.sidebar .brand .org{font-size:11px;color:#ffffff80;margin-top:2px}.nav-scroll{flex:1;overflow-y:auto;padding:0 12px}.nav-section{margin-bottom:14px}.nav-section-title{font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#ffffff61;padding:6px 10px 4px}.sidebar .nav-link{display:flex;align-items:center;gap:11px;padding:9px 11px;margin-bottom:1px;border-radius:8px;color:#ffffffb8;font-weight:500;font-size:14px;transition:background .12s,color .12s}.sidebar .nav-link svg{color:#ffffff80;transition:color .12s}.sidebar .nav-link:hover{background:#ffffff0f;color:#fff;text-decoration:none}.sidebar .nav-link:hover svg{color:#ffffffd9}.sidebar .nav-link.active{background:#ff6a0029;color:#fff;font-weight:600}.sidebar .nav-link.active svg{color:var(--yellow)}.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 28px;border-bottom:1px solid var(--border);background:var(--card);position:sticky;top:0;z-index:10}.topbar .user{color:var(--muted);font-size:13px}.topbar .user b{color:var(--text)}.main{display:flex;flex-direction:column;min-height:100vh}.content{padding:28px;flex:1;max-width:1400px;width:100%}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:16px}.page-header h1{font-size:26px}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 15px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;font-weight:600;font-size:14px;transition:background .12s,border-color .12s,box-shadow .12s,transform .05s}.btn:hover{background:var(--surface-2);border-color:#d4dbe6;text-decoration:none}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--yellow);color:#fff;border-color:var(--yellow);box-shadow:0 2px 8px #ff6a0047}.btn-primary:hover{background:var(--yellow-dim);border-color:var(--yellow-dim)}.btn-danger{background:transparent;color:var(--red);border-color:var(--red)}.btn-danger:hover{background:#e5484d14}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--surface-2);border-color:var(--border)}.btn-sm{padding:6px 10px;font-size:12px;border-radius:5px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.field input,.field select,.field textarea{background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;color:var(--text);font-size:14px;font-family:inherit;transition:border-color .12s,box-shadow .12s}.field input::placeholder,.field textarea::placeholder{color:#aab3c0}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--yellow);box-shadow:var(--ring)}.field textarea{resize:vertical;min-height:80px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border);font-size:14px}.table th{color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2)}.table th:first-child{border-top-left-radius:8px}.table th:last-child{border-top-right-radius:8px}.table tbody tr{transition:background .1s}.table tbody tr:hover{background:#0f2a4309;cursor:pointer}.table tbody tr:last-child td{border-bottom:none}.table .right{text-align:right}.mono{font-family:SF Mono,JetBrains Mono,Menlo,monospace;font-size:13px;font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;text-transform:capitalize;letter-spacing:.02em}.badge-draft{background:#6a768621;color:var(--muted)}.badge-sent{background:#2d7ff921;color:var(--blue)}.badge-partial{background:#ff6a0024;color:var(--orange)}.badge-paid,.badge-approved{background:#1fa46324;color:var(--green)}.badge-overdue,.badge-declined,.badge-failed{background:#e5484d21;color:var(--red)}.badge-void,.badge-expired,.badge-cancelled{background:#6a768621;color:var(--muted)}.badge-scheduled{background:#2d7ff921;color:var(--blue)}.badge-confirmed{background:#1fa46324;color:var(--green)}.badge-en_route{background:#2d7ff921;color:var(--blue)}.badge-on_site,.badge-in_progress{background:#ff6a0024;color:var(--orange)}.badge-completed{background:#1fa46324;color:var(--green)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.metric{background:var(--card);border:1px solid var(--border);padding:18px;border-radius:var(--radius);box-shadow:var(--shadow-sm);border-top:3px solid transparent;transition:box-shadow .12s,transform .08s}a:hover>.metric,.metric:hover{box-shadow:var(--shadow)}.metric .label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.metric .value{font-family:var(--font-display);font-size:32px;font-weight:800;margin-top:6px;line-height:1.05;font-variant-numeric:tabular-nums}.metric .sub{font-size:12px;color:var(--muted);margin-top:5px}.metric.accent{border-top-color:var(--yellow)}.metric.accent .value{color:var(--yellow)}.metric.danger{border-top-color:var(--red)}.metric.danger .value{color:var(--red)}.metric.success{border-top-color:var(--green)}.metric.success .value{color:var(--green)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a1f338c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:640px;max-height:90vh;overflow:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-body{padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--border);position:sticky;bottom:0;background:var(--card)}.line-items{width:100%}.line-items th,.line-items td{padding:6px 8px}.line-items input{width:100%}.line-items .col-desc{width:auto}.line-items .col-qty{width:80px}.line-items .col-price{width:110px}.line-items .col-total{width:110px;text-align:right}.line-items .col-act{width:40px;text-align:center}.public-page{max-width:600px;margin:40px auto;padding:0 20px;font-family:var(--font-body)}.public-page .header{background:linear-gradient(150deg,var(--dark),var(--dark-2));padding:24px;border-radius:var(--radius) var(--radius) 0 0}.public-page .header h1{color:#fff}.public-page .body{background:var(--card);border:1px solid var(--border);border-top:none;padding:24px;border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow)}.empty{text-align:center;color:var(--muted);padding:36px 16px}.table td.muted{text-align:center;padding:28px 12px}.flex{display:flex}.flex-1{flex:1}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.text-right{text-align:right}.text-muted{color:var(--muted)}.error{color:var(--red);font-size:13px;margin-top:6px}.success{color:var(--green);font-size:13px;margin-top:6px}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#0f2a43,#1c4a75)}.auth-card{width:100%;max-width:420px;background:var(--card);border-radius:var(--radius);padding:36px 32px;box-shadow:var(--shadow-lg)}.auth-card h1{color:var(--text);text-align:center;margin-bottom:4px;font-size:28px}.auth-card .sub{text-align:center;color:var(--muted);margin-bottom:24px;font-size:13px}.nav-scroll::-webkit-scrollbar,.content::-webkit-scrollbar,.modal::-webkit-scrollbar{width:8px}.nav-scroll::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:8px}.content::-webkit-scrollbar-thumb,.modal::-webkit-scrollbar-thumb{background:#102a432e;border-radius:8px}
