.forge-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1rem;gap:.35rem}.forge-scene{overflow:visible}.forge-hammer{transform-origin:121.5px 8px;transform-box:fill-box;animation:hammer-swing 1.8s cubic-bezier(.55,0,.1,1) infinite}@keyframes hammer-swing{0%{transform:rotate(-26deg)}55%{transform:rotate(-26deg)}68%{transform:rotate(4deg)}78%{transform:rotate(-6deg)}to{transform:rotate(-26deg)}}.forge-ember{animation:ember-pulse 1.8s ease-in-out infinite;transform-origin:center}@keyframes ember-pulse{0%,60%{opacity:.55;transform:scale(.94)}70%{opacity:1;transform:scale(1.12)}85%{opacity:.7;transform:scale(1)}to{opacity:.55;transform:scale(.94)}}.forge-sparks .spark{fill:#ffd27a;opacity:0;transform-origin:120px 132px}.spark.s1{animation:spark-fly 1.8s ease-out infinite;animation-delay:0s;--sx: -18px;--sy: -14px}.spark.s2{animation:spark-fly 1.8s ease-out infinite;animation-delay:.03s;--sx: -6px;--sy: -22px}.spark.s3{animation:spark-fly 1.8s ease-out infinite;animation-delay:.06s;--sx: 10px;--sy: -20px}.spark.s4{animation:spark-fly 1.8s ease-out infinite;animation-delay:.02s;--sx: 20px;--sy: -10px}.spark.s5{animation:spark-fly 1.8s ease-out infinite;animation-delay:.08s;--sx: 2px;--sy: -26px}@keyframes spark-fly{0%,67%{opacity:0;transform:translate(0) scale(.6)}72%{opacity:1;transform:translate(calc(var(--sx) * .35),calc(var(--sy) * .35)) scale(1)}92%{opacity:0;transform:translate(var(--sx),var(--sy)) scale(.4)}to{opacity:0;transform:translate(var(--sx),var(--sy)) scale(.4)}}.forge-smoke{fill:#cfc9bd;opacity:0}.forge-smoke-1{animation:smoke-rise 4.2s ease-in infinite}.forge-smoke-2{animation:smoke-rise 4.2s ease-in infinite;animation-delay:1.6s}@keyframes smoke-rise{0%{opacity:0;transform:translate(0) scale(.7)}20%{opacity:.35}to{opacity:0;transform:translate(6px,-55px) scale(1.6)}}.forge-message{margin:.9rem 0 .2rem;font-size:1.05rem;font-weight:600;color:var(--ink, #232019)}.forge-submessage{margin:0;font-size:.82rem;color:var(--muted, #6f6a5e);text-align:center;max-width:30ch}@media (prefers-reduced-motion: reduce){.forge-hammer,.forge-ember,.spark,.forge-smoke{animation:none!important}.forge-hammer{transform:rotate(-20deg)}.forge-ember{opacity:.85}}:root{--gold: #b8860b;--gold-light: #d4af37;--ink: #232019;--paper: #faf9f6;--card: #ffffff;--border: #e4dfd4;--green: #2f7a4f;--red: #a8321f;--muted: #6f6a5e;font-family:Georgia,Iowan Old Style,serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}a{color:var(--gold)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:var(--ink);color:var(--paper)}.topbar .brand{font-size:1.3rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-light);text-decoration:none}.topbar nav{display:flex;gap:1.25rem;align-items:center}.topbar nav a,.topbar nav button{color:var(--paper);text-decoration:none;background:none;border:none;font-family:inherit;font-size:.95rem;cursor:pointer}.topbar nav a:hover,.topbar nav button:hover{color:var(--gold-light)}main.content{flex:1;max-width:960px;margin:0 auto;padding:2rem;width:100%}.card{background:var(--card);border:1px solid var(--border);border-radius:6px;padding:1.5rem;margin-bottom:1.5rem}h1,h2,h3{font-weight:500}label{display:block;margin-top:.85rem;margin-bottom:.25rem;font-size:.9rem;color:var(--muted)}input,select,textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--border);border-radius:4px;font-family:inherit;font-size:.95rem;background:#fff}textarea{min-height:90px;resize:vertical}button.primary{margin-top:1.25rem;padding:.65rem 1.4rem;background:var(--ink);color:var(--gold-light);border:none;border-radius:4px;cursor:pointer;font-size:.95rem;letter-spacing:.03em}button.primary:hover{background:#3a352a}button.primary:disabled{background:#b5b0a3;color:#6f6a5e;cursor:not-allowed}button.secondary{margin-top:1.25rem;margin-left:.5rem;padding:.65rem 1.4rem;background:transparent;color:var(--ink);border:1px solid var(--ink);border-radius:4px;cursor:pointer}button.danger{background:var(--red);color:#fff}.error-banner{background:#fbeceb;border:1px solid var(--red);color:var(--red);padding:.75rem 1rem;border-radius:4px;margin:1rem 0}.success-banner{background:#eaf5ee;border:1px solid var(--green);color:var(--green);padding:.75rem 1rem;border-radius:4px;margin:1rem 0}.notice-banner{background:#fff8e6;border:1px solid var(--gold);color:#7a5c00;padding:.75rem 1rem;border-radius:4px;margin:1rem 0;font-size:.9rem}.badge{display:inline-block;padding:.15rem .6rem;border-radius:20px;font-size:.78rem;background:#eee7d6;color:#6b5a1e}.render-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0}.render-grid figure{margin:0;text-align:center}.render-grid svg{width:100%;border:1px solid var(--border);border-radius:4px;background:#fff}.render-grid figcaption{font-size:.8rem;color:var(--muted);margin-top:.3rem}.render-image{display:block;max-width:100%;width:320px;margin:1rem auto;border:1px solid var(--border);border-radius:4px;background:#fff}.timeline{display:flex;flex-wrap:wrap;gap:0;margin:1.5rem 0}.timeline-step{flex:1;min-width:90px;text-align:center;padding:.6rem .3rem;border-bottom:4px solid var(--border);font-size:.78rem;color:var(--muted)}.timeline-step.done{border-bottom-color:var(--green);color:var(--ink)}.timeline-step.current{border-bottom-color:var(--gold);color:var(--ink);font-weight:700}table.checklist{width:100%;border-collapse:collapse;margin-top:1rem}table.checklist th,table.checklist td{text-align:left;padding:.5rem;border-bottom:1px solid var(--border);font-size:.88rem;vertical-align:top}.qc-pass{color:var(--green);font-weight:700}.qc-fail{color:var(--red);font-weight:700}.qc-pending{color:var(--muted)}.order-list-item{display:flex;justify-content:space-between;align-items:center;padding:.9rem 0;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem}.doc-preview{border:1px dashed var(--border);padding:1rem;margin:.75rem 0;background:#fffefb}pre.guide-text{white-space:pre-wrap;font-family:inherit;background:#fffefb;border:1px dashed var(--border);padding:1rem}.locked-note{color:var(--red);font-size:.85rem;margin-top:.5rem}
