*{box-sizing:border-box}body{margin:0;font-family:Sarabun,Noto Sans Thai,system-ui,sans-serif;background:#f4f6f8;color:#1b2430}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:24px;padding:8px 24px;background:#1f5fa8;color:#fff}.brand{font-weight:700;font-size:16px;display:flex;align-items:center;gap:10px}.brand-logo{height:44px;max-width:140px;background:#fff;border-radius:6px;padding:3px 8px}.company-switcher{padding:6px 10px;border-radius:6px;border:none}.topnav{display:flex;gap:16px;flex:1}.topnav a{color:#fffc;text-decoration:none;font-size:14px}.topnav a.active{color:#fff;font-weight:600}.user-menu{display:flex;align-items:center;gap:10px;font-size:13px}.role-pill{background:#fff3;padding:2px 8px;border-radius:999px;font-size:11px;text-transform:uppercase}.user-menu button{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:6px;padding:4px 10px;cursor:pointer}.content{flex:1;padding:24px;max-width:1100px;width:100%;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}h2{margin:0}button{background:#1f5fa8;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}.link-button{background:none;color:#1f5fa8;padding:2px 6px;font-size:13px;text-decoration:underline}.link-button.danger{color:#b3261e}.card-form{background:#fff;border:1px solid #dde3ea;border-radius:10px;padding:20px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px;max-width:720px}.card-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#5c6572}.card-form input,.card-form select,.card-form textarea{padding:8px 10px;border:1px solid #cdd6e0;border-radius:6px;font-size:14px;font-family:inherit}.card-form .row{display:flex;gap:12px}.card-form .row label{flex:1}.data-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #dde3ea;border-radius:10px;overflow:hidden}.data-table th,.data-table td{padding:10px 14px;border-bottom:1px solid #eef1f4;text-align:left;font-size:13.5px}.data-table th{background:#eef1f4;font-size:12px;text-transform:uppercase;color:#5c6572}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.data-table .actions{display:flex;gap:10px}.muted{color:#94a2b3;font-size:12.5px}.error{color:#c0392b;font-size:12.5px}.status-pill{padding:2px 8px;border-radius:999px;font-size:11px;text-transform:uppercase;background:#e8f0fa;color:#1f5fa8}.status-paid{background:#e6f3ec;color:#2f7a54}.status-overdue,.status-void{background:#faf0df;color:#a8701f}.items-editor .num-input{width:90px;text-align:right}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f4f6f8}.auth-card{background:#fff;padding:32px;border-radius:12px;width:340px;display:flex;flex-direction:column;gap:14px;box-shadow:0 4px 20px #0000000f}.auth-card h1{font-size:18px;margin:0 0 8px}.auth-card label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#5c6572}.auth-card input{padding:9px 10px;border:1px solid #cdd6e0;border-radius:6px;font-size:14px}.auth-switch{font-size:12.5px;color:#5c6572}.form-error{color:#b3261e;font-size:13px;margin:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center}.modal{margin:0}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;color:#5c6572}
