:root{--bg: #FAF8F5;--text: #1A1A1A;--text-muted: #6B6B6B;--navy: #1B3558;--navy-dark: #122840;--pale-blue: #C5DCF0;--mid-blue: #6BA3C4;--card-bg: #F0EDE6;--border: #D9D5CC;--success: #2D7A4F;--success-bg: #EAF5EF;--error: #C0392B;--error-bg: #FDECEA;--warning-bg: #FEF7E0;--warning-border: #F0C040;--row-alt: #F7F5F0;--shadow-card: 0 1px 4px rgba(0, 0, 0, .08)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;display:flex;flex-direction:column}a{color:var(--navy);text-decoration:none}a:hover{color:var(--navy-dark);text-decoration:underline}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px}h1,h2,h3,h4{font-weight:600;line-height:1.3;color:var(--text)}h1{font-size:24px}h2{font-size:20px}h3{font-size:16px}h4{font-size:14px}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:24px;box-shadow:var(--shadow-card)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;background:var(--navy);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;transition:background .15s ease;white-space:nowrap}.btn-primary:hover{background:var(--navy-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;background:var(--pale-blue);color:var(--navy);border:1px solid var(--mid-blue);border-radius:6px;font-size:14px;font-weight:500;transition:background .15s ease,border-color .15s ease;white-space:nowrap}.btn-secondary:hover{background:#b5ceea;border-color:var(--navy)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;background:var(--error);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;transition:background .15s ease;white-space:nowrap}.btn-danger:hover{background:#a93226}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;background:transparent;color:var(--navy);border:1px solid var(--border);border-radius:6px;font-size:13px;font-weight:500;transition:background .15s ease,border-color .15s ease;white-space:nowrap}.btn-ghost:hover{background:var(--pale-blue);border-color:var(--mid-blue)}.btn-ghost:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:5px 12px;font-size:12px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:500;color:var(--text)}.form-input,.form-select,.form-textarea{padding:9px 12px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease;width:100%;min-width:0;box-sizing:border-box}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--mid-blue);box-shadow:0 0 0 3px #6ba3c433}.form-input::placeholder,.form-textarea::placeholder{color:#a0a0a0}.form-textarea{resize:vertical;min-height:80px}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B6B6B' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.badge-active{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500;background:var(--success-bg);color:var(--success);border:1px solid #b8e0c9}.badge-inactive{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500;background:#f3f3f3;color:#888;border:1px solid #ddd}.table{width:100%;border-collapse:collapse;font-size:14px}.table thead th{text-align:left;padding:10px 14px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:2px solid var(--border);white-space:nowrap}.table tbody tr:nth-child(2n){background:var(--row-alt)}.table tbody tr:hover{background:#eee9e0}.table tbody td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.table tfoot tr{border-top:2px solid var(--border)}.table tfoot td{padding:10px 14px;font-weight:600}.table-actions{display:flex;align-items:center;gap:6px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:28px;width:100%;max-width:480px;box-shadow:0 8px 32px #00000029}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-title{font-size:17px;font-weight:600;color:var(--text)}.modal-close{background:none;border:none;color:var(--text-muted);font-size:20px;line-height:1;padding:2px 6px;border-radius:4px;cursor:pointer;transition:background .15s}.modal-close:hover{background:var(--border);color:var(--text)}.modal-body{display:flex;flex-direction:column;gap:16px}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:24px}.alert-banner{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--warning-bg);border-bottom:1px solid var(--warning-border);font-size:13px;font-weight:500;color:#7a5c00}.alert-banner-approval{background:#e8f0fb;border-bottom-color:#91b4e8;color:#1b3558}.alert-banner-rejection{background:#fef3e8;border-bottom-color:#e8a84a;color:#7a4000}.alert-banner-close{background:none;border:none;color:#7a5c00;font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:4px;transition:background .15s;flex-shrink:0}.alert-banner-close:hover{background:#00000014}.alert-success{padding:10px 14px;background:var(--success-bg);border:1px solid #b8e0c9;border-radius:6px;font-size:13px;color:var(--success)}.alert-error{padding:10px 14px;background:var(--error-bg);border:1px solid #f1b0aa;border-radius:6px;font-size:13px;color:var(--error)}.navbar{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;background:var(--navy);box-shadow:0 2px 6px #00000026;position:sticky;top:0;z-index:100;flex-shrink:0}.navbar-left{display:flex;align-items:center;gap:16px}.navbar-brand{display:inline-flex;align-items:center;gap:8px;font-size:17px;font-weight:700;color:#fff;letter-spacing:-.3px;text-decoration:none}.navbar-brand-text{line-height:1.15}.navbar-brand:hover{color:var(--pale-blue);text-decoration:none}.navbar-link{font-size:13px;font-weight:500;color:var(--pale-blue);text-decoration:none;opacity:.85;transition:opacity .15s}.navbar-link:hover{opacity:1;color:#fff;text-decoration:none}.navbar-right{display:flex;align-items:center;gap:14px}.navbar-user{font-size:13px;color:#ffffffbf}.navbar-signout{background:none;border:1px solid rgba(255,255,255,.3);color:#ffffffd9;padding:6px 14px;border-radius:5px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.navbar-signout:hover{background:#ffffff1a;border-color:#ffffff80}.page-wrapper{flex:1;display:flex;flex-direction:column}.page-content{flex:1;padding:32px 24px;max-width:1200px;margin:0 auto;width:100%}.tabs{display:flex;gap:2px;border-bottom:2px solid var(--border);margin-bottom:28px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab-btn{padding:10px 20px;background:none;border:none;font-size:14px;font-weight:500;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;flex-shrink:0;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--navy)}.tab-btn.active{color:var(--navy);border-bottom-color:var(--navy)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.empty-state{padding:32px 20px;text-align:center;color:var(--text-muted);font-size:14px}.dashboard-grid{display:grid;grid-template-columns:380px 1fr;gap:24px;align-items:start}.dashboard-grid>*{min-width:0}@media (max-width: 860px){.dashboard-grid{grid-template-columns:1fr}}.filter-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;align-items:end}.divider{border:none;border-top:1px solid var(--border);margin:20px 0}.table-wrapper{overflow-x:auto}.input-with-toggle{position:relative;display:flex;align-items:center}.input-with-toggle .form-input{padding-right:44px}.input-toggle-btn{position:absolute;right:10px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;border-radius:4px;transition:color .15s}.input-toggle-btn:hover{color:var(--navy)}.navbar-company{display:flex;align-items:center;gap:10px;position:absolute;left:50%;transform:translate(-50%)}.navbar-company-logo{max-height:32px;max-width:120px;object-fit:contain}.navbar-company-name{font-size:15px;font-weight:600;color:#fff;white-space:nowrap}.checkbox-list{display:flex;flex-wrap:wrap;gap:8px}.checkbox-item{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff;border:1px solid var(--border);border-radius:6px;font-size:13px;cursor:pointer;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.checkbox-item:hover{border-color:var(--mid-blue);background:var(--pale-blue)}.checkbox-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--navy);cursor:pointer}.nidaros-footer{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 24px;border-top:1px solid var(--border);font-size:11px;color:var(--text-muted);opacity:.65;flex-shrink:0}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px}.login-card{width:100%;max-width:400px}.login-logo{display:flex;align-items:center;gap:10px;margin-bottom:6px}.login-title{font-size:28px;font-weight:700;color:var(--navy);letter-spacing:-.5px}.login-subtitle{font-size:14px;color:var(--text-muted);margin-bottom:28px}.login-form{display:flex;flex-direction:column;gap:16px}.alert-warning{padding:10px 14px;background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:6px;font-size:13px;color:#7a5c00}.multi-select-btn{display:flex;align-items:center;justify-content:space-between;gap:8px}.multi-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--mid-blue);border-radius:6px;box-shadow:0 4px 16px #0000001f;z-index:200;max-height:220px;overflow-y:auto;padding:4px 0}.multi-select-clear{display:block;width:100%;padding:7px 12px;background:none;border:none;border-bottom:1px solid var(--border);text-align:left;font-size:12px;color:var(--error);cursor:pointer;font-weight:500}.multi-select-clear:hover{background:var(--error-bg)}.multi-select-item{display:flex;align-items:center;gap:8px;padding:7px 12px;cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none;transition:background .1s}.multi-select-item:hover{background:var(--row-alt)}.badge-submitted{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500;background:var(--warning-bg);color:#7a5c00;border:1px solid var(--warning-border)}.badge-rejected{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500;background:var(--error-bg);color:var(--error);border:1px solid #f1b0aa}@media (max-width: 600px){.page-content{padding:20px 16px;overflow-x:hidden}.navbar{padding:0 16px}.navbar-company,.navbar-user{display:none}.card{padding:16px}.tabs{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x;overscroll-behavior-x:contain}.tabs::-webkit-scrollbar{display:none}.tab-btn{padding:10px 14px;font-size:13px;white-space:nowrap}.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:12px 12px 0 0;max-width:100%;padding:20px 16px}.section-header{flex-direction:column;align-items:flex-start}.table thead th,.table tbody td,.table tfoot td{padding:8px 10px;font-size:13px}.btn-primary,.btn-secondary,.btn-danger,.btn-ghost{min-height:44px}.btn-sm{min-height:36px}h2{font-size:18px}h3{font-size:15px}}
