@font-face{font-family:HTDMontserrat;src:url("fonts/Montserrat-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:HTDMontserrat;src:url("fonts/Montserrat-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:HTDMontserrat;src:url("fonts/Montserrat-BoldItalic.ttf") format("truetype");font-weight:700;font-style:italic;font-display:swap}
:root{color-scheme:dark;--bg:#0b0f15;--surface:#141a23;--surface-2:#1b222d;--surface-3:#222b38;--border:#303b49;--text:#f1f5f9;--muted:#9faabd;--red:#c93636;--red-light:#ee6a6a;--red-dark:#8f1010;--blue:#6aa9ff;--green:#47c78a;--amber:#f2a65a;--cream:#fff8ec;--shadow:0 20px 55px rgba(0,0,0,.28);font-family:HTDMontserrat,Segoe UI,Arial,sans-serif}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 80% -10%,rgba(143,16,16,.20),transparent 32rem),var(--bg);color:var(--text);min-height:100vh}
button,input,textarea,select{font:inherit}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(1.75rem,3vw,3rem);line-height:1.08;letter-spacing:-.035em;margin-bottom:.75rem}
h2{font-size:1.35rem;margin-bottom:.35rem}
h3{font-size:1rem;margin:0}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem max(1.25rem,calc((100vw - 1420px)/2));background:rgba(11,15,21,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.07)}
.topbar.compact{position:static;padding:1rem max(1.25rem,calc((100vw - 1180px)/2))}
.brand-inline{display:flex;align-items:center;gap:.8rem;min-width:0}
.brand-inline img{border-radius:12px;box-shadow:0 7px 22px rgba(0,0,0,.32)}
.brand-inline span{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.brand-inline strong{font-size:.96rem}.brand-inline small{font-size:.73rem;color:var(--muted)}
.topbar-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}
.user-chip{display:flex;align-items:center;gap:.55rem;color:#d8dee9;font-size:.84rem}
.user-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--surface-3);color:#fff;font-weight:700;border:1px solid var(--border)}
.app-shell{width:min(1420px,calc(100% - 2rem));margin:2.25rem auto 4rem;display:grid;gap:1rem}
.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;padding:1rem .25rem 1.35rem}
.hero p:not(.eyebrow){color:var(--muted);max-width:760px;line-height:1.7;margin-bottom:0}
.hero-badges{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}
.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.7rem;font-weight:700;color:var(--red-light);margin-bottom:.55rem}
.panel{background:linear-gradient(145deg,rgba(27,34,45,.96),rgba(18,24,33,.98));border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}
.step-panel{padding:1.45rem}
.step-heading{display:flex;align-items:flex-start;gap:.85rem;margin-bottom:1.35rem}
.step-heading p{margin:0;color:var(--muted);font-size:.87rem;line-height:1.55}
.step-number{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,var(--red),var(--red-dark));font-weight:700;box-shadow:0 8px 22px rgba(143,16,16,.3)}
.privacy-banner{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;padding:.85rem 1.15rem;border:1px solid rgba(71,199,138,.32);background:rgba(71,199,138,.08);border-radius:13px;color:#bcebd3;font-size:.84rem}
.privacy-banner span{color:#93c8ad}
.setup-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.35rem}
.field-group{display:grid;gap:.9rem;padding:1.05rem;border:1px solid var(--border);border-radius:14px;background:rgba(8,12,18,.24)}
label{display:grid;gap:.38rem;color:#dce3ec;font-size:.82rem;font-weight:700}
label small{color:var(--muted);font-weight:400;line-height:1.45}
input,textarea,select{width:100%;background:#0f151e;border:1px solid #344151;border-radius:9px;color:var(--text);padding:.72rem .8rem;outline:none;transition:border-color .15s,box-shadow .15s}
input:focus,textarea:focus,select:focus{border-color:var(--red-light);box-shadow:0 0 0 3px rgba(201,54,54,.16)}
textarea{resize:vertical;min-height:78px}
fieldset{border:0;padding:0;margin:0}legend{font-size:.82rem;font-weight:700;margin-bottom:.45rem}
.segmented-control{display:grid;grid-template-columns:1fr 1fr;background:#0e141d;border:1px solid var(--border);border-radius:10px;padding:4px}
.segmented-control label{display:block;cursor:pointer}.segmented-control input{position:absolute;width:1px;height:1px;padding:0;margin:0;opacity:0;pointer-events:none}
.segmented-control span{display:block;text-align:center;padding:.65rem .45rem;border-radius:7px;color:var(--muted);font-size:.78rem;transition:.15s}
.segmented-control input:checked+span{background:var(--surface-3);color:#fff;box-shadow:0 3px 12px rgba(0,0,0,.3)}
.number-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.example-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem .9rem;border-radius:10px;background:rgba(106,169,255,.08);border:1px solid rgba(106,169,255,.22)}
.example-card span{font-size:.72rem;color:#a8b9d0}.example-card strong{font-size:.78rem;color:#d7e7ff;overflow-wrap:anywhere;text-align:right}
.switch-row{grid-template-columns:auto 1fr;align-items:center;padding:.8rem;border:1px solid var(--border);border-radius:10px;cursor:pointer}
.switch-row input{appearance:none;width:42px;height:24px;padding:0;border-radius:999px;background:#394252;position:relative;border:0;transition:.2s}
.switch-row input:after{content:"";position:absolute;width:18px;height:18px;top:3px;left:3px;border-radius:50%;background:#fff;transition:.2s}
.switch-row input:checked{background:var(--red)}.switch-row input:checked:after{transform:translateX(18px)}
.switch-row span{display:grid;gap:.15rem}.switch-row small{font-weight:400;color:var(--muted)}
.upload-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1rem}
.template-card,.upload-zone{min-height:150px;border:1px solid var(--border);border-radius:14px;padding:1rem;background:rgba(8,12,18,.24)}
.template-card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.85rem}.template-card .button{grid-column:1/-1}
.template-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:13px;background:rgba(71,199,138,.12);color:#6ed7a4;font-size:.68rem;font-weight:700;border:1px solid rgba(71,199,138,.25)}
.template-card div:nth-child(2){display:grid;gap:.25rem}.template-card span{font-size:.76rem;color:var(--muted);line-height:1.45}
.upload-zone{position:relative;display:grid;place-items:center;text-align:center;align-content:center;gap:.28rem;border-style:dashed;cursor:pointer;transition:.16s}
.upload-zone:hover,.upload-zone.dragging{border-color:var(--red-light);background:rgba(201,54,54,.07)}
.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer}
.upload-zone span{font-size:.76rem;color:var(--muted)}.upload-zone em{font-size:.75rem;color:#d7dfeb;font-style:normal;margin-top:.25rem;max-width:90%;overflow-wrap:anywhere}
.upload-symbol{display:grid;place-items:center!important;width:34px;height:34px;border-radius:50%;background:var(--surface-3);color:#fff!important;font-size:1.1rem!important}
.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1rem}
.metric-card{display:grid;gap:.35rem;padding:1rem;border:1px solid var(--border);border-radius:13px;background:rgba(8,12,18,.28)}
.metric-card span{font-size:.75rem;color:var(--muted)}.metric-card strong{font-size:1.7rem}.metric-card.ready strong{color:var(--green)}.metric-card.error strong{color:var(--red-light)}
.review-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(430px,.95fr);gap:1rem;margin-top:1rem;align-items:start}
.table-card,.preview-card{min-width:0;border:1px solid var(--border);border-radius:14px;background:rgba(8,12,18,.25);overflow:hidden}
.table-toolbar,.preview-toolbar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid var(--border)}
.table-toolbar span{font-size:.72rem;color:var(--muted)}.preview-toolbar select{width:min(270px,55%);padding:.48rem .62rem;font-size:.72rem}
.table-scroll{overflow:auto;max-height:520px}table{width:100%;border-collapse:collapse;min-width:760px;font-size:.75rem}th,td{padding:.7rem .65rem;text-align:left;border-bottom:1px solid rgba(48,59,73,.75);vertical-align:top}th{position:sticky;top:0;background:#222b38;color:#dfe6ee;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}td{color:#c9d1dc}.empty-cell{text-align:center;color:var(--muted);padding:2.5rem}.issue-text{color:#ffc0c0}.number-cell{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.69rem;white-space:nowrap}
.preview-card canvas{display:block;width:100%;height:auto;background:var(--cream)}.preview-card>p{margin:.7rem 1rem 1rem;color:var(--muted);font-size:.72rem}
.status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.34rem .62rem;font-size:.67rem;font-weight:700;white-space:nowrap}.status-pill.ready{background:rgba(71,199,138,.13);color:#7fe0b0}.status-pill.error{background:rgba(238,106,106,.13);color:#ff9b9b}.status-pill.neutral{background:var(--surface-3);color:#c1cbd8}
.generate-panel{text-align:left}.generate-panel .button-large{width:100%}
.progress-block{margin-top:1rem;padding:1rem;border:1px solid var(--border);border-radius:13px;background:rgba(8,12,18,.26)}.progress-label{display:flex;justify-content:space-between;font-size:.8rem}progress{width:100%;height:10px;margin:.75rem 0;border:0;border-radius:999px;overflow:hidden;background:#2b3542}progress::-webkit-progress-bar{background:#2b3542}progress::-webkit-progress-value{background:linear-gradient(90deg,var(--red-dark),var(--red-light))}progress::-moz-progress-bar{background:linear-gradient(90deg,var(--red-dark),var(--red-light))}.progress-block p{margin:0;color:var(--muted);font-size:.75rem}
.download-panel{margin-top:1rem}.download-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:.8rem}.download-card{display:grid;gap:.28rem;text-align:left;background:var(--surface-3);border:1px solid var(--border);border-radius:12px;color:#fff;padding:1rem;cursor:pointer;transition:.16s}.download-card:hover{transform:translateY(-2px);border-color:#566579}.download-card span{font-size:.67rem;color:var(--red-light);text-transform:uppercase;letter-spacing:.08em}.download-card strong{font-size:.92rem}.download-card small{color:var(--muted);line-height:1.45}
.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:9px;border:1px solid transparent;padding:.62rem .82rem;font-size:.76rem;font-weight:700;cursor:pointer;transition:.15s;white-space:nowrap}.button:disabled{opacity:.45;cursor:not-allowed}.button-primary{background:linear-gradient(145deg,var(--red),var(--red-dark));color:#fff;box-shadow:0 8px 22px rgba(143,16,16,.24)}.button-primary:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.button-secondary{background:var(--surface-3);border-color:var(--border);color:#e3e9f0}.button-secondary:hover{border-color:#526174}.button-quiet{background:transparent;border-color:transparent;color:var(--muted)}.button-large{padding:.9rem 1rem;font-size:.9rem}
.alert{display:flex;gap:.55rem;align-items:flex-start;flex-wrap:wrap;border-radius:10px;padding:.78rem .9rem;font-size:.77rem;line-height:1.5}.alert-info{background:rgba(106,169,255,.09);border:1px solid rgba(106,169,255,.25);color:#c7ddfc}.alert-success{background:rgba(71,199,138,.09);border:1px solid rgba(71,199,138,.25);color:#bcebd3}.alert-error{background:rgba(238,106,106,.09);border:1px solid rgba(238,106,106,.27);color:#ffc5c5}
.site-footer{width:min(1420px,calc(100% - 2rem));margin:0 auto 2rem;display:flex;justify-content:space-between;color:#6f7a89;font-size:.68rem}
.auth-page{display:grid;place-items:center;padding:1rem}.auth-shell{width:min(470px,100%)}.auth-card{background:linear-gradient(145deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:20px;padding:1.45rem;box-shadow:var(--shadow)}.brand-lockup{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem}.brand-lockup img{border-radius:15px}.brand-lockup h1{font-size:1.35rem;margin:0}.brand-lockup .eyebrow{margin-bottom:.25rem}.lede{color:var(--muted);font-size:.84rem;line-height:1.65}.stack-form{display:grid;gap:.9rem;margin-top:1rem}.stack-form .button{margin-top:.15rem}.privacy-note{text-align:center;color:#6f7a89;font-size:.68rem;margin:1rem 0 0}
.admin-shell{width:min(1180px,calc(100% - 2rem));margin:2rem auto}.admin-shell>.panel{padding:1.4rem}.admin-create{margin:1.2rem 0;border:1px solid var(--border);border-radius:12px;background:rgba(8,12,18,.25);padding:1rem}.admin-create summary{cursor:pointer;font-weight:700;font-size:.86rem}.grid-form{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-top:1rem}.grid-form .button{align-self:end}.user-list{display:grid;gap:.65rem}.user-card{display:grid;grid-template-columns:minmax(180px,1fr) auto auto minmax(280px,1.3fr);gap:.65rem;align-items:center;padding:.8rem;border:1px solid var(--border);border-radius:11px;background:rgba(8,12,18,.23)}.user-card>div:first-child{display:grid;gap:.2rem}.user-card>div:first-child span{font-size:.7rem;color:var(--muted)}.inline-form{display:flex;align-items:center;gap:.45rem;margin:0}.reset-form input{min-width:210px;padding:.55rem .65rem;font-size:.72rem}
[hidden]{display:none!important}
@media(max-width:1050px){.setup-grid,.upload-grid,.review-grid{grid-template-columns:1fr}.review-grid{align-items:stretch}.preview-card{max-width:780px}.grid-form{grid-template-columns:1fr 1fr}.user-card{grid-template-columns:1fr auto}.user-card .reset-form{grid-column:1/-1}.number-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.topbar{position:static;align-items:flex-start}.topbar,.hero{flex-direction:column}.topbar-actions{justify-content:flex-start}.user-chip{width:100%}.app-shell{width:min(100% - 1rem,1420px);margin-top:1rem}.step-panel{padding:1rem}.hero{padding:.5rem}.hero-badges{justify-content:flex-start}.metric-row,.download-grid{grid-template-columns:1fr}.number-grid,.grid-form{grid-template-columns:1fr}.segmented-control{grid-template-columns:1fr}.template-card{grid-template-columns:1fr;text-align:center}.template-icon{margin:auto}.site-footer{flex-direction:column;gap:.3rem}.user-card{grid-template-columns:1fr}.reset-form{flex-direction:column;align-items:stretch}.reset-form input{min-width:0}.brand-inline small{display:none}}
