*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:#142033;background:#eef2f7;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}.screen{min-height:100vh}.auth-screen{background:radial-gradient(circle at 0 0,#2563eb29,#0000 28%),linear-gradient(160deg,#0f172a 0%,#1e293b 40%,#eef2f7 40% 100%);justify-content:center;align-items:center;padding:24px;display:flex}.auth-card{background:#fff;border-radius:20px;width:100%;max-width:460px;padding:32px;box-shadow:0 24px 60px #0f172a33}.auth-card--compact{text-align:center;max-width:320px}.brand-lockup{align-items:center;gap:16px;margin-bottom:24px;display:flex}.brand-mark{object-fit:contain;flex:none;width:64px;height:64px}.brand-mark--centered{margin:0 auto 16px;display:block}.brand-title{margin:0;font-size:28px;line-height:1.05}.brand-subtitle{color:#526072;margin:6px 0 0;font-size:14px;line-height:1.5}.brand-subtitle--centered{margin:0}.auth-form{gap:16px;display:grid}.field{gap:8px;display:grid}.field span{color:#334155;text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:600}.field input,.field textarea{color:#0f172a;background:#f8fafc;border:1px solid #cbd5e1;border-radius:12px;width:100%;padding:14px 16px;transition:border-color .12s,box-shadow .12s}.field input:focus,.field textarea:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 4px #2563eb1f}.password-row{grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid}.text-button,.secondary-button,.primary-button{border:0;border-radius:12px;padding:14px 18px;font-weight:700}.text-button{color:#2563eb;background:0 0;padding:0 4px}.primary-button{color:#fff;background:linear-gradient(135deg,#16a34a,#15803d)}.primary-button:disabled{opacity:.65;cursor:not-allowed}.secondary-button{color:#0f172a;background:#fff;border:1px solid #cbd5e1}.info-banner,.error-banner,.success-banner,.requirements-card{border-radius:14px;margin-bottom:18px;padding:14px 16px}.info-banner{color:#1d4ed8;background:#eff6ff}.error-banner{color:#b91c1c;background:#fef2f2}.success-banner{color:#166534;background:#f0fdf4}.requirements-card{background:#f8fafc;border:1px solid #e2e8f0}.requirements-title{color:#334155;margin:0 0 10px;font-size:13px;font-weight:700}.requirements-list{color:#64748b;gap:8px;margin:0;padding-left:18px;font-size:14px;display:grid}.requirements-list li.ok{color:#166534}.post-password-page{background:linear-gradient(135deg,#eff6ff 0%,#f8fafc 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.post-password-card{background:#fff;border-radius:24px;grid-template-columns:minmax(0,1.2fr) 320px;gap:28px;width:100%;max-width:980px;padding:36px;display:grid;box-shadow:0 24px 60px #0f172a24}.post-password-copy{align-content:start;gap:16px;display:grid}.post-password-eyebrow{color:#2563eb;text-transform:uppercase;letter-spacing:.12em;margin:0;font-size:12px;font-weight:700}.post-password-title{margin:0;font-size:42px;line-height:.98}.post-password-text,.post-password-help,.post-password-qr-caption{color:#526072;margin:0;line-height:1.6}.post-password-actions{flex-wrap:wrap;gap:12px;display:flex}.install-note{background:#f8fafc;border:1px solid #dbe2ea;border-radius:16px;gap:6px;padding:16px 18px;display:grid}.install-note__title{text-transform:uppercase;letter-spacing:.08em;color:#334155;margin:0;font-size:13px;font-weight:700}.install-note__text{color:#526072;margin:0;line-height:1.55}.post-password-download,.post-password-continue{border:0;border-radius:14px;justify-content:center;align-items:center;min-height:52px;padding:0 18px;font-weight:700;text-decoration:none;display:inline-flex}.post-password-download{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8)}.post-password-continue{color:#0f172a;background:#e2e8f0}.post-password-qr-panel{background:#f8fafc;border-radius:18px;align-content:center;justify-items:center;gap:14px;padding:24px;display:grid}.post-password-qr{background:#fff;border-radius:16px;width:220px;height:220px;padding:14px}.app-shell{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.app-header{background:#fff;border-bottom:1px solid #dbe2ea;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.app-eyebrow{color:#64748b;text-transform:uppercase;letter-spacing:.12em;margin:0 0 4px;font-size:12px;font-weight:700}.app-title{margin:0;font-size:28px}.app-header-actions{align-items:center;gap:12px;display:flex}.user-chip{background:#f8fafc;border:1px solid #dbe2ea;border-radius:14px;gap:2px;padding:10px 14px;display:grid}.user-chip__name{font-weight:700}.user-chip__role{color:#64748b;font-size:13px}.app-content{padding:24px}.profile-layout{grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);align-items:start;gap:24px;display:grid}.profile-card,.capability-card{margin-bottom:0}.profile-card__header{margin-bottom:18px}.profile-card__title,.capability-card__title{color:#0f172a;margin:0;font-size:28px}.profile-card__subtitle,.capability-card__note{color:#526072;margin:8px 0 0;line-height:1.6}.profile-actions{flex-wrap:wrap;gap:12px;display:flex}.capability-list{color:#334155;gap:10px;margin:18px 0 0;padding-left:18px;display:grid}.tech-card{background:#fff;border:1px solid #dbe2ea;border-radius:18px;margin-bottom:16px;padding:18px;box-shadow:0 10px 24px #0f172a0f}.tech-loading,.tech-error{background:#fff;border:1px solid #dbe2ea;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:240px;display:flex}.tech-btn-primary,.tech-btn-secondary{border:0;border-radius:14px;flex:1;min-height:50px;padding:0 18px;font-weight:700}.tech-btn-primary{color:#fff;background:linear-gradient(135deg,#16a34a,#15803d)}.tech-btn-secondary{color:#0f172a;background:#fff;border:1px solid #cbd5e1}.animate-spin{animation:.9s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=900px){.post-password-card,.profile-layout{grid-template-columns:1fr}}@media (width<=720px){.auth-screen,.post-password-page,.app-content{padding:16px}.auth-card,.post-password-card{padding:24px}.brand-lockup,.app-header{grid-template-columns:1fr;display:grid}.app-header-actions{flex-wrap:wrap;justify-content:stretch}.user-chip,.secondary-button{width:100%}}
