:root{--color-navy: #080d3d;--color-navy-soft: #141a4e;--color-blue: #2477f2;--color-blue-deep: #052eaa;--color-text: #070b2f;--color-muted: #65708a;--color-muted-strong: #34405c;--color-line: #e7e9ef;--color-line-strong: #d8dce6;--color-surface: #ffffff;--color-page: #fafafa;--color-soft: #f5f6f9;--color-success: #009b72;--color-success-soft: #ddf8ef;--color-warning: #8a6500;--color-warning-soft: #fff6da;--color-error: #e34040;--color-error-soft: #fff0f0;--shadow-panel: 0 16px 36px rgba(7, 11, 47, .06);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--color-text);background:var(--color-page);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-page)}button,input{font:inherit}button{border:0}#root{min-height:100vh}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(100%,420px);padding:32px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:var(--shadow-panel)}.auth-logo{display:block;width:180px;height:auto;margin:0 auto 28px}.auth-heading{margin-bottom:24px;text-align:center}.auth-heading h1,.brand-block h1,.section-heading h2{margin:0;color:var(--color-text);letter-spacing:0}.auth-heading h1{font-size:1.55rem;line-height:1.2}.auth-heading p,.brand-block p,.section-heading p,.muted-copy{margin:6px 0 0;color:var(--color-muted);font-size:.9rem}.app-shell{width:min(100%,1220px);min-height:100vh;margin:0 auto;padding:24px 28px 44px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}.brand-block{display:flex;align-items:center;gap:22px;min-width:0}.brand-logo{width:170px;height:auto;flex:0 0 auto}.brand-block h1{font-size:1.45rem;line-height:1.2}.brand-block strong{color:var(--color-blue-deep);font-weight:600}.panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.panel-card{min-width:0;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;padding:22px;box-shadow:0 1px #070b2f05}.panel-card-feature{grid-column:1 / -1}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.section-heading h2{margin-top:4px;font-size:1.05rem;line-height:1.25}.section-icon{flex:0 0 auto;color:var(--color-blue-deep)}.eyebrow,.input-label,.metric-label{color:var(--color-blue-deep);font-size:.72rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.form-stack{display:grid;gap:16px}.input-group{display:grid;gap:8px}input{width:100%;min-height:44px;padding:11px 13px;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:8px;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}input::placeholder{color:#9aa2b5}input:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px #2477f21f}.button,.icon-button,.switch{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease}.button{min-height:42px;padding:0 18px;border-radius:999px;font-weight:600;font-size:.92rem;white-space:nowrap}.button:hover,.icon-button:hover{transform:translateY(-1px)}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.52;transform:none}.button-primary{color:#fff;background:var(--color-navy)}.button-primary:hover{background:var(--color-navy-soft)}.button-secondary{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-line-strong)}.button-secondary:hover{border-color:var(--color-blue);color:var(--color-blue-deep)}.button-danger{color:var(--color-error);background:var(--color-error-soft);border:1px solid rgba(227,64,64,.24)}.button-compact{flex:0 0 auto}.button-row{display:flex;gap:10px;flex-wrap:wrap}.button-row .button{flex:1 1 auto}.icon-button{width:44px;height:44px;flex:0 0 auto;color:var(--color-navy);background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px}.status-badge{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:4px 10px;border-radius:999px;font-size:.76rem;font-weight:600;white-space:nowrap}.status-connected{color:var(--color-success);background:var(--color-success-soft);border:1px solid rgba(0,155,114,.18)}.status-disconnected{color:var(--color-error);background:var(--color-error-soft);border:1px solid rgba(227,64,64,.18)}.status-pending,.status-expired{color:var(--color-warning);background:var(--color-warning-soft);border:1px solid rgba(138,101,0,.18)}.state-box{display:grid;gap:16px;padding:18px;background:var(--color-soft);border:1px solid var(--color-line);border-radius:8px}.pending-state{display:grid;justify-items:center;gap:16px;text-align:center}.inline-metric{display:flex;align-items:center;gap:14px;min-width:0}.inline-metric>div{display:grid;gap:2px}.metric-label{display:block}.inline-metric strong,.selected-file strong{color:var(--color-text);font-size:1rem;font-weight:650;overflow-wrap:anywhere}.icon-tile{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--color-blue-deep);background:#eef4ff;border-radius:8px}.icon-tile-success{color:var(--color-success);background:var(--color-success-soft)}.qr-container{display:flex;align-items:center;justify-content:center;width:min(100%,280px);padding:20px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px}.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:8px;font-size:.86rem;line-height:1.4}.alert strong{display:block;margin-bottom:2px}.alert p{margin:0}.alert-compact{align-items:center;justify-content:center}.alert-success{color:var(--color-success);background:var(--color-success-soft);border:1px solid rgba(0,155,114,.18)}.alert-warning{color:var(--color-warning);background:var(--color-warning-soft);border:1px solid rgba(138,101,0,.18)}.alert-error{color:var(--color-error);background:var(--color-error-soft);border:1px solid rgba(227,64,64,.2)}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:var(--color-soft);border:1px solid var(--color-line);border-radius:8px}.toggle-row strong{display:block;color:var(--color-text);font-size:.92rem}.toggle-row p{margin:2px 0 0;color:var(--color-muted);font-size:.78rem}.switch{position:relative;width:48px;height:26px;flex:0 0 auto;padding:0;background:#d9dde7;border-radius:999px}.switch span{position:absolute;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:0 1px 4px #070b2f2e;transition:left .18s ease}.switch-on{background:var(--color-success)}.switch-on span{left:25px}.upload-zone{display:grid;place-items:center;min-height:168px;padding:28px;text-align:center;background:var(--color-soft);border:1.5px dashed var(--color-line-strong);border-radius:8px;cursor:pointer;transition:background .18s ease,border-color .18s ease,opacity .18s ease}.upload-zone-active{background:#eef4ff;border-color:var(--color-blue)}.upload-zone-success{border-color:#009b7261}.upload-zone-error{border-color:#e3404061}.upload-zone-processing{cursor:wait;opacity:.72}.upload-empty{display:grid;justify-items:center;gap:8px;color:var(--color-muted)}.upload-empty svg{color:var(--color-blue-deep)}.upload-empty strong{color:var(--color-muted-strong);font-size:.9rem;font-weight:600}.upload-empty span,.selected-file p,.progress-copy{margin:0;color:var(--color-muted);font-size:.76rem}.selected-file{display:flex;align-items:center;justify-content:center;gap:12px;max-width:100%;text-align:left}.progress-block{display:grid;gap:8px}.progress-label{display:flex;justify-content:space-between;gap:16px;color:var(--color-muted);font-size:.76rem;font-weight:600}.progress-track{height:5px;overflow:hidden;background:#c8ccd5;border-radius:999px}.progress-fill{height:100%;background:var(--color-navy);border-radius:inherit;transition:width .3s ease}.metric-chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:4px 9px;border-radius:999px;font-size:.75rem;font-weight:700}.chip-error{color:var(--color-error);background:var(--color-error-soft)}.chip-success{color:var(--color-success);background:var(--color-success-soft)}.chip-info{color:var(--color-blue-deep);background:#eef4ff}.success-title{display:flex;align-items:center;gap:8px;color:var(--color-success);font-weight:700}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.summary-stat{display:grid;gap:2px;padding:12px;text-align:center;border-radius:8px}.summary-stat strong{font-size:1.45rem;line-height:1}.summary-stat span{color:var(--color-muted);font-size:.72rem;font-weight:700;text-transform:uppercase}.summary-success{color:var(--color-success);background:var(--color-success-soft)}.summary-error{color:var(--color-error);background:var(--color-error-soft)}.summary-muted{color:var(--color-muted);background:#eef0f5}.failure-list{max-height:150px;overflow-y:auto;padding:10px 12px;color:var(--color-error);background:var(--color-error-soft);border:1px solid rgba(227,64,64,.16);border-radius:8px;font-size:.74rem}.failure-list div+div{padding-top:6px;margin-top:6px;border-top:1px solid rgba(227,64,64,.12)}.sr-only{display:none}.spin{animation:spin 1.8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:760px){.app-shell{padding:18px 14px 32px}.app-header,.brand-block,.section-heading,.toggle-row{align-items:flex-start}.app-header,.section-heading{gap:14px}.brand-block{flex-direction:column;gap:14px}.brand-logo{width:150px}.panel-grid{grid-template-columns:1fr}.panel-card,.auth-card{padding:18px}.section-heading{flex-direction:column}.section-icon{display:none}.button-row,.toggle-row{flex-direction:column}.button-row .button,.button{width:100%}.switch{align-self:flex-start}}
