:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color-scheme:light dark}body{margin:0;overflow-x:hidden}.auth-loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.1rem}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;border-bottom:1px solid rgba(148,163,184,.4);position:relative}.app-header__brand{display:flex;align-items:center;gap:.6rem;font-weight:700;text-decoration:none;color:inherit;min-width:0}.app-header__brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header__logo{height:44px;width:auto;max-width:160px;object-fit:contain;flex-shrink:0}.app-nav-container{flex:1;min-width:0}.app-nav{display:flex;gap:1rem;flex-wrap:wrap}.hamburger-btn{display:none;flex-direction:column;justify-content:center;gap:4px;width:36px;height:36px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0}.hamburger-btn span{display:block;height:2px;background:currentColor;border-radius:1px}@media (max-width: 768px){.app-header{gap:.75rem;padding:.6rem 1rem;flex-wrap:nowrap}.hamburger-btn{display:flex}.app-header__brand span{max-width:40vw}.app-nav-container{display:none;position:absolute;top:100%;left:0;right:0;background:Canvas;border-bottom:1px solid rgba(148,163,184,.4);box-shadow:0 8px 24px #0000001f;z-index:20;padding:.5rem 1rem 1rem}.app-nav-container--open{display:block}.app-nav{flex-direction:column;gap:0}.app-nav .nav-link{padding:.75rem 0;border-bottom:1px solid rgba(148,163,184,.2)}}.nav-link{text-decoration:none;color:inherit;opacity:.7;padding:.25rem 0;border-bottom:2px solid transparent}.nav-link--active{opacity:1;border-bottom-color:#2563eb;font-weight:600}.app-content{flex:1}.user-menu-container{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.35rem;background:transparent;border:1px solid rgba(148,163,184,.5);border-radius:6px;padding:.4rem .75rem;color:inherit;font:inherit;cursor:pointer}.user-menu-trigger__caret{font-size:.7rem;opacity:.7}.user-menu{position:absolute;top:calc(100% + .4rem);right:0;min-width:180px;background:Canvas;border:1px solid rgba(148,163,184,.4);border-radius:8px;box-shadow:0 8px 24px #0000001f;overflow:hidden;z-index:20}.user-menu__item{display:block;width:100%;text-align:left;padding:.65rem 1rem;background:transparent;border:none;color:inherit;text-decoration:none;font:inherit;cursor:pointer}.user-menu__item:hover{background:#2563eb14}.user-menu__item--danger{color:#dc2626;border-top:1px solid rgba(148,163,184,.3)}.page{max-width:960px;margin:0 auto;padding:1.5rem}.page--with-sticky-bar{padding-bottom:5rem}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.page-header__summary{opacity:.7;margin:.25rem 0 0}.button-group{display:flex;align-items:center;gap:.75rem}.btn{padding:.7rem 1.25rem;border-radius:6px;font-weight:600;cursor:pointer;border:1px solid transparent;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:#2563eb;color:#fff}.btn--secondary{background:transparent;border-color:#94a3b8;color:inherit}.btn--success{background:#16a34a;color:#fff}.btn--danger{background:#dc2626;color:#fff}.link-button{background:none;border:none;padding:0;color:#2563eb;text-decoration:underline;cursor:pointer;font:inherit}.dropzone{border:2px dashed rgba(148,163,184,.6);border-radius:8px;padding:1.5rem;text-align:center;margin-bottom:1rem}.dropzone--active{border-color:#2563eb;background:#2563eb0f}.dropzone__hint{opacity:.6;font-size:.85rem}.dropzone__file{font-weight:600}.dropzone__actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-top:.75rem}.ocr-box{border:1px solid rgba(37,99,235,.4);background:#2563eb0f;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.ocr-box--processing{opacity:.7;font-style:italic}.ocr-box--failed{border-color:#dc262666;background:#dc26260f;color:#b91c1c}.ocr-box__title{margin:0 0 .5rem;font-weight:700}.ocr-box__fields{display:flex;gap:1.5rem;flex-wrap:wrap;margin:0 0 .75rem}.ocr-box__fields dt{font-size:.75rem;opacity:.6}.ocr-box__fields dd{margin:0;font-weight:600}.expense-form{display:flex;flex-direction:column}.form-row{display:grid;gap:1rem;margin-bottom:1rem}.form-row--2{grid-template-columns:repeat(2,1fr)}.form-row--3{grid-template-columns:repeat(3,1fr)}.field{display:flex;flex-direction:column;gap:.35rem}.field--full{grid-column:1 / -1}.field label{font-size:.85rem;font-weight:600}.field input,.field select,.field textarea{padding:.55rem;border-radius:6px;border:1px solid rgba(148,163,184,.6);background:transparent;color:inherit;font:inherit}.field-error{color:#dc2626;font-size:.85rem;margin:.25rem 0 0}.payment-type-group{border:1px solid rgba(148,163,184,.4);border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem;display:flex;gap:1.5rem;flex-wrap:wrap}.payment-type-option{display:flex;align-items:center;gap:.4rem;font-weight:400}.amount-summary{text-align:right;margin-bottom:1rem}.form-actions{display:flex;gap:1rem}.form-actions .btn{flex:1}@media (max-width: 640px){.form-row--2,.form-row--3{grid-template-columns:1fr}.form-actions{flex-direction:column}}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1.5rem}.table-scroll .data-table{margin-bottom:0}.data-table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.data-table th,.data-table td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid rgba(148,163,184,.3)}.data-table tbody tr[role=button]{cursor:pointer}.data-table input[type=checkbox]{width:20px;height:20px;cursor:pointer}.data-table tbody tr[role=button]:hover{background:#2563eb0d}.data-table__row--selected{background:#2563eb14}.rejection-banner{background:#dc262614;border:1px solid rgba(220,38,38,.3);border-radius:8px;padding:.75rem 1rem;margin-bottom:1.5rem}.status-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600}.status-badge--draft{background:#fef9c3;color:#854d0e}.status-badge--in-approval{background:#dbeafe;color:#1e40af}.status-badge--approved{background:#dcfce7;color:#166534}.status-badge--rejected{background:#fee2e2;color:#991b1b}.status-badge--duplicate-warning{background:#fef3c7;color:#92400e;margin-left:.4rem;cursor:help}.sticky-bar{position:fixed;left:0;right:0;bottom:0;background:Canvas;border-top:1px solid rgba(148,163,184,.4);padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.tab-group{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid rgba(148,163,184,.4)}.tab{padding:.6rem 1rem;background:none;border:none;border-bottom:2px solid transparent;font:inherit;font-weight:600;opacity:.6;cursor:pointer}.tab--active{opacity:1;border-bottom-color:#2563eb;color:#2563eb}.filter-bar{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.filter-bar .field{min-width:160px;margin-bottom:0}.avatar{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:#2563eb26;font-size:.75rem;font-weight:700}.approval-detail{border-top:1px solid rgba(148,163,184,.4);padding-top:1.5rem;margin-top:1rem}.approval-detail .field{margin-bottom:1rem}.profile-fields{display:grid;grid-template-columns:repeat(2,minmax(200px,1fr));gap:1.25rem;max-width:640px;margin-bottom:1.5rem}.profile-fields dt{font-size:.8rem;opacity:.6;margin-bottom:.2rem}.profile-fields dd{margin:0;font-weight:600}.profile-note{opacity:.7;font-size:.9rem}.settings-group{border:1px solid rgba(148,163,184,.4);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.5rem;max-width:480px}.settings-option{display:flex;align-items:center;gap:.5rem;padding:.4rem 0}.settings-option__preview{opacity:.7;font-variant-numeric:tabular-nums}.settings-group--wide{max-width:640px}.settings-group--wide h2{margin-top:0}.logo-uploader{display:flex;align-items:center;gap:1.5rem}.logo-uploader__preview{height:64px;width:64px;object-fit:contain;border:1px solid rgba(148,163,184,.4);border-radius:8px;padding:.5rem}.logo-uploader>div{display:flex;gap:.75rem}.expense-entry-layout{display:grid;grid-template-columns:220px 1fr;gap:2rem;align-items:start}.company-info-panel{border:1px solid rgba(148,163,184,.4);border-radius:8px;padding:1rem}.dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:1rem}.dashboard-card{border:1px solid rgba(148,163,184,.4);border-radius:8px;padding:1rem}.dashboard-card--wide{grid-column:1 / -1}.dashboard-card h2,.company-info-panel h2{margin-top:0;font-size:1rem}.company-info-panel dl{margin:0}.company-info-panel dt{font-size:.75rem;opacity:.6;margin-top:.75rem}.company-info-panel dd{margin:.15rem 0 0;font-weight:600;word-break:break-word}@media (max-width: 800px){.expense-entry-layout,.dashboard-grid,.profile-fields{grid-template-columns:1fr}}@media (max-width: 640px){.page{padding:1rem}.sticky-bar{flex-wrap:wrap;justify-content:center;padding:.75rem 1rem}.page--with-sticky-bar{padding-bottom:8rem}.sticky-bar>span{flex:1 1 100%;text-align:center;margin-bottom:.25rem}.page-header,.button-group{flex-wrap:wrap}}@media (prefers-color-scheme: dark){.status-badge--draft{background:#ca8a0440;color:#fde68a}.status-badge--in-approval{background:#2563eb40;color:#bfdbfe}.status-badge--approved{background:#16a34a40;color:#bbf7d0}.status-badge--rejected{background:#dc262640;color:#fecaca}.status-badge--duplicate-warning{background:#d9770640;color:#fde68a}}
