:root{--sj-ink: #0E0F12;--sj-ink-2: #16181D;--sj-ink-3: #1F2128;--sj-crimson: #C8161D;--sj-crimson-2: #8E0F14;--sj-gold: #D4A23A;--sj-cream: #F4F1EA;--sj-paper: #FFFFFF;--sj-surface: #FAF7F1;--sj-line: #E5E2DA;--sj-line-strong: #D4D0C4;--sj-line-dark: rgba(255, 255, 255, .14);--sj-text-dark: #1A1B1E;--sj-text-body: #2C2E33;--sj-text-muted: #6B6D74;--sj-text-subtle: #8A8C92;--sj-text-on-dark: #F4F1EA;--sj-text-on-dark-muted: rgba(244, 241, 234, .72);--sj-success-bg: #E5F1D8;--sj-success-fg: #33691E;--sj-success-line: #C5DDA6;--sj-warning-bg: #FFF1D6;--sj-warning-fg: #8A5A00;--sj-warning-line: #F2D58E;--sj-danger-bg: #FCE6E6;--sj-danger-fg: #B0121A;--sj-danger-line: #F3BFC0;--font-display: "Bebas Neue", "Oswald", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--shadow-card: 0 1px 2px rgba(14, 15, 18, .04), 0 6px 18px rgba(14, 15, 18, .06);--shadow-card-hover: 0 2px 6px rgba(14, 15, 18, .05), 0 14px 32px rgba(200, 22, 29, .1)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);color:var(--sj-text-body);background:var(--sj-surface);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto}h1,h2,h3,h4{color:var(--sj-text-dark);letter-spacing:.5px}h1{font-family:var(--font-display);font-weight:400;font-size:clamp(1.8rem,3vw,2.4rem);text-transform:uppercase;margin:0 0 18px}h2{font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:1px;margin:0 0 12px}a{color:var(--sj-crimson);text-decoration:none}a:hover{color:var(--sj-crimson-2);text-decoration:underline}.app-shell{min-height:100vh}.app-shell-main{max-width:1080px;margin:0 auto;padding:32px 24px 64px}@media (max-width: 640px){.app-shell-main{padding:20px 16px 40px}}.app-header{background:var(--sj-ink);color:var(--sj-text-on-dark);border-bottom:1px solid var(--sj-line-dark)}.app-header-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;max-width:1080px;margin:0 auto;padding:16px 24px}.app-header-brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--sj-text-on-dark)}.app-header-mark{width:40px;height:40px;background:var(--sj-crimson);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.55rem;letter-spacing:1px;border-radius:4px;box-shadow:0 2px 6px #0006}.app-header-wordmark{font-family:var(--font-display);font-size:1.35rem;letter-spacing:2.5px;text-transform:uppercase}.app-header-nav{display:flex;gap:4px;flex-wrap:wrap}.app-header-nav a{text-decoration:none;color:var(--sj-text-on-dark-muted);padding:8px 14px;border-radius:999px;font-size:14px;font-weight:500;letter-spacing:.02em;transition:background .14s ease,color .14s ease}.app-header-nav a:hover{color:var(--sj-text-on-dark);background:#ffffff0f}.app-header-nav a.active{color:#fff;background:var(--sj-crimson)}.app-header-user{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--sj-text-on-dark-muted)}.app-header-user .user-name{color:var(--sj-text-on-dark);font-weight:500}@media (max-width: 640px){.app-header-inner{gap:10px;padding:14px 16px}.app-header-nav{order:3;width:100%;gap:6px}.app-header-user .user-name{display:none}.app-header-wordmark{font-size:1.15rem}}.page-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:8px}@media (max-width: 640px){.page-toolbar{align-items:flex-start}}.section-card{background:var(--sj-paper);border:1px solid var(--sj-line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:24px;margin-bottom:20px;position:relative;overflow:hidden}.section-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--sj-crimson)}@media (max-width: 640px){.section-card{padding:18px}}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px}@media (max-width: 800px){.detail-grid{grid-template-columns:minmax(0,1fr);gap:16px}}.invoice-image{display:block;max-width:100%;max-height:75vh;object-fit:contain;border-radius:var(--radius);border:1px solid var(--sj-line);background:var(--sj-cream)}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll>table{min-width:520px}.invoice-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.invoice-card{display:block;padding:16px 18px;background:var(--sj-paper);border:1px solid var(--sj-line);border-radius:var(--radius);text-decoration:none;color:inherit;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.invoice-card:hover{border-color:var(--sj-crimson);box-shadow:var(--shadow-card-hover);text-decoration:none}.invoice-card:focus-visible{outline:2px solid var(--sj-crimson);outline-offset:2px}.invoice-card:active{transform:translateY(1px)}.invoice-card-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.invoice-card-title{font-size:15px;font-weight:600;color:var(--sj-text-dark);min-width:0;flex:1 1 auto}.invoice-card-subtitle{font-weight:400;color:var(--sj-text-muted)}.invoice-card-meta{margin-top:4px;font-size:13px;color:var(--sj-text-subtle)}.filters-bar{flex-wrap:wrap}@media (max-width: 640px){.filters-bar>label{flex:1 1 100%}.filters-bar input,.filters-bar select{width:100%}}input,select,textarea,button{font-family:inherit}input[type=text],input[type=date],input[type=file],select,textarea{background:var(--sj-paper);color:var(--sj-text-body);border:1px solid var(--sj-line-strong);border-radius:var(--radius-xs);transition:border-color .14s ease,box-shadow .14s ease}input[type=text]:focus,input[type=date]:focus,select:focus,textarea:focus{outline:none;border-color:var(--sj-crimson);box-shadow:0 0 0 3px #c8161d26}@media (max-width: 640px){button,input[type=file],select,input[type=text],input[type=date]{min-height:40px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
