.auth-screen{background:#f5f5f7;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:#fff;border-radius:14px;flex-direction:column;width:100%;max-width:360px;padding:28px;display:flex;box-shadow:0 12px 40px #0000001a}.auth-title{margin:0 0 4px;font-size:22px}.auth-sub{color:#666;margin:0 0 18px;font-size:14px}.auth-label{color:#555;margin:10px 0 4px;font-size:12px}.auth-input{border:1px solid #d9d9de;border-radius:8px;padding:10px 12px;font-size:14px}.auth-input:focus{border-color:var(--accent);outline:none}.auth-submit{margin-top:18px}.auth-err{color:#c0392b;margin:12px 0 0;font-size:13px}.auth-info{color:#1f7a43;margin:12px 0 0;font-size:13px}.auth-toggle{color:#666;text-align:center;margin:16px 0 0;font-size:13px}.auth-toggle button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.signout-btn{z-index:40;cursor:pointer;background:#fff;border:1px solid #d9d9de;border-radius:8px;padding:6px 12px;font-size:13px;position:fixed;top:12px;right:14px;box-shadow:0 2px 8px #00000014}.signout-btn:hover{border-color:var(--accent);color:var(--accent)}@font-face{font-family:GentonaExBold;src:url(/fonts/gentona-extrabold-webfont.woff2)format("woff2");font-weight:800;font-display:swap}@font-face{font-family:GentonaBook;src:url(/fonts/gentona-book-webfont.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Champ;src:url(/fonts/Champ-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Champ;src:url(/fonts/Champ-Bold.ttf)format("truetype");font-weight:700;font-display:swap}@font-face{font-family:Space Mono;src:url(/fonts/spacemono-regular-webfont.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Space Mono;src:url(/fonts/spacemono-bold-webfont.woff2)format("woff2");font-weight:700;font-display:swap}:root{--bg:#fff;--ink:#0a0a0a;--muted:#6b6b6b;--line:#e6e6e6;--accent:#ec391e;--gold:#eeba0a;--panel:#fafafa;--display:"GentonaExBold", "Champ", system-ui, sans-serif;--body:"GentonaBook", "Champ", system-ui, sans-serif;--mono:"Space Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--body)}.app{grid-template-columns:400px 1fr;height:100vh;display:grid}.panel{border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.brand{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:22px 24px;display:flex}.brand img{height:30px}.brand .logo{width:auto;height:22px}.brand .word{font-family:var(--display);letter-spacing:-.5px;font-size:26px}.brand .tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-left:auto;font-size:10px}.scroll{flex:1;min-height:0;padding:22px 24px;overflow-y:auto}.label{font-family:var(--mono);text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin:0 0 8px;font-size:10px}textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:120px;font-family:var(--body);color:var(--ink);background:#fff;border-radius:10px;padding:14px;font-size:15px;line-height:1.4}textarea:focus{border-color:var(--ink);outline:none}.models{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;display:grid}.models button{font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:8px;padding:9px 4px;font-size:11px}.models button.active{border-color:var(--ink);background:var(--ink);color:#fff}.advice{border-left:3px solid var(--gold);background:#fffbf0;border-radius:6px;margin-top:14px;padding:12px 14px;font-size:13px}.advice b{font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;font-size:11px}.cta{gap:10px;margin-top:18px;display:flex}.btn{font-family:var(--display);letter-spacing:.2px;cursor:pointer;background:var(--accent);color:#fff;border:none;border-radius:10px;flex:1;padding:13px 18px;font-size:15px}.btn.secondary{color:var(--ink);border:1px solid var(--line);background:#fff;flex:none}.btn:disabled{opacity:.5;cursor:default}.status{font-family:var(--mono);color:var(--muted);white-space:pre-wrap;margin-top:14px;font-size:12px}.status.err{color:var(--accent)}.list{margin-top:26px}.item{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:9px;align-items:center;gap:10px;margin-bottom:8px;padding:11px 12px;display:flex}.item.active{border-color:var(--ink)}.item .dot{background:var(--gold);border-radius:50%;width:8px;height:8px}.item .nm{font-family:var(--body);font-size:14px}.item .meta{font-family:var(--mono);color:var(--muted);margin-left:auto;font-size:10px}.stage{background:#f2f2f2;flex-direction:column;min-width:0;display:flex}.stagebar{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:14px;padding:16px 24px;display:flex}.stagebar .title{font-family:var(--display);font-size:18px}.stagebar .spacer{flex:1}.player-wrap{flex:1;justify-content:center;align-items:center;min-height:0;padding:32px;display:flex}.player-frame{border-radius:8px;max-width:100%;max-height:100%;overflow:hidden;box-shadow:0 20px 60px #00000026}.empty-stage{font-family:var(--mono);color:var(--muted);text-align:center;max-width:360px;font-size:13px;line-height:1.6}.player-wrap.checker .player-frame{background-color:#fff;background-image:linear-gradient(45deg,#d8d8d8 25%,#0000 25%),linear-gradient(-45deg,#d8d8d8 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#d8d8d8 75%),linear-gradient(-45deg,#0000 75%,#d8d8d8 75%);background-position:0 0,0 11px,11px -11px,-11px 0;background-size:22px 22px}.fons-note{color:var(--muted);border-left:3px solid var(--gold);background:#fffbf0;border-radius:6px;margin:10px 0 0;padding:10px 12px;font-size:12px;line-height:1.5}.dash{flex-direction:column;min-height:100vh;display:flex}.dash-head{border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:20px 32px;display:flex}.dash-head .brand{border:none;flex:1;padding:0}.dash-head .brand img{height:28px}.dash-err{border-left:3px solid var(--accent);color:var(--accent);background:#fff5f3;border-radius:6px;margin:16px 32px 0;padding:12px 14px;font-size:13px}.dash-body{flex:1;padding:32px}.dash-empty{text-align:center;color:var(--muted);padding:80px 20px}.dash-empty h2{font-family:var(--display);color:var(--ink);margin:0 0 8px}.dash-empty p{margin:0 0 20px}.dash-empty .btn{flex:0;padding:13px 22px;display:inline-block}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;display:grid}.card{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:14px;flex-direction:column;gap:8px;padding:18px;transition:border-color .15s,box-shadow .15s;display:flex}.card:hover{border-color:var(--ink);box-shadow:0 8px 24px #0000000f}.card-top{justify-content:space-between;align-items:center;display:flex}.card-size{font-family:var(--mono);color:var(--muted);font-size:10px}.card-title{font-family:var(--display);margin:4px 0 0;font-size:19px;line-height:1.2}.card-meta{font-family:var(--mono);color:var(--muted);flex-wrap:wrap;gap:5px;font-size:11px;display:flex}.card-date{font-family:var(--mono);color:var(--muted);margin-top:auto;font-size:10px}.card-actions{border-top:1px solid var(--line);gap:6px;margin-top:12px;padding-top:12px;display:flex}.card-actions button{font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:7px;flex:1;padding:8px 4px;font-size:11px}.card-actions button:hover{border-color:var(--ink)}.card-actions button.danger{color:var(--accent)}.card-actions button.danger:hover{border-color:var(--accent);background:#fff5f3}.badge{font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;border-radius:20px;padding:4px 9px;font-size:10px;display:inline-block}.badge.draft{color:var(--muted);background:#f0f0f0}.badge.processing{color:#9a7400;background:#fff7e0}.badge.completed{color:#1f7a43;background:#e7f6ec}.badge.error{color:var(--accent);background:#fff0ee}.icon-btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;width:32px;height:32px;font-size:16px;line-height:1}.icon-btn:hover{border-color:var(--ink)}.title-input{width:100%;font-family:var(--display);color:var(--ink);background:0 0;border:none;border-bottom:1px solid #0000;margin-bottom:8px;padding:2px 0;font-size:20px}.title-input:hover{border-bottom-color:var(--line)}.title-input:focus{border-bottom-color:var(--ink);outline:none}.pv-loading{height:100vh;font-family:var(--mono);color:var(--muted);justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.sizes{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sizes button{border:1px solid var(--line);cursor:pointer;color:var(--ink);text-align:left;background:#fff;border-radius:8px;flex-direction:column;gap:2px;padding:10px;display:flex}.sizes button b{font-family:var(--body);font-size:13px}.sizes button span{font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-size:9px}.sizes button.active{border-color:var(--ink);background:var(--ink)}.sizes button.active b,.sizes button.active span{color:#fff}.durs{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.durs button{font-family:var(--mono);border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:8px;padding:9px 4px;font-size:11px}.durs button.active{border-color:var(--ink);background:var(--ink);color:#fff}.custom-dur{align-items:center;gap:8px;margin-top:8px;display:flex}.custom-dur input{border:1px solid var(--line);width:90px;font-family:var(--mono);border-radius:8px;padding:9px 12px}.custom-dur span{font-family:var(--mono);color:var(--muted);font-size:12px}.dropzone{border:1.5px dashed var(--line);text-align:center;cursor:pointer;color:var(--muted);border-radius:10px;flex-direction:column;gap:4px;padding:18px 14px;font-size:13px;transition:border-color .15s,background .15s;display:flex}.dropzone:hover,.dropzone.over{border-color:var(--ink);background:#fafafa}.dropzone .hint{font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;font-size:9px}.attlist{flex-direction:column;gap:8px;margin-top:10px;display:flex}.att{border:1px solid var(--line);border-radius:9px;align-items:center;gap:10px;padding:8px;display:flex}.thumb{object-fit:cover;border-radius:6px;flex:none;width:40px;height:40px}.thumb.doc{background:var(--ink);color:#fff;font-family:var(--mono);justify-content:center;align-items:center;font-size:9px;font-weight:700;display:flex}.att-meta{flex-direction:column;flex:1;min-width:0;display:flex}.att-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.att-sub{font-family:var(--mono);color:var(--muted);font-size:9px}.att-x{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:18px;line-height:1}.att-x:hover{color:var(--accent)}.att-x:disabled{opacity:.4;cursor:default}.processing{font-family:var(--mono);color:var(--ink);align-items:center;gap:10px;margin-top:14px;font-size:12px;display:flex}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;flex:none;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.retry{font-family:var(--mono);border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:#fff;border-radius:7px;margin-top:8px;padding:6px 12px;font-size:11px;display:block}.history{margin-top:26px}.hmsg{border:1px solid var(--line);border-radius:9px;margin-bottom:8px;padding:11px 12px}.hmsg.assistant{background:#fafafa}.hmsg.system{background:#fff5f3;border-color:#f3c9c2}.hmeta{justify-content:space-between;margin-bottom:5px;display:flex}.hmeta .role{font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-size:9px}.hmeta .time{font-family:var(--mono);color:var(--muted);font-size:9px}.hbody{white-space:pre-wrap;font-size:13px;line-height:1.45}.hatts{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.hatts img{object-fit:cover;border-radius:5px;width:44px;height:44px}.hchip{font-family:var(--mono);background:#efefef;border-radius:5px;padding:4px 8px;font-size:10px}.hgen{font-family:var(--mono);color:var(--muted);margin-top:8px;font-size:10px}.dropzone.compact{margin-top:10px;padding:11px 12px;font-size:12.5px}.btn.secondary{justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn .spinner{border-color:#00000026;border-top-color:var(--accent)}.advisory{border:1px solid var(--line);border-left:3px solid var(--gold);background:#fffbf0;border-radius:8px;margin-top:16px;padding:14px}.adv-head{font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:0 0 10px;font-size:10px}.adv-item{flex-direction:column;gap:2px;margin-bottom:11px;display:flex}.adv-item b{font-size:13px}.adv-item span{color:#555;font-size:12px;line-height:1.45}.adv-cta{gap:8px;margin-top:4px;display:flex}.adv-cta .btn{flex:1}.collapse-toggle{cursor:pointer;font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;color:var(--muted);background:0 0;border:none;margin-top:12px;padding:0;font-size:11px}.collapse-toggle:hover{color:var(--ink)}.brief{flex-direction:column;gap:6px;margin-top:8px;display:flex}.brief input{border:1px solid var(--line);font-size:13px;font-family:var(--body);border-radius:7px;padding:8px 10px}.brief input:focus{border-color:var(--ink);outline:none}.select{border:1px solid var(--line);width:100%;font-family:var(--body);background:#fff;border-radius:8px;padding:9px 10px;font-size:13px}.select.sm{width:auto;padding:7px 8px;font-size:12px}.att-warn{color:#9a6a00;border-left:2px solid var(--gold);background:#fffbf0;border-radius:4px;margin:4px 0 0 50px;padding:6px 8px;font-size:11px;line-height:1.4}.btn.ghost{color:var(--ink);border:1px solid var(--line);font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;background:#fff;flex:none;padding:8px 11px;font-size:11px}.btn.ghost:hover{border-color:var(--ink)}.btn.ghost.danger{border:1px solid var(--accent);color:var(--accent);background:#fff}.btn.ghost.danger:hover{background:#fff5f3}.constants{border:1px solid var(--line);background:#fafafa;border-radius:10px;margin-top:22px;padding:14px}.const-row{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.const-row label{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}.const-row input[type=text],.const-row input[type=number]{border:1px solid var(--line);border-radius:6px;width:120px;padding:6px 8px;font-size:12px}.const-row input[type=color]{border:1px solid var(--line);cursor:pointer;border-radius:6px;width:36px;height:28px;padding:0}.variants-bar{border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 24px;font-size:13px;display:flex}.variants-bar label{font-family:var(--mono);align-items:center;gap:5px;font-size:11px;display:flex}.variants-bar .btn{flex:none;padding:8px 14px}.export-warn{border-bottom:1px solid var(--line);color:#9a6a00;background:#fffbf0;flex-direction:column;gap:4px;padding:10px 24px;font-size:12px;display:flex}.dash-tabs{flex:1;gap:4px;margin-left:20px;display:flex}.dash-tabs button{font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:7px;padding:8px 12px;font-size:11px}.dash-tabs button.active{background:var(--ink);color:#fff}.brandmgr-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.brandmgr-head .btn{flex:none;padding:11px 18px}.brandmgr h2{font-family:var(--display);margin:0}.muted{color:var(--muted);margin:6px 0 18px;font-size:13px}.brandgrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.brandcard{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.bk-name{font-family:var(--display);border:none;border-bottom:1px solid #0000;padding:2px 0;font-size:17px}.bk-name:hover{border-bottom-color:var(--line)}.bk-name:focus{border-bottom-color:var(--ink);outline:none}.bk-colors{gap:10px;display:flex}.bk-colors label{font-family:var(--mono);color:var(--muted);text-transform:uppercase;flex-direction:column;align-items:center;gap:3px;font-size:9px;display:flex}.bk-colors input[type=color]{border:1px solid var(--line);cursor:pointer;border-radius:6px;width:38px;height:30px;padding:0}.bk-field{border:1px solid var(--line);font-size:12px;font-family:var(--body);border-radius:7px;padding:8px 10px}.bk-field:focus{border-color:var(--ink);outline:none}textarea.bk-field{resize:vertical;min-height:56px}.bk-actions{gap:8px;margin-top:4px;display:flex}.bk-actions .btn{flex:1;padding:9px}.btn.secondary.saved{color:#1f7a43;background:#e7f6ec;border-color:#1f7a43}.toasts{z-index:60;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast{cursor:pointer;border-radius:10px;max-width:360px;padding:13px 18px;font-size:14px;animation:.25s toastin;box-shadow:0 10px 30px #0000002e}.toast.ok{color:#1f7a43;background:#e7f6ec;border:1px solid #1f7a43}.toast.err{border:1px solid var(--accent);color:var(--accent);background:#fff0ee}@keyframes toastin{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.modal-back{z-index:50;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:calc(100% - 48px);max-width:440px;padding:24px;box-shadow:0 30px 80px #00000040}.modal p{margin:0 0 18px;font-size:14px;line-height:1.5}.modal-cta{gap:10px;display:flex}.modal-cta .btn{flex:1}.btn.danger{background:var(--accent)}
