:root{--ink:#0f141b;--ink-2:#171e28;--ink-3:#202936;--line:#303b49;--paper:#f4f7f9;--muted:#8997a8;--coral:#ff624c;--cyan:#39c9b0;--amber:#f0b54a;--danger:#ff7767;--radius:10px;--shadow:0 16px 48px rgba(0,0,0,.24);font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--ink);color:#e7edf4}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}[hidden]{display:none!important}
.studio-body{min-width:1120px;background:linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),var(--ink);background-size:40px 40px}
.studio-header{height:66px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:rgba(15,20,27,.96);position:sticky;top:0;z-index:30;padding:0 18px;box-shadow:0 4px 18px rgba(0,0,0,.16)}
.studio-brand{display:flex;align-items:center;gap:10px;width:244px}.studio-brand>span,.login-brand>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50% 50% 50% 10%;background:var(--coral);font-family:Impact,"Arial Black",sans-serif;font-size:21px;color:#fff;box-shadow:0 7px 18px rgba(255,98,76,.22)}.studio-brand div,.login-brand div{display:flex;flex-direction:column}.studio-brand strong{font-size:16px;letter-spacing:.08em}.studio-brand small{font-size:9px;letter-spacing:.17em;color:var(--muted);margin-top:2px}
.studio-nav{display:flex;align-self:stretch;gap:4px;flex:1}.studio-nav button{position:relative;padding:0 17px;border:0;background:transparent;color:#8f9bab;font-size:13px}.studio-nav button:hover{color:#fff}.studio-nav button.active{color:#fff}.studio-nav button.active:after{content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--coral)}
.quiet-button,.icon-button,.secondary-button{border:1px solid var(--line);background:var(--ink-2);color:#cbd5df;border-radius:7px;padding:8px 12px}.quiet-button:hover,.icon-button:hover,.secondary-button:hover{border-color:#566578;color:#fff}.primary-button{border:0;border-radius:7px;background:var(--coral);color:#fff;padding:10px 15px;font-weight:700;box-shadow:0 7px 18px rgba(255,98,76,.2)}.primary-button:hover{background:#ff725f}.secondary-button{width:100%;margin-top:15px}
.studio-main{min-height:calc(100vh - 66px)}.template-studio{display:grid;grid-template-columns:244px minmax(520px,1fr) 370px;height:calc(100vh - 66px)}
.template-library,.inspector{background:var(--ink-2);min-height:0}.template-library{border-right:1px solid var(--line);display:flex;flex-direction:column}.template-library>header,.canvas-stage>header{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--line)}.template-library>header div,.canvas-stage>header div{display:flex;flex-direction:column}.template-library header small,.page-heading small,.client-card header small{color:var(--coral);letter-spacing:.14em;font-size:10px}.template-library header strong{font-size:14px;margin-top:3px}.icon-button{padding:7px 9px;font-size:12px}.upload-drawer{padding:13px;border-bottom:1px solid var(--line);background:#1c2530}.upload-drawer label{font-size:12px;color:#d9e1ea}.upload-drawer input{display:block;width:100%;margin-top:8px;color:var(--muted);font-size:11px}.upload-drawer p{color:var(--muted);font-size:11px;line-height:1.6}.upload-drawer button{width:100%}.template-search{padding:10px 12px;border-bottom:1px solid var(--line)}.template-search input{width:100%;border:1px solid transparent;border-radius:7px;padding:9px 11px;background:#10161e;color:#fff;outline:0}.template-search input:focus{border-color:var(--cyan)}.template-list{overflow:auto;padding:7px;flex:1}.template-card{width:100%;display:grid;grid-template-columns:62px 1fr 8px;align-items:center;gap:10px;border:1px solid transparent;border-radius:8px;padding:7px;background:transparent;color:#c5d0db;text-align:left}.template-card:hover{background:#202936}.template-card.active{border-color:#3a4a5d;background:#242e3b}.template-card img{width:62px;height:47px;object-fit:cover;border-radius:4px;background:#0d1218}.template-card span{min-width:0;display:flex;flex-direction:column}.template-card strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-card small{color:var(--muted);font-size:10px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-card i,.client-card header i{width:7px;height:7px;border-radius:50%;background:#5b6672}.template-card i.online,.client-card header i.online{background:var(--cyan);box-shadow:0 0 0 4px rgba(57,201,176,.1)}
.empty-state{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);text-align:center}.empty-state b{color:#dbe3eb;margin-bottom:8px}.empty-state span{font-size:12px}
.canvas-stage{min-width:0;display:flex;flex-direction:column;background:#0b0f14}.canvas-stage>header b{font-size:13px;margin-top:4px}.stage-status{font:9px Consolas,monospace;color:var(--cyan);letter-spacing:.18em}.stage-actions{display:flex!important;flex-direction:row!important;gap:8px}.canvas-scroll{flex:1;min-height:0;overflow:auto;padding:24px;display:grid;place-items:center;background-color:#0a0e13;background-image:linear-gradient(45deg,#10161d 25%,transparent 25%),linear-gradient(-45deg,#10161d 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#10161d 75%),linear-gradient(-45deg,transparent 75%,#10161d 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.canvas-wrap{position:relative;box-shadow:var(--shadow);line-height:0}.canvas-wrap canvas{display:block;max-width:none;background:#fff;touch-action:none}.canvas-empty{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#111821;color:var(--muted);line-height:1.5}.canvas-empty b{color:#e7edf4;margin-bottom:4px}.canvas-stage>footer{height:30px;border-top:1px solid var(--line);padding:0 13px;display:flex;align-items:center;justify-content:space-between;color:#677486;font:10px Consolas,monospace}
.inspector{border-left:1px solid var(--line);overflow:auto}.inspector-block{border-bottom:1px solid var(--line);padding:13px}.inspector-block>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.inspector-block>header span{font-size:13px;font-weight:700}.inspector-block>header em{font-style:normal;color:var(--muted);font:10px Consolas,monospace}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid.compact{gap:8px}.form-grid label,.panel-form>label{display:flex;flex-direction:column;gap:6px;color:#8795a6;font-size:11px}.form-grid label.wide{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea,.panel-form input,.panel-form select{width:100%;min-width:0;border:1px solid #303c4b;border-radius:6px;background:#10161e;color:#eaf0f6;padding:8px 9px;outline:0}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.panel-form input:focus,.panel-form select:focus{border-color:var(--cyan)}.form-grid input[type=color]{padding:3px;height:34px}.switch-label{flex-direction:row!important;align-items:center!important;border:1px solid #303c4b;border-radius:6px;padding:7px 8px}.switch-label input{width:auto!important;accent-color:var(--cyan)}.switch-label span{color:#c6d0db}.preview-params{background:#141b24}.field-toolbar{display:flex;gap:5px;flex-wrap:wrap}.field-toolbar button{border:1px solid #304052;border-radius:5px;background:#111922;color:#b8c6d5;padding:5px 7px;font-size:10px}.field-toolbar button:hover{border-color:var(--cyan);color:#fff}.field-list{display:flex;flex-direction:column;gap:4px;margin:10px 0}.field-item{display:grid;grid-template-columns:8px 1fr auto;gap:8px;align-items:center;width:100%;border:1px solid transparent;border-radius:6px;background:#111820;color:#b7c3d0;padding:7px;text-align:left;font-size:11px}.field-item i{width:7px;height:7px;border-radius:2px;background:var(--amber)}.field-item small{color:#687789}.field-item.active{border-color:#526579;background:#212b37;color:#fff}.field-properties{border-top:1px dashed #354253;padding-top:11px}.danger-link{margin-top:9px;border:0;background:transparent;color:var(--danger);font-size:11px;padding:0}
.toast{position:fixed;z-index:100;top:78px;left:50%;transform:translateX(-50%);min-width:300px;max-width:620px;padding:12px 16px;border:1px solid #384657;border-radius:8px;background:#202b38;color:#fff;box-shadow:var(--shadow);font-size:12px;line-height:1.6}.toast.success{border-left:4px solid var(--cyan)}.toast.warning{border-left:4px solid var(--amber)}.toast.error{border-left:4px solid var(--danger)}.key-banner{margin:12px auto 0;width:min(900px,calc(100% - 36px));display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(240,181,74,.42);background:#282317;border-radius:8px;padding:12px 14px}.key-banner div{display:flex;flex-direction:column;gap:5px}.key-banner small{color:#d9b96e}.key-banner code{color:#fff}.key-banner button{border:0;border-radius:5px;background:var(--amber);color:#211b0d;padding:8px 12px;font-weight:700}
.content-page{padding:28px 32px 50px;max-width:1480px;margin:auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:1px solid var(--line);padding:10px 0 22px;margin-bottom:22px}.page-heading h1{font-size:28px;margin:4px 0 7px;letter-spacing:.02em}.page-heading p{margin:0;color:var(--muted);font-size:13px}.page-heading>span{border:1px solid var(--line);border-radius:20px;padding:8px 13px;color:#a8b4c2;font:11px Consolas,monospace}.split-panels,.generate-layout{display:grid;grid-template-columns:420px 1fr;gap:18px}.panel,.panel-form,.client-card,.api-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--ink-2);box-shadow:0 8px 24px rgba(0,0,0,.12)}.panel-form{padding:20px}.panel-form h2,.panel h2{margin:0 0 18px;font-size:16px}.panel-form>.primary-button{width:100%;margin-top:18px}.data-table{padding:20px;min-width:0}.table-scroll{overflow:auto}.data-table table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;color:#6f7d8e;font-weight:500;border-bottom:1px solid var(--line);padding:0 10px 10px}.data-table td{padding:12px 10px;border-bottom:1px solid #242d39;color:#cbd4df;vertical-align:top}.data-table td small{display:block;color:#6f7d8e;margin-top:4px}.data-table td b{color:#fff}.generate-layout{grid-template-columns:440px 1fr}.generate-form>label{margin-bottom:14px}.production-equation{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;margin:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}.production-equation span{text-align:center;font:25px Impact,sans-serif;color:#fff}.production-equation span:last-child{color:var(--coral)}.production-equation small{display:block;font:10px "Microsoft YaHei",sans-serif;color:var(--muted);margin-top:5px}.production-equation b{color:#536173}.production-button{width:100%;border:0;border-radius:8px;background:var(--coral);color:#fff;padding:15px;font-weight:800;letter-spacing:.08em}.status-chip{display:inline-block;padding:4px 7px;border-radius:4px;background:#29333f;font:9px Consolas,monospace}.status-chip.success{color:var(--cyan)}.status-chip.partial{color:var(--amber)}.status-chip.failed{color:var(--danger)}
.client-grid{display:grid;grid-template-columns:repeat(3,minmax(320px,1fr));gap:16px}.client-card{padding:18px}.client-card>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.client-card h2{font-size:16px;margin:3px 0 0}.brand-preview{position:relative;height:135px;border-radius:7px;background:linear-gradient(145deg,#f9f9f6,#e2e5e3);color:#111;padding:14px;display:flex;flex-direction:column;margin-bottom:14px;overflow:hidden}.brand-preview:after{content:"成品图品牌区";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-9deg);font-size:25px;color:#d8ddda;font-weight:900;white-space:nowrap}.brand-preview b,.brand-preview span{position:relative;z-index:1;color:var(--brand);font-size:15px}.brand-preview span{color:var(--domain);font-size:9px;margin-top:3px}.brand-preview.top_center,.brand-preview.bottom_center{align-items:center}.brand-preview.top_right,.brand-preview.bottom_right{align-items:flex-end}.brand-preview.bottom_left,.brand-preview.bottom_center,.brand-preview.bottom_right{justify-content:flex-end}.new-client{border-style:dashed}.new-client>header>b{font-size:30px;color:var(--coral)}
.api-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.api-card{padding:20px;min-height:240px}.api-card>em{font:10px Consolas,monospace;font-style:normal;color:var(--cyan);letter-spacing:.15em}.api-card h2{font:18px Consolas,monospace;margin:10px 0}.api-card p,.api-card li{color:#95a3b3;font-size:12px;line-height:1.8}.api-card pre{overflow:auto;border:1px solid #283343;border-radius:7px;background:#0e141c;padding:13px;color:#e4bf72;font:11px Consolas,monospace;line-height:1.7}.api-card ul{padding-left:18px}.api-card.legacy{border-top:3px solid var(--amber)}.api-card.guard{border-top:3px solid var(--coral)}
.login-body{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at 20% 20%,rgba(57,201,176,.12),transparent 30%),radial-gradient(circle at 80% 80%,rgba(255,98,76,.13),transparent 32%),#0e131a}.login-shell{width:850px;display:grid;grid-template-columns:1fr 390px;border:1px solid #2d3845;border-radius:18px;background:#141b24;box-shadow:0 30px 90px rgba(0,0,0,.42);overflow:hidden}.login-brand{display:flex;align-items:flex-end;gap:13px;padding:42px;background-color:#101720;background-image:linear-gradient(45deg,rgba(255,255,255,.025) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.025) 25%,transparent 25%);background-size:26px 26px}.login-brand>span{width:58px;height:58px;font-size:29px}.login-brand strong{font-size:23px}.login-brand small{margin-top:6px;color:var(--muted);font-size:12px}.login-card{padding:42px;display:flex;flex-direction:column;gap:15px}.login-card header p{font:10px Consolas,monospace;color:var(--coral);letter-spacing:.2em;margin:0}.login-card header h1{font-size:27px;margin:7px 0}.login-card header span{color:var(--muted);font-size:12px;line-height:1.6}.login-card label{display:flex;flex-direction:column;gap:7px;color:#8795a6;font-size:11px}.login-card input{border:1px solid #344151;border-radius:7px;background:#0e141c;color:#fff;padding:11px;outline:0}.login-card input:focus{border-color:var(--cyan)}.login-card .primary-button{margin-top:4px}.form-error{border-left:3px solid var(--danger);background:#261b1c;padding:9px 10px;color:#ffb2aa;font-size:11px}
@media(max-width:900px){.login-shell{width:calc(100% - 30px);grid-template-columns:1fr}.login-brand{display:none}}
@media(prefers-reduced-motion:no-preference){.toast{animation:toast-in .24s ease-out}.template-card,.studio-nav button,.quiet-button,.primary-button{transition:.16s ease}@keyframes toast-in{from{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%,0)}}}
