:root{--ink:#141414;--ink-soft:#2a2a2a;--tape:#f5c518;--tape-deep:#e0a800;--paper:#f2efe6;--paper-2:#e8e2d4;--line:#1414141f;--danger:#b42318;--ok:#1f7a3a;--font-display:"Bricolage Grotesque", Georgia, serif;--font-body:"IBM Plex Sans", system-ui, sans-serif;color:var(--ink);background:var(--paper);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(1200px 500px at 10% -10%, #f5c51859, transparent 55%), radial-gradient(900px 420px at 90% 0%, #14141414, transparent 50%), linear-gradient(180deg, #f7f4ec 0%, var(--paper) 40%, var(--paper-2) 100%);background-attachment:fixed;min-height:100vh}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.app-shell{width:min(920px,100% - 2rem);margin:0 auto;padding:1.5rem 0 3rem}.brand{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(2.6rem,8vw,4.5rem);font-weight:800;line-height:.95}.brand span{color:var(--tape-deep)}.lede{max-width:36ch;color:var(--ink-soft);margin:.75rem 0 0;font-size:1.05rem;line-height:1.45}.topbar{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.75rem;display:flex}.topbar-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.user-chip{color:var(--ink-soft);font-size:.85rem}.btn{appearance:none;border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:2px;padding:.65rem 1rem;font-weight:600;transition:transform .16s,background .16s,color .16s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{color:var(--ink);background:0 0}.btn-tape{background:var(--tape);color:var(--ink);border-color:var(--ink)}.btn-ghost{color:var(--ink-soft);text-underline-offset:3px;background:0 0;border-color:#0000;padding-inline:.4rem;text-decoration:underline}.stage{background:repeating-linear-gradient(90deg,#1414140a 0 1px,#0000 1px 12px),linear-gradient(#1a1a1a 0%,#0f0f0f 100%);border-radius:4px;margin:1.5rem 0 1.25rem;padding:1.75rem 1.25rem;position:relative;overflow:hidden}.stage:before,.stage:after{content:"";pointer-events:none;background:linear-gradient(90deg,#f5c51826,#0000);width:18px;position:absolute;top:0;bottom:0}.stage:before{left:0}.stage:after{right:0;transform:scaleX(-1)}.tape-preview{image-rendering:auto;width:auto;max-width:100%;height:clamp(72px,14vw,112px);box-shadow:0 0 0 2px var(--tape), 0 18px 40px #00000059;background:#fff;margin:0 auto;animation:.42s cubic-bezier(.2,.8,.2,1) both tape-in;display:block}@keyframes tape-in{0%{opacity:0;transform:translateY(8px)scaleX(.96)}to{opacity:1;transform:translateY(0)scaleX(1)}}.tape-empty{color:#ffffff8c;text-align:center;padding:1.5rem 0;font-size:.95rem}.panel{gap:1rem;display:grid}.field{gap:.35rem;display:grid}.field label{letter-spacing:.04em;text-transform:uppercase;font-size:.8rem;font-weight:600}.field input[type=text],.field input[type=number],.field input[type=file],.field select,.field textarea{border:1.5px solid var(--line);background:#ffffffb3;border-radius:2px;width:100%;padding:.7rem .8rem}.field input[type=range]{width:100%;accent-color:var(--ink)}.field input[type=file]{padding:.55rem .65rem;font-size:.9rem}.field input[type=file]:disabled{opacity:.5}.hint{color:var(--ink-soft);opacity:.85;margin:0;font-size:.85rem}.field input:focus,.field textarea:focus{outline:2px solid var(--tape);border-color:var(--ink)}.row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (width<=640px){.row{grid-template-columns:1fr}.topbar{flex-direction:column}}.toggle-row{align-items:center;gap:.55rem;display:flex}.toggle-row input{width:1.05rem;height:1.05rem;accent-color:var(--ink)}.actions{flex-wrap:wrap;gap:.65rem;margin-top:.5rem;display:flex}.status{min-height:1.3em;margin-top:.85rem;font-size:.92rem}.status.error{color:var(--danger)}.status.ok{color:var(--ok)}.notice{border-left:3px solid var(--tape);background:#ffffff8c;margin:1rem 0 0;padding:.85rem 1rem;font-size:.9rem}.notice ul{margin:.35rem 0 0;padding-left:1.1rem}.login-page{place-items:center;min-height:100vh;padding:2rem 1rem;display:grid}.login-card{text-align:left;width:min(440px,100%)}.login-card .lede{margin-bottom:1.5rem}.login-card .btn{animation:2.4s ease-in-out infinite cta-pulse}@keyframes cta-pulse{0%,to{box-shadow:0 0 #f5c51859}50%{box-shadow:0 0 0 10px #f5c51800}}.callback-page{place-items:center;min-height:100vh;padding:2rem;font-size:1.05rem;display:grid}.history{gap:.85rem;margin-top:2.5rem;display:grid}.history-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.45rem}.history-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.history-item{border-top:1px solid var(--line);align-items:center;gap:.5rem;padding-top:.55rem;display:flex}.history-preview-btn{text-align:left;color:inherit;background:0 0;border:0;flex:1;align-items:center;gap:.75rem;padding:.35rem 0;display:flex}.history-preview-btn img{width:auto;max-width:140px;height:36px;box-shadow:0 0 0 1px var(--tape);image-rendering:auto;background:#fff}.history-preview-btn span{gap:.15rem;min-width:0;display:grid}.history-preview-btn strong{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;overflow:hidden}.history-preview-btn small{color:var(--ink-soft);font-size:.8rem}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:1.5rem;display:grid}@media (width>=800px){.admin-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-block{grid-column:span 2}}.stat{border-top:1px solid var(--line);gap:.35rem;padding:1rem 0;display:grid}.stat-label{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-size:.75rem;font-weight:600}.stat-value{font-family:var(--font-display);letter-spacing:-.03em;font-size:2rem}.admin-block{grid-column:1/-1;gap:.75rem;padding-top:.5rem;display:grid}.admin-block h2{font-family:var(--font-display);margin:0;font-size:1.25rem}.bars{align-items:flex-end;gap:.35rem;height:120px;padding-top:.5rem;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:.25rem;min-width:0;height:100%;display:flex}.bar{background:var(--tape);border-radius:2px 2px 0 0;width:100%;min-height:2px}.bar-col span{color:var(--ink-soft);font-size:.65rem}.admin-table{border-collapse:collapse;width:100%;font-size:.92rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--line);padding:.45rem .35rem}.admin-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:.75rem}
