:root{--c-primary:#1e4db7;--c-primary-light:#dbeafe;--c-accent:#10b981;--c-bg:#f9fafb;--c-surface:#fff;--c-text:#111827;--c-text-secondary:#6b7280;--c-success:#059669;--c-warning:#d97706;--c-error:#dc2626;--c-border:#e5e7eb;--ff-base:Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--ff-mono:"Courier New", Courier, monospace;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--sp-12:48px;--sp-16:64px;--r-card:8px;--r-input:4px;--r-badge:4px;--shadow-card:0 1px 3px #00000014}*,:before,:after{box-sizing:border-box}html{font-size:16px}body{background:var(--c-bg);color:var(--c-text);font-family:var(--ff-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}h1{margin:0 0 var(--sp-4);font-size:1.75rem;font-weight:700;line-height:1.2}h2{margin:0 0 var(--sp-3);font-size:1.375rem;font-weight:600;line-height:1.3}h3{margin:0 0 var(--sp-3);font-size:1.125rem;font-weight:600;line-height:1.4}p{margin:0 0 var(--sp-4)}a{color:var(--c-primary);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--ff-mono);background:var(--c-bg);border-radius:3px;padding:1px 4px;font-size:.9em}.app-shell{flex-direction:column;min-height:100vh;display:flex}.top-bar{background:var(--c-surface);border-bottom:1px solid var(--c-border);padding:var(--sp-3) var(--sp-4);z-index:10;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.top-bar-logo{color:var(--c-primary);font-size:1rem;font-weight:700;text-decoration:none}.top-bar-logo:hover{text-decoration:none}.mobile-nav{background:var(--c-surface);border-bottom:1px solid var(--c-border);gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.mobile-nav::-webkit-scrollbar{display:none}.mobile-nav-item{white-space:nowrap;min-height:36px;padding:var(--sp-2) var(--sp-3);font-size:.875rem;font-family:var(--ff-base);border-radius:var(--r-badge);color:var(--c-text);border:1px solid var(--c-border);background:var(--c-surface);cursor:pointer;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.mobile-nav-item:hover{background:var(--c-bg);text-decoration:none}.mobile-nav-item.active{background:var(--c-primary-light);color:var(--c-primary);border-color:var(--c-primary-light);font-weight:600}.mobile-nav-item.disabled{opacity:.45;cursor:default;pointer-events:none}.sidebar{display:none}.main-content{padding:var(--sp-4) var(--sp-4);flex:1;min-width:0;overflow-x:hidden}@media (width>=768px){.app-shell{flex-direction:row}.top-bar,.mobile-nav{display:none}.sidebar{background:var(--c-surface);border-right:1px solid var(--c-border);width:240px;padding:var(--sp-6) 0;flex-direction:column;flex-shrink:0;height:100vh;min-height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.main-content{padding:var(--sp-8) var(--sp-8);max-width:784px}}.sidebar-logo{padding:0 var(--sp-6) var(--sp-6);color:var(--c-primary);border-bottom:1px solid var(--c-border);margin-bottom:var(--sp-4);font-size:1rem;font-weight:700;text-decoration:none;display:block}.sidebar-logo:hover{text-decoration:none}.sidebar-section{padding:0 0 var(--sp-4)}.sidebar-label{text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-secondary);padding:var(--sp-1) var(--sp-6) var(--sp-2);font-size:.7rem;font-weight:600;display:block}.nav-item{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-6);font-size:.9rem;font-family:var(--ff-base);color:var(--c-text);text-align:left;cursor:pointer;background:0 0;border:none;width:100%;min-height:44px;text-decoration:none;display:flex;position:relative}.nav-item:hover{background:var(--c-bg);color:var(--c-text);text-decoration:none}.nav-item.active{color:var(--c-primary);background:var(--c-primary-light);font-weight:600}.nav-item.disabled{color:var(--c-text-secondary);cursor:default;pointer-events:none}.nav-item .soon{color:var(--c-text-secondary);background:var(--c-bg);border:1px solid var(--c-border);white-space:nowrap;border-radius:10px;margin-left:auto;padding:1px 6px;font-size:.65rem}.sidebar-footer{padding:var(--sp-4) var(--sp-6);border-top:1px solid var(--c-border);margin-top:auto}.standalone-page{min-height:100vh;padding:var(--sp-12) var(--sp-4);background:var(--c-bg);justify-content:center;align-items:flex-start;display:flex}.standalone-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);width:100%;max-width:420px;box-shadow:var(--shadow-card);padding:var(--sp-8) var(--sp-6)}.standalone-title{color:var(--c-primary);margin:0 0 var(--sp-2);font-size:1.5rem;font-weight:700}.standalone-subtitle{color:var(--c-text-secondary);margin:0 0 var(--sp-6);font-size:.9rem}.btn{min-height:44px;padding:var(--sp-3) var(--sp-6);border-radius:var(--r-card);font-family:var(--ff-base);cursor:pointer;justify-content:center;align-items:center;gap:var(--sp-2);white-space:nowrap;border:none;font-size:.9rem;font-weight:600;line-height:1;text-decoration:none;transition:opacity .12s;display:inline-flex}.btn:hover{opacity:.88;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--c-primary);color:#fff}.btn-success{background:var(--c-success);color:#fff}.btn-ghost{background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border)}.btn-danger{background:var(--c-error);color:#fff}.btn-outline{color:var(--c-primary);border:1px solid var(--c-primary);background:0 0}.btn-lg{min-height:56px;padding:var(--sp-4) var(--sp-8);font-size:1rem}.btn-full{width:100%}.btn-sm{min-height:36px;padding:var(--sp-2) var(--sp-3);font-size:.85rem}.link-back{align-items:center;gap:var(--sp-2);color:var(--c-text-secondary);margin-bottom:var(--sp-4);min-height:44px;font-size:.875rem;text-decoration:none;display:inline-flex}.link-back:hover{color:var(--c-primary);text-decoration:none}.form-stack{gap:var(--sp-4);flex-direction:column;display:flex}.field{gap:var(--sp-2);flex-direction:column;display:flex}.field-label{color:var(--c-text);font-size:.875rem;font-weight:600}.field-hint{color:var(--c-text-secondary);margin:0;font-size:.8rem}.input{width:100%;padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-border);border-radius:var(--r-input);font-family:var(--ff-base);color:var(--c-text);background:var(--c-surface);appearance:auto;min-height:44px;font-size:1rem}.input:focus{outline:2px solid var(--c-primary);outline-offset:1px;border-color:var(--c-primary)}.alert{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-card);margin-bottom:var(--sp-4);border:1px solid #0000;font-size:.875rem}.alert-error{color:var(--c-error);background:#fef2f2;border-color:#fecaca}.alert-success{color:var(--c-success);background:#f0fdf4;border-color:#bbf7d0}.alert-warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.alert-info{background:var(--c-primary-light);color:var(--c-primary);border-color:#bfdbfe}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);box-shadow:var(--shadow-card)}.card-body{padding:var(--sp-6)}.card-header{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.card-header h3{margin:0}.badge{padding:2px var(--sp-2);border-radius:var(--r-badge);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;align-items:center;font-size:.72rem;font-weight:600;line-height:1.4;display:inline-flex}.badge-uploading{background:var(--c-primary-light);color:var(--c-primary)}.badge-processing{color:#92400e;background:#fef3c7}.badge-review,.badge-review-needed{color:#92400e;background:#fef3c7;font-weight:700}.badge-approved{color:var(--c-success);background:#d1fae5}.badge-filed{color:#065f46;background:#d1fae5;font-weight:700}.badge-uploaded{background:var(--c-bg);color:var(--c-text-secondary);border:1px solid var(--c-border)}.badge-categorized{color:var(--c-success);background:#d1fae5}.badge-doc{background:var(--c-bg);color:var(--c-text-secondary);border:1px solid var(--c-border);text-transform:none;font-size:.8rem;font-weight:400}.badge-confidence-high{color:var(--c-success);background:#d1fae5}.badge-confidence-medium{color:#92400e;background:#fef3c7}.badge-confidence-low{color:var(--c-error);background:#fef2f2}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.9rem}.table th{text-align:left;padding:var(--sp-2) var(--sp-3);border-bottom:2px solid var(--c-border);color:var(--c-text-secondary);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-size:.75rem;font-weight:600}.table td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--c-border);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--c-bg)}.table tfoot td{padding:var(--sp-3);border-top:2px solid var(--c-border);background:var(--c-bg);border-bottom:none;font-weight:700}.col-amount{text-align:right;font-family:var(--ff-mono);font-size:.875rem}.col-right{text-align:right}.col-center{text-align:center}.col-narrow{white-space:nowrap}.row-low-confidence,.row-reverse-charge{background:#fffbeb}.tx-left-confirmed{border-left:3px solid var(--c-success)}.tx-left-pending{border-left:3px solid var(--c-warning)}.tx-left-low{border-left:3px solid var(--c-error)}.amount-payable{color:var(--c-error)}.amount-receivable{color:var(--c-success)}.upload-block{border:1px solid var(--c-border);border-radius:var(--r-card);margin-bottom:var(--sp-3);background:var(--c-surface);overflow:hidden}.upload-trigger{width:100%;padding:var(--sp-4) var(--sp-4);background:var(--c-surface);text-align:left;cursor:pointer;font-size:.95rem;font-weight:600;font-family:var(--ff-base);min-height:56px;color:var(--c-text);justify-content:space-between;align-items:center;gap:var(--sp-3);border:none;display:flex}.upload-trigger:hover{background:var(--c-bg)}.upload-trigger.is-open{background:var(--c-primary-light);color:var(--c-primary)}.upload-desc{padding:0 var(--sp-4) var(--sp-3);color:var(--c-text-secondary);margin:0;font-size:.8rem}.upload-panel{padding:var(--sp-2) var(--sp-3) var(--sp-4)}.upload-option{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--c-bg);border-radius:var(--r-input);cursor:pointer;margin-bottom:var(--sp-2);border:1px solid var(--c-border);min-height:56px;display:flex}.upload-option:hover{background:var(--c-primary-light);border-color:var(--c-primary-light)}.upload-option:active{opacity:.8}.upload-option-icon{flex-shrink:0;font-size:1.4rem}.upload-option-title{color:var(--c-text);font-size:.9rem;font-weight:600}.upload-option-sub{color:var(--c-text-secondary);font-size:.8rem}.file-list{background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-card);padding:var(--sp-3);margin-bottom:var(--sp-4)}.file-list-title{margin:0 0 var(--sp-2);font-size:.85rem;font-weight:600}.file-row{padding:var(--sp-1) 0;justify-content:space-between;align-items:center;gap:var(--sp-2);font-size:.85rem;display:flex}.file-meta{color:var(--c-text-secondary);white-space:nowrap;font-size:.8rem}.chat-shell{flex-direction:column;height:calc(100vh - 130px);display:flex}@media (width>=768px){.chat-shell{height:calc(100vh - 80px)}}.chat-context-bar{color:var(--c-text-secondary);padding:var(--sp-2) var(--sp-3);background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-card);margin-bottom:var(--sp-3);flex-shrink:0;font-size:.85rem}.chat-history{padding:var(--sp-2) 0;gap:var(--sp-3);-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-bubble-wrap{display:flex}.chat-bubble-wrap.is-user{justify-content:flex-end}.chat-bubble-wrap.is-ai{justify-content:flex-start}.chat-bubble{max-width:80%;padding:var(--sp-3) var(--sp-4);font-size:.9rem;line-height:1.5}.chat-bubble.user-bubble{background:var(--c-primary);color:#fff;border-radius:var(--r-card) var(--r-card) var(--r-badge) var(--r-card)}.chat-bubble.ai-bubble{background:var(--c-bg);color:var(--c-text);border:1px solid var(--c-border);border-radius:var(--r-card) var(--r-card) var(--r-card) var(--r-badge)}.chat-bubble.typing-bubble{background:var(--c-bg);color:var(--c-text-secondary);border:1px solid var(--c-border);border-radius:var(--r-card)}.chat-empty{text-align:center;color:var(--c-text-secondary);padding:var(--sp-8) var(--sp-4);margin:auto;font-size:.9rem}.chat-input-bar{padding-top:var(--sp-4);border-top:1px solid var(--c-border);flex-shrink:0}.chat-form{gap:var(--sp-2);align-items:flex-end;display:flex}.chat-textarea{padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-border);border-radius:var(--r-card);font-family:var(--ff-base);resize:none;background:var(--c-surface);min-height:44px;color:var(--c-text);flex:1;font-size:.9rem}.chat-textarea:focus{outline:2px solid var(--c-primary);outline-offset:1px}.chat-send{padding:var(--sp-3) var(--sp-4);background:var(--c-primary);color:#fff;border-radius:var(--r-card);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:1rem;display:flex}.chat-send:disabled{opacity:.5;cursor:not-allowed}.chat-disclaimer{color:var(--c-text-secondary);text-align:center;margin:var(--sp-2) 0 0;font-size:.75rem}.review-section{margin-bottom:var(--sp-8)}.filing-summary{background:var(--c-primary-light);border-radius:var(--r-card);padding:var(--sp-4);margin:var(--sp-4) 0;border:1px solid #bfdbfe;font-size:.875rem;line-height:1.8}.filed-banner{border-radius:var(--r-card);padding:var(--sp-6);text-align:center;color:#065f46;background:#d1fae5;border:1px solid #a7f3d0;font-size:1rem;font-weight:600}.approved-note{color:var(--c-success);font-size:.85rem;font-weight:600}.page-header{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-6);flex-wrap:wrap;display:flex}.page-header h1{margin:0}.section-header{justify-content:space-between;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.section-header h2,.section-header h3{margin:0}.mt-1{margin-top:var(--sp-1)}.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mt-6{margin-top:var(--sp-6)}.mt-8{margin-top:var(--sp-8)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--sp-1)}.mb-2{margin-bottom:var(--sp-2)}.mb-3{margin-bottom:var(--sp-3)}.mb-4{margin-bottom:var(--sp-4)}.mb-6{margin-bottom:var(--sp-6)}.mb-8{margin-bottom:var(--sp-8)}.text-secondary{color:var(--c-text-secondary)}.text-error{color:var(--c-error)}.text-success{color:var(--c-success)}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-right{text-align:right}.text-center{text-align:center}.font-mono{font-family:var(--ff-mono)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.flex-wrap{flex-wrap:wrap}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-6{gap:var(--sp-6)}.period-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);padding:var(--sp-4);margin-bottom:var(--sp-3);box-shadow:var(--shadow-card)}.period-card-title{font-size:.95rem;font-weight:600}.period-card-meta{color:var(--c-text-secondary);margin:var(--sp-1) 0;font-size:.85rem}.period-card-footer{align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);display:flex}.home-page{min-height:100vh;padding:var(--sp-8) var(--sp-4);text-align:center;background:var(--c-bg);flex-direction:column;justify-content:center;align-items:center;display:flex}.home-logo{color:var(--c-primary);margin-bottom:var(--sp-3);font-size:2rem;font-weight:700}.home-tagline{color:var(--c-text-secondary);margin-bottom:var(--sp-8);max-width:360px}.ml-auto{margin-left:auto}.flex-shrink-0{flex-shrink:0}.icon-lg{font-size:1.5rem;line-height:1}.icon-xl{font-size:2rem;line-height:1}.d-none{display:none!important}.content-narrow{max-width:480px}.content-medium{max-width:640px}.checkbox-std{cursor:pointer;width:18px;height:18px;display:block}.card-success-tint{background:#f0fdf4;border-color:#a7f3d0}.text-normal{font-weight:400}.pb-3{padding-bottom:var(--sp-3)}.pt-4{padding-top:var(--sp-4)}details summary{cursor:pointer}details summary::-webkit-details-marker{display:none}.details-trigger{padding:var(--sp-3) var(--sp-4);background:var(--c-bg);border-radius:var(--r-card);border:1px solid var(--c-border);justify-content:space-between;align-items:center;font-size:.9rem;font-weight:600;list-style:none;display:flex}.details-trigger:hover{background:var(--c-primary-light)}
