:root{--bg: #f5f6fb;--surface: #ffffff;--surface-2: #eef0fa;--ink: #1a1f36;--ink-soft: #4b5568;--muted: #555d70;--line: #e3e5f3;--primary: #4b5ab7;--primary-ink: #363f87;--primary-soft: #e8eaf7;--primary-light: #5c67c1;--accent: #fb7219;--accent-ink: #a8480d;--accent-soft: #ffe8d6;--navy: #1c2140;--success: #189a6b;--success-ink: #0f7752;--success-soft: #dcf5ea;--danger: #d43f36;--danger-ink: #a52820;--danger-soft: #fbe1df;--warn: #c17a12;--warn-ink: #7a4d0a;--warn-soft: #fbead2;--shadow-sm: 0 1px 2px rgba(28, 33, 64, .06), 0 1px 1px rgba(28, 33, 64, .04);--shadow-md: 0 6px 16px rgba(28, 33, 64, .08), 0 2px 6px rgba(28, 33, 64, .05);--shadow-lg: 0 16px 40px rgba(28, 33, 64, .14), 0 4px 12px rgba(28, 33, 64, .06);--shadow-glow: 0 8px 24px rgba(75, 90, 183, .25);--ease: cubic-bezier(.22, 1, .36, 1)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #12141f;--surface: #1a1d2e;--surface-2: #232640;--ink: #eef0fa;--ink-soft: #b8bcd4;--muted: #979bc0;--line: #2f3350;--primary: #5c67c1;--primary-ink: #a5addf;--primary-soft: #262b52;--primary-light: #636cb3;--accent: #fb7219;--accent-ink: #ffb27a;--accent-soft: #4a2a12;--navy: #0a0b14;--success: #34c98f;--success-ink: #34c98f;--success-soft: #12352a;--danger: #ef6b62;--danger-ink: #ef6b62;--danger-soft: #3a1815;--warn: #e0a53f;--warn-ink: #e0a53f;--warn-soft: #3a2c10;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 1px rgba(0, 0, 0, .2);--shadow-md: 0 6px 16px rgba(0, 0, 0, .35), 0 2px 6px rgba(0, 0, 0, .2);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .45), 0 4px 12px rgba(0, 0, 0, .25)}}:root[data-theme=dark]{--bg: #12141f;--surface: #1a1d2e;--surface-2: #232640;--ink: #eef0fa;--ink-soft: #b8bcd4;--muted: #979bc0;--line: #2f3350;--primary: #5c67c1;--primary-ink: #a5addf;--primary-soft: #262b52;--primary-light: #636cb3;--accent: #fb7219;--accent-ink: #ffb27a;--accent-soft: #4a2a12;--navy: #0a0b14;--success: #34c98f;--success-ink: #34c98f;--success-soft: #12352a;--danger: #ef6b62;--danger-ink: #ef6b62;--danger-soft: #3a1815;--warn: #e0a53f;--warn-ink: #e0a53f;--warn-soft: #3a2c10;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 1px rgba(0, 0, 0, .2);--shadow-md: 0 6px 16px rgba(0, 0, 0, .35), 0 2px 6px rgba(0, 0, 0, .2);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .45), 0 4px 12px rgba(0, 0, 0, .25)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 100% 0%,rgba(251,114,25,.05),transparent 40%),radial-gradient(circle at 0% 20%,rgba(75,90,183,.06),transparent 45%),var(--bg);background-attachment:fixed;color:var(--ink);font-family:Inter,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2.form-subheading,.shell-brand,.shell-brand-mobile,.auth-brand{font-family:Sora,Inter,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;opacity:.025;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}h1{font-size:1.5rem;font-weight:700;margin:0 0 8px;letter-spacing:-.01em}h2.form-subheading{font-size:1.02rem;font-weight:650;margin:28px 0 14px;color:var(--ink-soft)}a{color:var(--primary-ink)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes floatBlob{0%,to{transform:translate(0) scale(1)}33%{transform:translate(3%,-4%) scale(1.06)}66%{transform:translate(-2%,3%) scale(.97)}}@keyframes shimmerSweep{0%{transform:translate(-120%) skew(-12deg)}to{transform:translate(220%) skew(-12deg)}}@keyframes logoPop{0%{opacity:0;transform:scale(.7) rotate(-8deg)}60%{opacity:1;transform:scale(1.05) rotate(2deg)}to{transform:scale(1) rotate(0)}}.shell-main>*{animation:fadeInUp .45s var(--ease) both}.shell{min-height:100vh;display:flex;flex-direction:column}.logo-mark{display:block;flex-shrink:0}.logo-mark-animated{animation:logoPop .7s var(--ease) both}.shell-brand:hover .logo-mark{animation:logoPop .5s var(--ease)}.shell-topbar,.shell-overlay{display:none}.shell-body{flex:1;display:flex;align-items:stretch;min-height:100vh}.shell-sidebar{flex-shrink:0;width:248px;display:flex;flex-direction:column;gap:4px;padding:26px 18px;background:var(--surface);border-right:1px solid var(--line);position:sticky;top:0;height:100vh;overflow-y:auto}.shell-brand{display:flex;align-items:center;gap:10px;font-weight:750;font-size:1.05rem;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;text-decoration:none;padding:4px 8px 18px}.shell-nav{display:flex;flex-direction:column;gap:3px}.shell-nav-link{display:flex;align-items:center;gap:12px;color:var(--ink-soft);text-decoration:none;font-size:.92rem;font-weight:550;padding:10px 14px;border-radius:9px;white-space:nowrap;transition:color .15s ease,background .15s ease}.shell-nav-link span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-nav-link svg{flex-shrink:0;color:var(--muted);transition:color .15s ease}.shell-nav-link:hover{color:var(--ink);background:var(--surface-2)}.shell-nav-link.active{color:var(--primary-ink);background:var(--primary-soft);font-weight:650}.shell-nav-link.active svg{color:var(--primary-ink)}.shell-sidebar-footer{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.theme-toggle-row,.shell-logout-btn{display:flex;align-items:center;gap:12px;background:none;color:var(--ink-soft);font-weight:550;font-size:.88rem;padding:9px 12px;border-radius:9px;box-shadow:none;width:100%;text-align:left}.theme-toggle-row:before,.shell-logout-btn:before{display:none}.theme-toggle-row svg,.shell-logout-btn svg{flex-shrink:0;color:var(--muted)}.theme-toggle-row:hover:not(:disabled),.shell-logout-btn:hover:not(:disabled){background:var(--surface-2);color:var(--ink);transform:none;box-shadow:none}.shell-footer-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 10px 0}.shell-account-card{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:6px 0 2px;border-radius:10px;color:inherit;text-decoration:none;transition:background .15s ease}.shell-account-card:hover{background:var(--surface-2)}.shell-account-info{display:flex;flex-direction:column;min-width:0}.shell-user-name{font-size:.86rem;font-weight:650;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-user-email{font-size:.74rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-user-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary-light),var(--primary));color:#fff;font-weight:700;font-size:.8rem;box-shadow:var(--shadow-sm);flex-shrink:0;text-decoration:none}.shell-main{flex:1;min-width:0;padding:44px 48px 72px}.shell-main>*{max-width:940px;margin-left:auto;margin-right:auto}.page-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:60px 20px;color:var(--muted);font-size:.9rem}.spinner{display:inline-block;border:2.5px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.auth-page{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;overflow:hidden;background:var(--navy)}.auth-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;animation:floatBlob 16s ease-in-out infinite;pointer-events:none}.auth-blob-1{width:46vw;height:46vw;top:-14vw;left:-10vw;background:radial-gradient(circle,var(--primary-light),transparent 70%)}.auth-blob-2{width:40vw;height:40vw;bottom:-16vw;right:-8vw;background:radial-gradient(circle,var(--accent),transparent 70%);animation-delay:-6s}.auth-blob-3{width:28vw;height:28vw;top:30%;right:12%;background:radial-gradient(circle,var(--primary),transparent 70%);animation-delay:-11s;opacity:.35}.auth-brand{position:relative;z-index:1;display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:22px;color:#fff;font-weight:750;font-size:1.3rem;letter-spacing:-.01em;animation:fadeInUp .5s var(--ease) both}.auth-card{--bg: #f5f6fb;--surface: #ffffff;--surface-2: #eef0fa;--ink: #1a1f36;--ink-soft: #4b5568;--muted: #555d70;--line: #e3e5f3;--primary-ink: #363f87;--primary-soft: #e8eaf7;--danger-ink: #a52820;--danger-soft: #fbe1df;position:relative;z-index:1;background:#fffffff7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.4);border-radius:16px;padding:40px 36px;width:100%;max-width:400px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow-lg);animation:fadeInUp .55s .05s var(--ease) both;color:var(--ink)}.auth-subtitle{margin:0 0 8px;color:var(--muted);font-size:.9rem}.auth-switch{margin-top:8px;font-size:.88rem;color:var(--muted);text-align:center}.forgot-password-link{margin:-6px 0 0;font-size:.82rem;text-align:right}form label{display:flex;flex-direction:column;gap:8px;font-size:.9rem;font-weight:600;color:var(--ink-soft)}.label-hint{font-weight:400;color:var(--muted)}.linked-authorization{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.92rem;color:var(--ink-soft);margin-bottom:20px}input,select{font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}input:hover,select:hover{border-color:#c7cbe8}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.search-input{display:block;width:100%;max-width:320px;margin-bottom:14px}.auth-mode-toggle{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:6px}.radio-option{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;color:var(--ink-soft);cursor:pointer}.radio-option input{accent-color:var(--primary);cursor:pointer}.expense-type-choice{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:24px}.expense-type-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.expense-type-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.expense-type-card strong{font-size:1.02rem;color:var(--ink)}.expense-type-card span{color:var(--muted);font-size:.86rem}.form-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:18px;margin-bottom:28px;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .2s ease}.form-error{background:var(--danger-soft);color:var(--danger-ink);padding:8px 12px;border-radius:7px;font-size:.88rem;margin:0;animation:fadeInUp .3s var(--ease) both}.form-total{font-weight:650;text-align:right}.inline-fields{display:flex;gap:18px}.inline-fields label{flex:1}.detail-grid{display:grid;grid-template-columns:max-content 1fr;gap:10px 24px;margin:0}.detail-grid dt{color:var(--muted);font-size:.85rem}.detail-grid dd{margin:0}.tab-bar{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px}.tab-button{position:relative;background:none;color:var(--muted);font-weight:600;padding:8px 14px;border-radius:6px 6px 0 0;box-shadow:none;overflow:visible;transition:color .18s ease,background .18s ease}.tab-button:before{display:none}.tab-button:after{content:"";position:absolute;left:10%;right:10%;bottom:-1px;height:2px;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:2px;transform:scaleX(0);transform-origin:center;transition:transform .25s var(--ease)}.tab-button:hover:not(:disabled){color:var(--ink);background:var(--surface-2);transform:none;box-shadow:none}.tab-button.active{color:var(--primary-ink)}.tab-button.active:after{transform:scaleX(1)}.expense-lines{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.expense-line-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 20px;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .2s ease}.expense-line-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.expense-line-header{display:flex;justify-content:space-between;align-items:baseline}.expense-line-date{color:var(--muted);font-size:.85rem;margin-left:10px}.expense-line-description{color:var(--ink-soft);font-size:.88rem;margin:6px 0 0}.attachments{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.attachments-empty{color:var(--muted);font-size:.85rem;margin:0}.attachment-list{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:4px}.attachment-list li{display:flex;align-items:center;gap:10px;font-size:.85rem}.attachment-size{color:var(--muted)}.attachment-thumbnail{flex-shrink:0;width:36px;height:36px;padding:0;border-radius:6px;overflow:hidden;background:var(--surface-2);box-shadow:none}.attachment-thumbnail:before{display:none}.attachment-thumbnail:hover{transform:none;box-shadow:none;outline:2px solid var(--primary-soft)}.attachment-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.attachment-remove{color:var(--danger-ink)}.attachment-upload{display:inline-block;cursor:pointer;color:var(--primary-ink);font-size:.85rem;font-weight:600}button{position:relative;font:inherit;cursor:pointer;border:none;border-radius:8px;padding:10px 18px;background:linear-gradient(135deg,var(--primary-light),var(--primary));color:#fff;font-weight:600;overflow:hidden;box-shadow:0 1px 2px #1c21401f;transition:transform .15s var(--ease),box-shadow .15s var(--ease),filter .15s ease}button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);transform:translate(-120%) skew(-12deg);pointer-events:none}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-glow);filter:saturate(1.08)}button:hover:not(:disabled):before{animation:shimmerSweep .9s ease}button:active:not(:disabled){transform:translateY(0) scale(.98)}button:disabled{opacity:.55;cursor:default;transform:none;box-shadow:none}.button-primary{background:linear-gradient(135deg,var(--primary-light),var(--primary));color:#fff;text-decoration:none;display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:8px;font-weight:600;box-shadow:0 1px 2px #1c21401f;transition:transform .15s var(--ease),box-shadow .15s var(--ease)}.button-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-glow)}.button-secondary{background:var(--surface-2);color:var(--ink);align-self:flex-start;box-shadow:none}.button-secondary:before{display:none}.button-secondary:hover:not(:disabled){background:#e4e7f6;box-shadow:none}.button-danger{background:var(--danger-soft);color:var(--danger-ink);box-shadow:none}.button-danger:before{display:none}.button-danger:hover:not(:disabled){background:#f8cdc9;box-shadow:none;transform:translateY(-1px)}.button-link{background:none;color:var(--primary-ink);font-weight:500;padding:0;box-shadow:none}.button-link:before{display:none}.button-link:hover:not(:disabled){transform:none;box-shadow:none;text-decoration:underline}.section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px}.back-link{display:inline-flex;align-items:center;gap:4px;color:var(--muted);text-decoration:none;font-size:.88rem;font-weight:550;margin-bottom:14px;transition:color .15s ease}.back-link:hover{color:var(--primary-ink)}.section-subtitle{color:var(--muted);margin:0;font-size:.92rem}.section-note{color:var(--muted);font-size:.85rem;background:var(--surface-2);border-radius:8px;padding:10px 14px;margin-bottom:20px}.empty-state{color:var(--muted);padding:24px;text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:10px}.data-table,.line-items-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm)}.data-table th,.line-items-table th{text-align:center;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:13px 16px;border-bottom:1px solid var(--line);background:var(--surface-2)}.data-table td,.line-items-table td{padding:13px 16px;border-bottom:1px solid var(--line);text-align:center}.data-table tbody tr,.line-items-table tbody tr{transition:background .15s ease}.data-table tbody tr:hover,.line-items-table tbody tr:hover{background:var(--primary-soft)}.data-table tr:last-child td,.line-items-table tr:last-child td{border-bottom:none}.line-items-table input{width:100%}.line-items-table tfoot td{font-weight:650;border-top:2px solid var(--line);border-bottom:none}.numeric{font-variant-numeric:tabular-nums;text-align:center}.status-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.76rem;font-weight:600;animation:fadeInUp .3s var(--ease) both}.status-draft{background:var(--surface-2);color:var(--muted)}.status-pending,.status-pending_approval{background:var(--warn-soft);color:var(--warn-ink)}.status-approved{background:var(--success-soft);color:var(--success-ink)}.status-rejected{background:var(--danger-soft);color:var(--danger-ink)}.status-changes_requested{background:var(--warn-soft);color:var(--warn-ink)}.status-skipped{background:var(--surface-2);color:var(--muted)}.status-trial{background:var(--warn-soft);color:var(--warn-ink)}.status-active{background:var(--success-soft);color:var(--success-ink)}.status-suspended{background:var(--danger-soft);color:var(--danger-ink)}.status-trialing{background:var(--warn-soft);color:var(--warn-ink)}.status-past_due{background:var(--danger-soft);color:var(--danger-ink)}.status-canceled{background:var(--surface-2);color:var(--muted)}.approval-steps{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.approval-steps li{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:.9rem;box-shadow:var(--shadow-sm)}.step-comment{color:var(--muted);font-style:italic}.timeline{list-style:none;padding:0;margin:0 0 24px}.timeline-item{position:relative;display:flex;gap:14px;padding-bottom:22px}.timeline-item:before{content:"";position:absolute;left:5px;top:16px;bottom:0;width:2px;background:var(--line)}.timeline-item:last-child:before{display:none}.timeline-dot{flex-shrink:0;width:12px;height:12px;border-radius:50%;margin-top:4px;background:var(--muted);box-shadow:0 0 0 3px var(--surface);z-index:1}.timeline-approved .timeline-dot{background:var(--success)}.timeline-rejected .timeline-dot{background:var(--danger)}.timeline-changes_requested .timeline-dot{background:var(--warn)}.timeline-submitted .timeline-dot{background:var(--primary)}.timeline-content{flex:1}.timeline-line{margin:0;font-size:.9rem}.timeline-date{color:var(--muted);font-size:.78rem}.approval-queue{list-style:none;padding:0;display:flex;flex-direction:column;gap:12px}.approval-queue-item{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 20px;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .2s ease}.approval-queue-item:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.approval-queue-main{display:flex;align-items:center;gap:14px}.approval-queue-main input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);flex-shrink:0}.select-all-row{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--muted);margin-bottom:12px;font-weight:500}.select-all-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.approval-queue-type{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.approval-queue-label{margin:2px 0;font-weight:600}.approval-queue-amount{margin:0;color:var(--ink-soft);font-variant-numeric:tabular-nums}.approval-queue-actions{display:flex;gap:8px}.invite-result{background:var(--success-soft);border-radius:10px;padding:14px 18px;margin-bottom:24px;font-size:.9rem;animation:fadeInUp .35s var(--ease) both}.temp-password{display:inline-block;margin-top:6px;padding:6px 10px;background:var(--surface);border:1px solid var(--line);border-radius:6px;font-family:ui-monospace,SF Mono,Consolas,monospace}.form-success{background:var(--success-soft);color:var(--success-ink);padding:8px 12px;border-radius:7px;font-size:.88rem;margin:0;animation:fadeInUp .3s var(--ease) both}.module-toggle-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm)}.module-toggle-item{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);transition:background .15s ease}.module-toggle-item:hover{background:var(--surface-2)}.module-toggle-item:last-child{border-bottom:none}.switch{position:relative;display:inline-block;width:40px;height:22px}.switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;background:var(--line);border-radius:22px;transition:background .15s ease}.switch-slider:before{content:"";position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .15s ease}.switch input:checked+.switch-slider{background:linear-gradient(135deg,var(--primary-light),var(--primary))}.switch input:checked+.switch-slider:before{transform:translate(18px)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c214073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:100;animation:fadeInUp .15s ease both}.confirm-dialog{background:var(--surface);border-radius:14px;padding:28px;width:100%;max-width:380px;box-shadow:var(--shadow-lg)}.confirm-dialog h3{margin:0 0 8px;font-size:1.05rem}.confirm-dialog p{margin:0;color:var(--ink-soft);font-size:.92rem}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}@media (max-width: 860px){.shell-topbar{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#ffffffd1;backdrop-filter:blur(10px) saturate(1.4);-webkit-backdrop-filter:blur(10px) saturate(1.4);border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:30}:root[data-theme=dark] .shell-topbar{background:#1a1d2edb}.shell-menu-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:none;color:var(--ink-soft);border:none;box-shadow:none}.shell-menu-toggle:before{display:none}.shell-menu-toggle:hover:not(:disabled){transform:none;box-shadow:none;color:var(--ink)}.shell-brand-mobile{flex:1;display:flex;align-items:center;gap:8px;font-weight:750;font-size:1rem;color:var(--ink);text-decoration:none}.shell-topbar .shell-user-avatar{width:30px;height:30px;font-size:.76rem}.shell-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0b1480;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:39;animation:fadeInUp .15s ease both}.shell-body{min-height:0}.shell-sidebar{position:fixed;top:0;bottom:0;left:0;z-index:40;width:82vw;max-width:300px;box-shadow:var(--shadow-lg);transform:translate(-100%);transition:transform .25s var(--ease)}.shell-sidebar.open{transform:translate(0)}.shell-main{padding:24px 18px 52px}h1{font-size:1.25rem}.section-header{flex-direction:column;align-items:stretch}.expense-type-choice{grid-template-columns:1fr}.data-table,.line-items-table{display:block;overflow-x:auto}.approval-queue-item{flex-direction:column;align-items:stretch;gap:12px}}@media print{.shell-topbar,.shell-sidebar,.confirm-overlay,button,.attachment-upload,.search-input,form.form-card{display:none!important}body{background:#fff}body:before{display:none}.shell-main{padding:0}.shell-main>*{max-width:100%}a{color:inherit;text-decoration:none}.expense-line-card,.data-table,.line-items-table,.approval-steps li,.timeline{box-shadow:none;break-inside:avoid}}
