.footer{margin-top:auto;padding:1.25rem 1.5rem;background:var(--surface);border-top:1px solid var(--border)}.footer-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap}.footer-logo-link{display:flex;align-items:center}.footer-logo{height:52px;width:auto;display:block;opacity:.95;mix-blend-mode:lighten}.footer-logo-link:hover .footer-logo{opacity:1}.footer-copy{margin:0;font-size:.85rem;color:var(--textMuted)}.layout{min-height:100vh;display:flex;flex-direction:column}.layout .main{flex:1}.header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--surface) 0%,var(--surface2) 100%);border-bottom:1px solid var(--border)}.logo{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:1.2rem;color:var(--text)}.logo-brand{display:inline-flex;align-items:center;gap:.6rem}.logo-text:after{content:"";margin-left:.6rem;width:1px;height:1rem;background:var(--border);display:inline-block;vertical-align:middle}.logo-text{background:linear-gradient(90deg,var(--eviya-blue-light),var(--eviya-green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-tagline{font-size:.7rem;font-weight:500;color:var(--textMuted);letter-spacing:.02em;white-space:nowrap}.logo:hover{text-decoration:none}.logo:hover .logo-text{background:linear-gradient(90deg,var(--eviya-green),var(--eviya-blue-light));-webkit-background-clip:text;background-clip:text}.logo:hover .logo-tagline{color:var(--text)}.logo-dot{width:6px;height:6px;border-radius:50%;background:var(--eviya-red);flex-shrink:0}.header nav{display:flex;align-items:center;gap:1.25rem}.header nav a{color:var(--eviya-blue-light);font-weight:600}.header nav a:hover{color:var(--eviya-green)}.user-row{display:flex;align-items:center;gap:.75rem}.user-name{color:var(--textMuted);font-size:.9rem}.btn{padding:.4rem .75rem;border-radius:6px;border:none;font-size:.9rem;font-weight:500}.btn-ghost{background:transparent;color:var(--textMuted)}.btn-ghost:hover{background:var(--surface2);color:var(--text)}.main{flex:1;padding:1.5rem;max-width:1200px;margin:0 auto;width:100%}.loading{padding:2rem;text-align:center;color:var(--textMuted)}.api-log-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.api-log-modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;max-width:560px;width:90%;max-height:80vh;display:flex;flex-direction:column}.api-log-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.api-log-header h3{margin:0;font-size:1rem}.btn-close{background:none;border:none;color:var(--textMuted);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .25rem}.btn-close:hover{color:var(--text)}.api-log-body{padding:1rem;overflow:auto;font-family:var(--fontMono);font-size:.8rem}.api-log-step{margin-bottom:.75rem}.api-log-step strong{display:block;margin-bottom:.25rem;color:var(--accent)}.step-badge{font-weight:500;font-size:.75em;margin-left:.35rem}.api-log-step.step-in-progress strong{color:var(--warning)}.step-pending-badge{color:var(--textMuted)}.api-log-step.step-pending{opacity:.85}.api-log-step pre{margin:.25rem 0 0 1rem;padding:.5rem;background:var(--bg);border-radius:4px;overflow:auto;white-space:pre-wrap;word-break:break-all}.api-log-step pre.error{color:var(--error)}.page h1{margin:0 0 1rem;font-size:1.5rem}.page.home h1{background:linear-gradient(90deg,var(--eviya-blue-light),var(--eviya-green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.toolbar{margin-bottom:1rem}.search-input{width:100%;max-width:320px;padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text)}.search-input:focus{outline:none;border-color:var(--eviya-green);box-shadow:0 0 0 2px #2d9d7833}.file-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.file-table{width:100%;border-collapse:collapse}.file-table th,.file-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.file-table th{background:#1e497673;font-weight:600;font-size:.85rem;color:var(--text);border-bottom:2px solid var(--eviya-blue-light)}.file-table tr:last-child td{border-bottom:none}.file-table tbody tr:nth-child(odd){background:var(--surface2)}.file-table tbody tr:nth-child(2n){background:var(--surface)}.file-table tbody tr:hover{background:var(--surface3)}.summary{cursor:pointer;max-width:320px;display:inline-block}.summary.empty{color:var(--textMuted)}.btn-sm{padding:.35rem .6rem;font-size:.85rem}.btn-primary{background:linear-gradient(135deg,var(--eviya-green) 0%,var(--eviya-green-light) 100%);color:#fff;border:none}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--eviya-green-light) 0%,var(--eviya-green) 100%);box-shadow:0 2px 8px #2d9d784d}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.muted{color:var(--textMuted)}.auth-page{display:flex;align-items:center;justify-content:center;min-height:60vh}.auth-card{width:100%;max-width:360px;padding:1.5rem;background:linear-gradient(180deg,var(--surface2) 0%,var(--surface) 100%);border:1px solid var(--border);border-radius:12px;border-top:3px solid var(--eviya-green);box-shadow:0 4px 20px #0003}.auth-card h1{margin:0 0 1.25rem;font-size:1.35rem;color:var(--text)}.auth-card label{display:block;margin-bottom:.35rem;font-size:.9rem;color:var(--textMuted)}.auth-card input{width:100%;padding:.5rem .75rem;margin-bottom:1rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}.auth-card input:focus{outline:none;border-color:var(--eviya-green)}.auth-card .error{color:var(--error);font-size:.9rem;margin-bottom:.75rem}.auth-card .btn{width:100%;padding:.6rem;margin-bottom:1rem}.auth-footer{margin:0;font-size:.9rem;color:var(--textMuted)}.upload-page h1{background:linear-gradient(90deg,var(--eviya-blue-light),var(--eviya-green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.upload-page .muted{margin-bottom:1.25rem}.upload-form label{display:block;margin-bottom:.35rem;font-size:.9rem;color:var(--textMuted)}.upload-form textarea{width:100%;max-width:480px;padding:.6rem .75rem;margin-bottom:1rem;border:1px solid var(--border);border-radius:6px;background:var(--surface2);color:var(--text);font-size:.95rem}.upload-form input[type=file]{margin-bottom:1rem}.upload-form .error{color:var(--error);margin-bottom:.75rem}.upload-form .btn{padding:.5rem 1rem}.troubleshoot-section{margin-top:2rem;padding:1rem;background:var(--surface2);border:1px solid var(--border);border-radius:10px;border-left:3px solid var(--eviya-blue)}.troubleshoot-section h3{margin:0 0 .5rem;font-size:1rem}.troubleshoot-section .btn-sm{margin-top:.5rem}.server-log-box{margin-top:.75rem}.server-log-box .small{font-size:.8rem}.server-log-pre{margin:.5rem 0 0;padding:.75rem;background:var(--bg);border-radius:6px;font-family:var(--fontMono);font-size:.75rem;overflow:auto;max-height:280px;white-space:pre-wrap;word-break:break-all}.ledger-page .query-box{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;align-items:center}.ledger-page .query-box input{flex:1;min-width:200px;max-width:400px;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.ledger-page .query-box .file-select{padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);max-width:280px}.file-query-result{margin-bottom:1.5rem;padding:1rem;background:var(--surface2);border:1px solid var(--border);border-radius:8px}.summary-box h3{margin:0 0 .5rem;font-size:1rem}.summary-box p,.summary-box div{margin:.35rem 0;font-size:.9rem}.summary-box ul{margin:.25rem 0 0 1rem;padding:0}.ledger-page details{margin-top:.75rem}.ledger-page details pre{font-size:.75rem;overflow:auto;max-height:200px;padding:.5rem;background:var(--bg);border-radius:4px}.ledger-page h2{font-size:1.1rem;margin:1rem 0 .5rem}.ledger-page h1{background:linear-gradient(90deg,var(--eviya-blue-light),var(--eviya-green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.ledger-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:8px}.ledger-table{width:100%;border-collapse:collapse;font-size:.9rem}.ledger-table th,.ledger-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.ledger-table th{background:#1e497673;font-weight:600;color:var(--text);border-bottom:2px solid var(--eviya-blue-light)}.ledger-table tbody tr:nth-child(odd){background:var(--surface2)}.ledger-table tbody tr:nth-child(2n){background:var(--surface)}.ledger-table tbody tr.upload-row td:first-child{border-left:3px solid var(--eviya-green)}.ledger-table tbody tr.download-row td:first-child{border-left:3px solid var(--eviya-blue-light)}.ledger-table tbody tr:hover{background:var(--surface3)}.myfiles-section{margin-bottom:2rem;padding:1rem 1.25rem;background:var(--surface2);border:1px solid var(--border);border-radius:10px}.myfiles-section h2{margin:0 0 .25rem;font-size:1rem;color:var(--eviya-green)}.myfiles-section p.small{font-size:.85rem;margin:0 0 .75rem}.myfiles-table th,.myfiles-table td{padding:.5rem .75rem}.myfiles-count{font-weight:700;color:var(--eviya-green);font-size:1rem}.forensics-page h1{background:linear-gradient(90deg,var(--eviya-green),var(--eviya-blue-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.forensics-form label{display:block;margin-bottom:.35rem;font-size:.9rem;color:var(--textMuted)}.forensics-form input[type=file]{margin-bottom:1rem}.forensics-form .btn{padding:.5rem 1rem}.forensics-result{margin-top:1.5rem;padding:1rem;background:var(--surface2);border:1px solid var(--border);border-radius:8px}.forensics-summary-title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text);letter-spacing:.02em}.forensics-result p,.forensics-result div{margin:.35rem 0;font-size:.9rem}.forensics-summary-list{margin:0;padding:0;list-style:none}.forensics-field{display:grid;grid-template-columns:14rem 1fr;align-items:baseline;gap:.5rem;padding:.35rem 0;border-radius:6px;margin-bottom:.25rem}.forensics-field dt,.forensics-field dd{margin:0}.forensics-label{color:var(--textMuted);font-weight:600;font-size:.8rem;letter-spacing:.03em;text-transform:uppercase}.forensics-value{color:var(--eviya-blue-light);font-weight:500;font-size:.9rem;word-break:break-word}.forensics-value.ok{color:var(--eviya-green)}.forensics-value.error{color:var(--error)}.forensics-details{margin-top:1rem}.forensics-result code{font-family:var(--fontMono);font-size:.8rem;word-break:break-all}.forensics-result ul{margin:.25rem 0 0 1rem;padding:0}.file-history-page h1{background:linear-gradient(90deg,var(--eviya-blue-light),var(--eviya-green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.fh-search-wrap{position:relative;max-width:520px;margin-bottom:1.25rem}.fh-search-row{display:flex;align-items:center;gap:.75rem}.fh-input{flex:1;padding:.55rem .85rem;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text);font-size:.95rem}.fh-input:focus{outline:none;border-color:var(--eviya-blue-light);box-shadow:0 0 0 2px #2d6aad33}.fh-spinner{font-size:.85rem;color:var(--textMuted);white-space:nowrap}.fh-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface2);border:1px solid var(--eviya-blue-light);border-radius:8px;list-style:none;margin:0;padding:.25rem 0;z-index:100;box-shadow:0 6px 20px #00000059;max-height:240px;overflow-y:auto}.fh-dropdown-item{display:flex;flex-direction:column;gap:.1rem;padding:.55rem .85rem;cursor:pointer;border-bottom:1px solid var(--border)}.fh-dropdown-item:last-child{border-bottom:none}.fh-dropdown-item:hover{background:var(--surface3)}.fh-dd-name{font-size:.9rem;color:var(--text);font-weight:500}.fh-dd-meta{font-size:.78rem;color:var(--textMuted)}.fh-no-results{font-size:.9rem;margin-top:.5rem}.fh-loading{margin-top:1rem}.fh-warning{margin-bottom:1rem;padding:.65rem 1rem;background:#d4a72c26;border:1px solid var(--warning);border-radius:8px;font-size:.88rem;color:var(--warning)}.fh-result{margin-top:.5rem}.fh-result h2{font-size:1rem;font-weight:600;color:var(--text);margin:0 0 .75rem}.fh-summary{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;margin-bottom:1.25rem}.fh-summary-grid{display:grid;grid-template-columns:13rem 1fr;align-items:baseline;row-gap:.45rem;column-gap:.5rem}.fh-summary-label{font-size:.78rem;font-weight:600;color:var(--textMuted);text-transform:uppercase;letter-spacing:.03em}.fh-summary-value{font-size:.92rem;color:var(--eviya-blue-light);font-weight:500;word-break:break-word}.fh-count{font-size:1.1rem;font-weight:700;color:var(--eviya-green)}.fh-history{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem}.fh-table-wrap{overflow-x:auto;border-radius:6px;border:1px solid var(--border);margin-bottom:1rem}.fh-table{width:100%;border-collapse:collapse;font-size:.9rem}.fh-table th,.fh-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.fh-table th{background:#1e497673;font-weight:600;font-size:.8rem;color:var(--text);border-bottom:2px solid var(--eviya-blue-light);text-transform:uppercase;letter-spacing:.02em}.fh-table tr:last-child td{border-bottom:none}.fh-upload-row td:first-child{border-left:3px solid var(--eviya-green)}.fh-download-row td:first-child{border-left:3px solid var(--eviya-blue-light)}.fh-table tbody tr:nth-child(odd){background:var(--surface2)}.fh-table tbody tr:nth-child(2n){background:var(--surface)}.fh-table tbody tr:hover{background:var(--surface3)}.fh-pagination{display:flex;align-items:center;gap:1rem;justify-content:center;padding-top:.25rem}.fh-page-info{font-size:.85rem;color:var(--textMuted)}.add-company-page h1{background:linear-gradient(90deg,var(--eviya-green),var(--eviya-blue-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.add-company-form{max-width:28rem;margin-top:1.25rem}.add-company-form label{display:block;margin-top:1rem;margin-bottom:.35rem;font-size:.9rem;color:var(--textMuted)}.add-company-form label:first-of-type{margin-top:0}.add-company-form .field-hint{margin:0 0 .5rem;font-size:.85rem;line-height:1.35}.add-company-form .field-hint code{font-size:.8rem}.add-company-form input{width:100%;padding:.5rem .65rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-size:1rem;box-sizing:border-box}.add-company-form .btn{margin-top:1.25rem;padding:.5rem 1rem}.add-company-result{margin-top:1.5rem;padding:1rem;background:var(--surface2);border:1px solid var(--border);border-radius:8px}.add-company-result .success{color:var(--eviya-green, #2d8a5e);margin:0}.add-company-result .warning{color:var(--textMuted);margin:0}.add-company-result .error{margin:0}.add-company-raw{margin:.75rem 0 0;padding:.75rem;overflow:auto;font-size:.8rem;line-height:1.4;background:var(--surface);border-radius:6px;border:1px solid var(--border)}.validation-details{margin:.5rem 0 0 1.25rem;padding:0;font-size:.9rem;color:var(--textMuted)}:root{--eviya-blue: #1e4976;--eviya-blue-light: #2d6aad;--eviya-green: #2d9d78;--eviya-green-light: #34b88a;--eviya-red: #c53030;--eviya-red-light: #e05353;--bg: #0d1117;--surface: #161b22;--surface2: #1c2128;--surface3: #21262d;--border: #30363d;--text: #e6edf3;--textMuted: #8b949e;--accent: var(--eviya-blue-light);--accentHover: var(--eviya-green);--success: var(--eviya-green);--warning: #d4a72c;--error: var(--eviya-red);--font: "DM Sans", system-ui, sans-serif;--fontMono: "JetBrains Mono", monospace}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}#root{min-height:100vh}button{font-family:inherit;cursor:pointer}input,textarea{font-family:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
