@layer base,tenant;:root{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-light:#dbeafe;--color-secondary:#64748b;--color-secondary-hover:#475569;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-danger-light:#fef2f2;--color-success:#16a34a;--color-success-light:#f0fdf4;--color-warning:#ca8a04;--color-warning-light:#fefce8;--color-bg:#fff;--color-bg-alt:#f8fafc;--color-bg-hover:#f1f5f9;--color-text:#1e293b;--color-text-muted:#64748b;--color-text-light:#94a3b8;--color-placeholder:#64748b;--color-border:#e2e8f0;--color-border-focus:var(--color-primary);--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--transition-fast:.15s ease;--transition-base:.2s ease;--header-height:4rem;--sidebar-width:16rem;--container-max:64rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg);margin:0;line-height:1.5}h1,h2,h3,h4,h5,h6{margin:0 0 var(--space-4);font-weight:600;line-height:1.25}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{margin:0 0 var(--space-4)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:-100%;left:var(--space-4);z-index:1000;padding:var(--space-2) var(--space-4);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-weight:600;text-decoration:none;position:absolute}.skip-link:focus{top:var(--space-2)}.container{width:100%;max-width:var(--container-max);padding:0 var(--space-4);margin:0 auto}@media (width>=640px){.container{padding:0 var(--space-6)}}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:inherit;font-size:var(--text-sm);text-align:center;white-space:nowrap;cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);border:1px solid #0000;font-weight:500;line-height:1;display:inline-flex}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{height:2rem;padding:0 var(--space-3);font-size:var(--text-xs)}.btn-md{height:2.5rem;padding:0 var(--space-4)}.btn-lg{height:3rem;padding:0 var(--space-6);font-size:var(--text-base)}.btn-primary{color:#fff;background-color:var(--color-primary);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{color:var(--color-text);border-color:var(--color-border);background-color:#fff}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg-alt)}.btn-danger{color:#fff;background-color:var(--color-danger);border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background-color:var(--color-danger-hover);border-color:var(--color-danger-hover)}.btn-ghost{color:var(--color-text);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-hover)}.btn-full{width:100%}.btn-loading .btn-content-hidden{visibility:hidden}.btn-spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:1rem;height:1rem;animation:.6s linear infinite spin;position:absolute}@keyframes spin{to{transform:rotate(360deg)}}.input-group{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.input-label{font-size:var(--text-sm);color:var(--color-text);font-weight:500}.input-required{color:var(--color-danger);margin-left:var(--space-1)}.input,.textarea,.select{width:100%;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--text-base);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);background-color:#fff;line-height:1.5}.input:focus,.textarea:focus,.select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.input-error,.textarea-error,.select-error{border-color:var(--color-danger)}.input-error:focus,.textarea-error:focus,.select-error:focus{box-shadow:0 0 0 3px var(--color-danger-light)}.input::placeholder,.textarea::placeholder{color:var(--color-placeholder)}.textarea{resize:vertical;min-height:6rem}.select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-10)}.input-error-text{font-size:var(--text-sm);color:var(--color-danger);margin:0}.input-help-text{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.spinner{align-items:center;gap:var(--space-3);display:inline-flex}.spinner-center{justify-content:center}.spinner-icon{animation:1s linear infinite spin}.spinner-sm .spinner-icon{width:1rem;height:1rem}.spinner-md .spinner-icon{width:1.5rem;height:1.5rem}.spinner-lg .spinner-icon{width:2rem;height:2rem}.spinner-track{opacity:.25}.spinner-fill{opacity:1}.spinner-message{color:var(--color-text-muted)}.loading-screen{justify-content:center;align-items:center;min-height:100vh;display:flex}.modal{padding:var(--space-4);background:0 0;border:none;width:100%;max-width:none;height:100%;max-height:none;position:fixed;inset:0}.modal::backdrop{background:#00000080}.modal-content{max-height:calc(100vh - var(--space-8));border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#fff;flex-direction:column;margin:auto;display:flex;position:relative;overflow:hidden}.modal-sm .modal-content{max-width:24rem}.modal-md .modal-content{max-width:32rem}.modal-lg .modal-content{max-width:48rem}.modal-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--text-lg);margin:0}.modal-close{width:2rem;height:2rem;color:var(--color-text-muted);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.modal-close:hover{background:var(--color-bg-hover)}.modal-body{padding:var(--space-6);overflow-y:auto}.header{z-index:100;height:var(--header-height);border-bottom:1px solid var(--color-border);background:#fff;position:sticky;top:0}.header-container{height:100%;max-width:var(--container-max);padding:0 var(--space-4);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.header-brand{align-items:center;gap:var(--space-2);color:var(--color-text);font-size:var(--text-xl);font-weight:600;text-decoration:none;display:flex}.header-logo{color:var(--color-primary)}.header-nav{gap:var(--space-1);display:flex}.header-link{padding:var(--space-2) var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm);border-radius:var(--radius-md);transition:all var(--transition-fast);font-weight:500;text-decoration:none}.header-link:hover{color:var(--color-text);background:var(--color-bg-hover);text-decoration:none}.header-link-active{color:var(--color-primary);background:var(--color-primary-light)}.sidebar{width:var(--sidebar-width);min-height:calc(100vh - var(--header-height));padding:var(--space-4);background:var(--color-bg-alt);border-right:1px solid var(--color-border);flex-direction:column;display:flex}.sidebar-nav{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.sidebar-link{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm);border-radius:var(--radius-md);transition:all var(--transition-fast);font-weight:500;text-decoration:none;display:flex}.sidebar-link:hover{color:var(--color-text);background:var(--color-bg-hover);text-decoration:none}.sidebar-link-active{color:var(--color-primary);background:var(--color-primary-light)}.sidebar-icon{flex-shrink:0;width:1.25rem;height:1.25rem}.sidebar-footer{padding-top:var(--space-4);border-top:1px solid var(--color-border)}.sidebar-user{margin-bottom:var(--space-3);flex-direction:column;display:flex}.sidebar-user-name{font-size:var(--text-sm);font-weight:500}.sidebar-user-role{font-size:var(--text-xs);color:var(--color-text-muted)}.sidebar-logout{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;font-weight:500;display:flex}.sidebar-logout:hover{color:var(--color-danger);background:var(--color-danger-light)}.layout-public{flex-direction:column;min-height:100vh;display:flex}.layout-public-main{padding:var(--space-8) 0;flex:1}.layout-public-footer{padding:var(--space-6) 0;background:var(--color-bg-alt);border-top:1px solid var(--color-border)}.footer-text{text-align:center;font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.layout-admin{min-height:100vh}.layout-admin-body{display:flex}.layout-admin-main{padding:var(--space-6);min-height:calc(100vh - var(--header-height));flex:1}.card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;overflow:hidden}.card-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border)}.card-title{font-size:var(--text-lg);margin:0}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);background:var(--color-bg-alt)}.badge{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);border-radius:var(--radius-full);align-items:center;font-weight:500;display:inline-flex}.badge-new{color:var(--color-primary);background:var(--color-primary-light)}.badge-read{color:var(--color-secondary);background:var(--color-bg-alt)}.badge-replied{color:var(--color-warning);background:var(--color-warning-light)}.badge-completed{color:var(--color-success);background:var(--color-success-light)}.tips-list{gap:var(--space-3);flex-direction:column;display:flex}.tip-card{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);background:#fff;align-items:center;display:flex}.tip-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.tip-card-content{flex:1;min-width:0}.tip-card-id{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500}.tip-card-meta{gap:var(--space-4);margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-text-muted);display:flex}.page-header{margin-bottom:var(--space-6)}.page-title{margin:0}.page-description{margin:var(--space-2) 0 0;color:var(--color-text-muted)}.form-page{max-width:32rem;margin:0 auto}.success-page{text-align:center;max-width:32rem;margin:0 auto}.success-icon{width:4rem;height:4rem;margin:0 auto var(--space-4);color:var(--color-success)}.success-tip-id{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-4);margin:var(--space-4) 0;font-family:var(--font-mono);font-size:var(--text-lg);background:var(--color-bg-alt);border-radius:var(--radius-lg);display:flex}.copy-btn{padding:var(--space-1);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none}.copy-btn:hover{background:var(--color-bg-hover)}.alert{padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-4)}.alert-info{color:var(--color-primary);background:var(--color-primary-light)}.alert-success{color:var(--color-success);background:var(--color-success-light)}.alert-warning{color:var(--color-warning);background:var(--color-warning-light)}.alert-error{color:var(--color-danger);background:var(--color-danger-light)}.stats-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));display:grid}.stat-card{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff}.stat-value{font-size:var(--text-3xl);font-weight:600}.stat-label{font-size:var(--text-sm);color:var(--color-text-muted)}.message-thread{gap:var(--space-4);flex-direction:column;display:flex}.message{max-width:80%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg)}.message-whistleblower{background:var(--color-bg-alt);align-self:flex-start}.message-admin{color:#fff;background:var(--color-primary);align-self:flex-end}.message-time{font-size:var(--text-xs);opacity:.7;margin-top:var(--space-1)}.tip-detail-columns{gap:var(--space-4);grid-template-columns:3fr 2fr;align-items:start;display:grid}.tip-detail-sidebar{gap:var(--space-4);top:var(--space-4);flex-direction:column;display:flex;position:sticky}@media (width<=768px){.tip-detail-columns{grid-template-columns:1fr}.tip-detail-sidebar{position:static}}.passphrase-group{position:relative}.passphrase-toggle{right:var(--space-2);padding:var(--space-1);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;position:absolute;top:50%;transform:translateY(-50%)}.passphrase-toggle:hover{background:var(--color-bg-hover)}.mobile-menu-toggle{border-radius:var(--radius-md);cursor:pointer;width:2.5rem;height:2.5rem;color:var(--color-text);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:none}.mobile-menu-toggle:hover{background:var(--color-bg-hover)}.mobile-menu-toggle svg{width:1.5rem;height:1.5rem}.sidebar-overlay{display:none}@media (width<=768px){.mobile-menu-toggle{display:flex}.sidebar{top:var(--header-height);z-index:40;width:16rem;box-shadow:var(--shadow-lg);display:none;position:fixed;bottom:0;left:0}.sidebar-mobile-open .sidebar{display:flex}.sidebar-overlay{inset:0;top:var(--header-height);z-index:30;background:#0000004d;display:block;position:fixed}.layout-admin-main{padding:var(--space-4)}.header-nav{display:none}}.error-page{min-height:100vh;padding:var(--space-8);text-align:center;background:var(--color-bg-alt);flex-direction:column;justify-content:center;align-items:center;display:flex}.error-page h1{font-size:var(--text-2xl);color:var(--color-danger);margin-bottom:var(--space-3)}.error-page p{color:var(--color-text-muted);margin-bottom:var(--space-6);max-width:32rem}.auth-page{min-height:100vh;padding:var(--space-4);background:var(--color-bg-alt);justify-content:center;align-items:center;display:flex}.auth-container{width:100%;max-width:24rem;padding:var(--space-8);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#fff}.auth-header{text-align:center;margin-bottom:var(--space-6)}.auth-header h1{margin:0 0 var(--space-2);font-size:var(--text-2xl)}.auth-header p{color:var(--color-text-muted);margin:0}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.auth-footer{text-align:center;margin-top:var(--space-4)}.auth-link{color:var(--color-primary);font-size:var(--text-sm)}.totp-input{font-family:var(--font-mono);font-size:var(--text-2xl);text-align:center;letter-spacing:.5em}.landing{padding:var(--space-8) 0}.landing-hero{text-align:center;max-width:36rem;margin:0 auto var(--space-12)}.landing-hero h1{font-size:var(--text-3xl);margin-bottom:var(--space-4)}.landing-tagline{font-size:var(--text-lg);color:var(--color-text-muted);margin-bottom:var(--space-6)}.landing-actions{gap:var(--space-4);flex-wrap:wrap;justify-content:center;display:flex}.landing-features{margin-bottom:var(--space-12)}.landing-features h2{text-align:center;margin-bottom:var(--space-8)}.feature-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));display:grid}.feature-card{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center;background:#fff}.feature-icon{width:3rem;height:3rem;margin:0 auto var(--space-4);color:var(--color-primary)}.feature-card h3{margin-bottom:var(--space-2)}.feature-card p{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.landing-security{max-width:36rem;margin:0 auto}.landing-security h2{text-align:center;margin-bottom:var(--space-6)}.security-list{margin:0;padding:0;list-style:none}.security-list li{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.security-list li:last-child{border-bottom:none}.radio-group{gap:var(--space-3);flex-direction:column;display:flex}.radio-label{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex}.radio-label:hover{border-color:var(--color-primary)}.radio-label input[type=radio]{margin-top:var(--space-1)}.radio-content{gap:var(--space-1);flex-direction:column;display:flex}.radio-title{font-weight:500}.radio-description{font-size:var(--text-sm);color:var(--color-text-muted)}.checkbox-label{align-items:center;gap:var(--space-2);cursor:pointer;display:flex}.checkbox-label input[type=checkbox]{width:1rem;height:1rem}.file-dropzone{padding:var(--space-8);border:2px dashed var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;align-items:center;display:flex}.file-dropzone:hover,.file-dropzone-active{border-color:var(--color-primary);background:var(--color-primary-light)}.file-dropzone-error{border-color:var(--color-danger)}.file-dropzone-icon{width:3rem;height:3rem;color:var(--color-text-muted);margin-bottom:var(--space-4)}.file-dropzone-text{color:var(--color-text);margin:0}.file-dropzone-link{color:var(--color-primary);font-weight:500}.file-dropzone-hint,.file-metadata-notice{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.file-list{margin:var(--space-4) 0 0;padding:0;list-style:none}.file-item{align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-2);display:flex}.file-item-icon{width:1.5rem;height:1.5rem;color:var(--color-text-muted);flex-shrink:0}.file-item-info{flex:1;min-width:0}.file-item-name{font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:500;display:block;overflow:hidden}.file-item-size{font-size:var(--text-xs);color:var(--color-text-muted)}.file-item-remove{cursor:pointer;width:1.5rem;height:1.5rem;color:var(--color-text-muted);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.file-item-remove:hover{color:var(--color-danger);background:var(--color-danger-light)}.file-item-remove svg{width:1rem;height:1rem}.attachment-list{margin:0;padding:0;list-style:none}.attachment-item{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-2);display:flex}.attachment-item:last-child{margin-bottom:0}.attachment-info{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.attachment-icon{width:1.5rem;height:1.5rem;color:var(--color-text-muted);flex-shrink:0}.attachment-name{font-size:var(--text-sm);font-weight:500;display:block}.attachment-size{font-size:var(--text-xs);color:var(--color-text-muted);display:block}.passphrase-strength{align-items:center;gap:var(--space-3);margin-top:var(--space-2);display:flex}.strength-bar{background:var(--color-border);border-radius:var(--radius-full);flex:1;height:4px;overflow:hidden}.strength-fill{height:100%;transition:width var(--transition-base), background var(--transition-base)}.strength-weak{background:var(--color-danger)}.strength-fair{background:var(--color-warning)}.strength-good{background:var(--color-primary)}.strength-strong{background:var(--color-success)}.strength-label{font-size:var(--text-xs);font-weight:500}.strength-label.strength-weak{color:var(--color-danger)}.strength-label.strength-fair{color:var(--color-warning)}.strength-label.strength-good{color:var(--color-primary)}.strength-label.strength-strong{color:var(--color-success)}.form-actions{margin-top:var(--space-6)}.form-loading-message{margin-top:var(--space-3);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}.passphrase-section{margin:var(--space-6) 0;padding:var(--space-6);background:var(--color-bg-alt);border-radius:var(--radius-lg)}.passphrase-section h2{margin:0 0 var(--space-2)}.message-composer{gap:var(--space-3);flex-direction:column;display:flex}.message-composer-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.composer-file-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.composer-file-item{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--color-bg-muted);border-radius:var(--radius-sm);font-size:var(--text-sm);display:flex}.composer-file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.composer-file-size{color:var(--color-text-muted);flex-shrink:0}.composer-file-remove{cursor:pointer;color:var(--color-text-muted);font-size:var(--text-lg);padding:0 var(--space-1);background:0 0;border:none;line-height:1}.composer-file-remove:hover{color:var(--color-danger)}.message-empty{text-align:center;padding:var(--space-6);color:var(--color-text-muted)}.tip-card-arrow{color:var(--color-text-light);transition:transform var(--transition-fast)}.tip-card:hover .tip-card-arrow{color:var(--color-primary);transform:translate(4px)}.encrypted-uploader{width:100%}.file-dropzone-disabled{opacity:.5;cursor:not-allowed}.file-item-pending{background:var(--color-bg)}.file-item-encrypting,.file-item-uploading{background:var(--color-primary-light)}.file-item-complete{background:var(--color-success-light)}.file-item-error{background:var(--color-danger-light)}.file-item-status{flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.file-item-status svg{width:1.25rem;height:1.25rem}.file-item-spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:1.25rem;height:1.25rem;animation:.8s linear infinite spin}.file-item-progress{background:var(--color-border);border-radius:0 0 var(--radius-md) var(--radius-md);height:3px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.file-item-progress-bar{background:var(--color-primary);height:100%;transition:width .2s}.file-item{position:relative}.attachment-list{margin-top:var(--space-4)}.attachment-list-title{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-3);font-weight:600}.attachment-items{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.attachment-item{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;position:relative}.attachment-icon{background:var(--color-bg);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:flex}.attachment-icon svg{width:1.25rem;height:1.25rem;color:var(--color-text-muted)}.attachment-info{flex:1;min-width:0}.attachment-name{font-size:var(--text-sm);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-weight:500;display:block;overflow:hidden}.attachment-meta{font-size:var(--text-xs);color:var(--color-text-muted);display:block}.attachment-progress{background:var(--color-border);border-radius:0 0 var(--radius-md) var(--radius-md);height:4px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.attachment-progress-bar{background:var(--color-primary);height:100%;transition:width .2s}.attachment-progress-text{top:-1.5rem;right:var(--space-3);font-size:var(--text-xs);color:var(--color-primary);position:absolute}.attachment-error{font-size:var(--text-xs);color:var(--color-danger)}.platform-landing{background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);flex-direction:column;min-height:100vh;display:flex}.platform-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);background:#fff}.platform-logo{font-size:var(--text-2xl);color:var(--color-primary);letter-spacing:-.025em;font-weight:700}.platform-main{padding:var(--space-16) var(--space-6);flex-direction:column;flex:1;align-items:center;display:flex}.platform-hero{text-align:center;max-width:42rem;margin-bottom:var(--space-12)}.platform-title{color:var(--color-text);margin-bottom:var(--space-4);letter-spacing:-.025em;font-size:2.5rem;font-weight:800;line-height:1.1}@media (width>=640px){.platform-title{font-size:3rem}}.platform-subtitle{font-size:var(--text-lg);color:var(--color-text-muted);margin:0;line-height:1.7}.platform-features{gap:var(--space-6);width:100%;max-width:64rem;margin-bottom:var(--space-12);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.platform-features .feature-card{padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-xl);text-align:center;box-shadow:var(--shadow-sm);transition:all var(--transition-base);background:#fff}.platform-features .feature-card:hover{box-shadow:var(--shadow-lg);border-color:var(--color-primary-light);transform:translateY(-4px)}.platform-features .feature-icon{width:3.5rem;height:3.5rem;margin:0 auto var(--space-5);color:var(--color-primary)}.platform-features .feature-title{font-size:var(--text-lg);color:var(--color-text);margin-bottom:var(--space-3);font-weight:600}.platform-features .feature-description{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;line-height:1.6}.platform-cta{text-align:center}.platform-cta .btn-lg{height:3.5rem;padding:0 var(--space-8);font-size:var(--text-lg);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);font-weight:600}.platform-cta .btn-lg:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.platform-cta-note{margin:var(--space-4) 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.platform-footer{padding:var(--space-6);text-align:center;border-top:1px solid var(--color-border);background:#fff}.platform-footer p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.admin-page{max-width:72rem;padding:var(--space-6);margin:0 auto}.admin-page-header{margin-bottom:var(--space-8)}.admin-page-header h1{margin:0 0 var(--space-2);font-size:var(--text-3xl);font-weight:700}.admin-page-subtitle{color:var(--color-text-muted);margin:0}.header-content{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.breadcrumb{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);display:flex}.breadcrumb a{color:var(--color-primary)}.breadcrumb-separator{color:var(--color-text-light)}.admin-section{margin-bottom:var(--space-8)}.admin-section-title{font-size:var(--text-lg);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);font-weight:600}.info-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.info-item{gap:var(--space-1);flex-direction:column;display:flex}.info-item-full{grid-column:1/-1}.info-label{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500}.info-value{font-size:var(--text-base);color:var(--color-text)}.info-code{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text);background:var(--color-bg-alt);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);word-break:break-all}.text-muted{color:var(--color-text-muted)}.action-grid{gap:var(--space-3);flex-wrap:wrap;display:flex}.url-list{gap:var(--space-3);flex-direction:column;display:flex}.url-item{gap:var(--space-1);flex-direction:column;display:flex}.url-label{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500}.url-value{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-primary)}.badge-lg{padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.badge-success{color:var(--color-success);background:var(--color-success-light)}.badge-warning{color:var(--color-warning);background:var(--color-warning-light)}.badge-error{color:var(--color-danger);background:var(--color-danger-light)}.badge-info{color:var(--color-primary);background:var(--color-primary-light)}.badge-muted{color:var(--color-text-muted);background:var(--color-bg-alt)}.error-state{text-align:center;padding:var(--space-12)}.error-state h2{margin-bottom:var(--space-4)}.error-state p{color:var(--color-text-muted);margin-bottom:var(--space-6)}.tenant-table-container{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.tenant-table{border-collapse:collapse;background:#fff;width:100%}.tenant-table th,.tenant-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border)}.tenant-table th{font-size:var(--text-sm);color:var(--color-text-muted);background:var(--color-bg-alt);font-weight:600}.tenant-table tr:last-child td{border-bottom:none}.tenant-table tr:hover td{background:var(--color-bg-hover)}.tenant-table .actions-cell{text-align:right}.form-container{max-width:32rem}.form{gap:var(--space-6);flex-direction:column;display:flex}.form-section{gap:var(--space-4);flex-direction:column;display:flex}.form-section-title{font-size:var(--text-lg);margin:0;font-weight:600}.form-section-description{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.form-field{margin-bottom:var(--space-4)}.form-help-text{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.form-actions{gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);justify-content:flex-end;display:flex}.locale-switcher{border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0;padding:0;display:inline-flex;overflow:hidden}.locale-btn{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;user-select:none;transition:background .15s,color .15s}.locale-btn:hover{background:var(--color-bg-hover);color:var(--color-text)}.locale-btn-active{background:var(--color-primary);color:#fff}.locale-btn-active:hover{background:var(--color-primary-hover);color:#fff}.landing-logo{max-width:200px;max-height:80px;margin-bottom:var(--space-4);object-fit:contain}.landing-instructions{max-width:720px;margin:var(--space-8) auto;padding:var(--space-6);background:var(--color-bg-alt);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.landing-instructions h2{font-size:var(--text-xl);margin-bottom:var(--space-4)}.header-logo-img{object-fit:contain;border-radius:var(--radius-sm);width:32px;height:32px}.markdown-content p{margin-bottom:var(--space-3)}.markdown-content p:last-child{margin-bottom:0}.markdown-content a{color:var(--color-primary);text-decoration:underline}.markdown-content ul,.markdown-content ol{padding-left:var(--space-6);margin-bottom:var(--space-3)}.markdown-content li{margin-bottom:var(--space-1)}.markdown-content blockquote{border-left:3px solid var(--color-border);padding-left:var(--space-4);color:var(--color-text-muted);margin:var(--space-3) 0}.markdown-content code{background:var(--color-bg-alt);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-sm);padding:2px 6px}.markdown-content pre{background:var(--color-bg-alt);padding:var(--space-3);border-radius:var(--radius-md);margin:var(--space-3) 0;overflow-x:auto}.markdown-content pre code{background:0 0;padding:0}.field-help-text{font-size:var(--text-xs);color:var(--color-text-muted);margin:var(--space-1) 0 0 0}.branding-color-picker{align-items:center;gap:var(--space-3);display:flex}.branding-color-input{border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:var(--color-bg);width:48px;height:48px;padding:2px}.branding-color-value{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}.branding-logo-preview{object-fit:contain;border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:200px;max-height:80px;padding:var(--space-2);margin-bottom:var(--space-3)}.branding-logo-upload{align-items:center;gap:var(--space-3);display:flex}.css-editor-textarea{width:100%;min-height:200px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm);resize:vertical;line-height:1.5}.css-editor-info{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);justify-content:space-between;display:flex}.toast-container{top:var(--space-4);right:var(--space-4);z-index:10000;gap:var(--space-2);pointer-events:none;flex-direction:column;max-width:24rem;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-bg);pointer-events:auto;border:1px solid;animation:.25s ease-out toast-in;display:flex;box-shadow:0 4px 12px #00000026}@keyframes toast-in{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}.toast-success{border-color:var(--color-success);color:var(--color-success)}.toast-error{border-color:var(--color-danger);color:var(--color-danger)}.toast-warning{color:#92400e;border-color:#f59e0b}.toast-info{border-color:var(--color-primary);color:var(--color-primary)}.toast-icon{flex-shrink:0;width:1.25rem;height:1.25rem;margin-top:1px}.toast-message{font-size:var(--text-sm);color:var(--color-text);flex:1;line-height:1.4}.toast-dismiss{width:1.25rem;height:1.25rem;color:var(--color-text-muted);cursor:pointer;opacity:.6;background:0 0;border:none;flex-shrink:0;padding:0}.toast-dismiss:hover{opacity:1}.toast-dismiss svg{width:100%;height:100%}@media (width<=480px){.toast-container{left:var(--space-2);right:var(--space-2);max-width:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
