:root{
  --bg:#030814;
  --panel:#07111f;
  --panel2:#0a1426;
  --panel3:#0c1830;
  --line:rgba(117,145,255,.16);
  --line2:rgba(98,108,255,.34);
  --text:#e9f1ff;
  --muted:#8290ad;
  --blue:#246bff;
  --cyan:#15d6ff;
  --purple:#7a35ff;
  --green:#28d765;
  --danger:#ff5b7c;
  --shadow:0 18px 60px rgba(0,0,0,.45);
  --radius:18px;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",Arial,sans-serif;color:var(--text);background:radial-gradient(circle at 45% -10%,rgba(50,86,255,.18),transparent 32%),radial-gradient(circle at 90% 20%,rgba(107,38,255,.14),transparent 26%),#020713;overflow:hidden}
body.light{--bg:#f4f7ff;--panel:#fff;--panel2:#f6f8ff;--panel3:#eef3ff;--line:rgba(24,45,92,.12);--line2:rgba(37,85,210,.25);--text:#15213a;--muted:#65708a;background:#eef3ff}
button,input,textarea{font-family:inherit}
button{border:0;color:inherit;background:transparent;cursor:pointer}
.app-shell{height:100vh;width:100vw;display:flex;min-width:0;background:linear-gradient(180deg,rgba(9,15,32,.96),rgba(1,6,15,.97))}
.nav-panel{width:210px;flex:0 0 210px;display:flex;flex-direction:column;padding:22px 14px;border-right:1px solid var(--line);background:linear-gradient(180deg,rgba(6,13,28,.98),rgba(3,10,20,.95));position:relative}
.nav-panel:before,.workspace:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(74,108,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(74,108,255,.03) 1px,transparent 1px);background-size:26px 26px;opacity:.42}.workspace{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}
.brand{display:flex;align-items:center;gap:12px;z-index:1}.logo-mark{width:42px;height:42px;display:grid;place-items:center;font-weight:900;letter-spacing:.5px;color:#73e8ff;border:2px solid rgba(122,53,255,.78);clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);box-shadow:0 0 28px rgba(75,70,255,.5),inset 0 0 20px rgba(42,255,255,.16);background:linear-gradient(145deg,rgba(40,42,130,.45),rgba(0,197,255,.08))}.brand-title{font-size:22px;font-weight:800;white-space:nowrap;letter-spacing:.2px}.nav-list{margin-top:32px;display:flex;flex-direction:column;gap:10px;z-index:1}.nav-item{height:42px;border-radius:9px;display:flex;align-items:center;gap:12px;padding:0 12px;color:#cbd6ef;font-weight:600;text-align:left;transition:.18s;border:1px solid transparent}.nav-item span{width:20px;height:20px;display:grid;place-items:center;color:#e7eeff}.nav-item i{margin-left:auto;font-style:normal;font-size:22px;color:#c0cfff}.nav-item:hover,.nav-item.active,.nav-item.active-sub{background:linear-gradient(90deg,#5f21ff,#115aff);box-shadow:0 0 22px rgba(44,89,255,.45);border-color:rgba(112,151,255,.38)}.nav-footer{margin-top:auto;color:#68748f;font-size:12px;line-height:1.8;z-index:1}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;border-bottom:1px solid var(--line);position:relative}.top-actions{display:flex;align-items:center;gap:18px}.icon-btn{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;color:#d9e4ff}.icon-btn:hover{background:rgba(255,255,255,.06)}.notice{position:relative}.notice:after{content:"";position:absolute;right:5px;top:5px;width:6px;height:6px;background:#f54d66;border-radius:50%;box-shadow:0 0 10px #f54d66}.user-box{display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#96a9ff 35%,#5832ff 72%,#081126);box-shadow:0 0 22px rgba(89,74,255,.4)}.user-box strong{display:block;font-size:14px}.user-box small{display:block;font-size:11px;color:var(--muted)}.plain-btn{color:#aab7d5}.grid-layout{height:calc(100vh - 72px);display:grid;grid-template-columns:340px minmax(620px,1fr) 390px;gap:14px;padding:14px 20px 20px 14px;min-height:0}.panel{background:linear-gradient(180deg,rgba(11,23,43,.82),rgba(5,14,27,.92));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);position:relative}.soft{box-shadow:none}.left-panel{padding:18px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;min-width:0}.right-panel{display:flex;min-width:0;flex-direction:column;gap:12px;min-height:0}.center-panel{display:flex;min-width:0;flex-direction:column;gap:12px;min-width:0;min-height:0}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.section-head h2,.canvas-head h2,.tools-panel h2,.section-head h3{margin:0;font-size:18px;letter-spacing:.5px}.section-head h3{font-size:15px}.section-head button{font-size:12px;color:#9ba8c5}.section-head.compact{margin-top:18px;margin-bottom:10px}.section-head span{font-weight:400;color:var(--muted);font-size:12px}.field-label{font-size:14px;font-weight:700;display:block;margin-bottom:10px}.field-label b{color:#ff5d7d}textarea{width:100%;height:112px;border:1px solid var(--line);outline:0;border-radius:10px;background:rgba(6,15,30,.96);color:#dfe8ff;padding:14px;line-height:1.7;resize:none;transition:.18s}textarea:focus,input:focus{border-color:rgba(91,111,255,.7);box-shadow:0 0 0 3px rgba(79,69,255,.14)}.counter{text-align:right;color:#95a2bd;font-size:12px;margin-top:-28px;padding-right:12px;margin-bottom:14px}.primary{background:linear-gradient(90deg,#6127ff,#1e63ff);border-radius:10px;color:#fff;box-shadow:0 0 24px rgba(79,75,255,.42);font-weight:800}.ghost{height:40px;background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:10px;color:#e9f1ff}.full{width:100%;height:42px}.big-action{height:48px;font-size:16px;margin-top:12px}.center{text-align:center}.muted{color:var(--muted);font-size:12px;margin-top:8px}.divider{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);margin:18px 0}.option-grid{display:grid;gap:8px}.sizes{grid-template-columns:repeat(5,minmax(0,1fr))}.size-btn{height:58px;border-radius:9px;border:1px solid var(--line);background:rgba(255,255,255,.035);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#b9c4df;transition:.15s}.size-btn b{font-size:13px;color:#eef4ff}.size-btn small{font-size:10px;color:#7886a7}.size-btn.active,.style-btn.active{border-color:#6a4fff;background:linear-gradient(180deg,rgba(59,44,255,.28),rgba(24,90,255,.08));box-shadow:0 0 18px rgba(52,88,255,.3)}.style-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.style-btn{height:50px;border-radius:8px;overflow:hidden;border:1px solid var(--line);position:relative;background:#111c32;color:#fff}.style-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(27,107,255,.7),rgba(15,28,50,.35)),var(--img);background-size:cover;background-position:center;opacity:.86}.style-btn span{position:relative;font-weight:700;font-size:12px;text-shadow:0 2px 8px rgba(0,0,0,.8)}.upload-box{height:84px;border-radius:10px;border:1px dashed rgba(143,158,255,.35);background:rgba(255,255,255,.025);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#d7e3ff;transition:.2s}.upload-box:hover,.upload-box.drag{border-color:#55d8ff;background:rgba(52,111,255,.08)}.upload-box span{font-size:12px;color:#7f8ba6}.upload-icon{font-size:25px;color:#cfd9ff}.setting-row{height:44px;display:flex;align-items:center;justify-content:space-between;color:#d7e2ff;font-size:13px}.stepper{height:32px;border-radius:8px;background:rgba(255,255,255,.04);display:flex;align-items:center;overflow:hidden}.stepper button{width:36px;height:32px}.stepper strong{min-width:56px;text-align:center;font-size:13px}.switch input{display:none}.switch i{display:block;width:38px;height:20px;border-radius:20px;background:#1c2b45;position:relative;box-shadow:inset 0 0 0 1px var(--line)}.switch i:before{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#b8c5df;transition:.2s}.switch input:checked+i{background:linear-gradient(90deg,#632bff,#1e6aff)}.switch input:checked+i:before{left:21px;background:#fff}.canvas-card{flex:1;min-height:0;padding:14px;display:flex;flex-direction:column}.canvas-head{height:36px;display:flex;align-items:center;justify-content:space-between}.canvas-head>div:first-child{display:flex;align-items:center;gap:12px}.canvas-head h2{font-size:18px}.badge{font-size:12px;padding:4px 10px;border-radius:20px}.badge.ok{background:rgba(34,204,94,.18);color:#35e47a}.badge.busy{background:rgba(57,117,255,.18);color:#6edcff}.canvas-head span#timeText{font-size:13px;color:#93a0bd}.canvas-actions{display:flex;gap:8px}.canvas-actions button{height:32px;padding:0 12px;border-radius:8px;background:rgba(255,255,255,.05);color:#dbe6ff;border:1px solid var(--line)}.canvas-frame{flex:1;min-height:360px;border-radius:12px;border:1px solid var(--line);background:radial-gradient(circle at center,rgba(26,76,180,.18),transparent 40%),linear-gradient(rgba(87,110,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(87,110,255,.06) 1px,transparent 1px),#060d1a;background-size:100% 100%,24px 24px,24px 24px;position:relative;overflow:hidden}.tool-strip{position:absolute;left:12px;top:18px;width:42px;padding:6px 0;border-radius:12px;background:rgba(5,13,25,.8);border:1px solid var(--line);display:flex;flex-direction:column;gap:3px;z-index:10;backdrop-filter:blur(16px)}.tool-strip button{height:34px;color:#dbe7ff;border-left:2px solid transparent}.tool-strip button:hover,.tool-strip button.active{background:rgba(77,96,255,.16);border-left-color:#69ecff}.image-stage{position:absolute;left:72px;right:22px;top:36px;bottom:36px;display:grid;place-items:center;overflow:hidden}
.generation-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:9;background:radial-gradient(circle at center,rgba(28,62,180,.22),rgba(5,12,24,.42) 42%,rgba(5,12,24,.72) 100%);backdrop-filter:blur(2px)}
.generation-orbit{position:relative;width:126px;height:126px;display:grid;place-items:center}
.generation-core{width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d8ffff 0,#83f7ff 16%,#6b8bff 45%,#5b38ff 78%,#20135c 100%);box-shadow:0 0 25px rgba(73,228,255,.75),0 0 45px rgba(72,85,255,.52),inset 0 0 22px rgba(255,255,255,.32)}
.generation-core::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:18px;border-radius:50%;transform:translate(-50%,-50%);background:rgba(255,255,255,.58);filter:blur(7px)}
.generation-ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(88,178,255,.28);box-shadow:0 0 18px rgba(72,188,255,.18)}
.generation-ring.ring-a{inset:8px;border-top-color:#5bf1ff;border-right-color:#6f7cff;animation:genSpin 1.15s linear infinite}
.generation-ring.ring-b{inset:-6px;border-left-color:#7b4fff;border-bottom-color:#41ddff;opacity:.88;animation:genSpinReverse 1.8s linear infinite}
.generation-ring.ring-c{inset:-18px;border-top-color:rgba(107,227,255,.7);border-right-color:transparent;border-bottom-color:rgba(111,78,255,.42);opacity:.55;animation:genSpin 2.8s linear infinite}
.generation-copy{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.generation-copy b{font-size:22px;letter-spacing:1px;color:#eef6ff;text-shadow:0 0 12px rgba(80,179,255,.35)}
.generation-copy span{font-size:13px;color:#a7b7d8;letter-spacing:.4px}
@keyframes genSpin{to{transform:rotate(360deg)}}
@keyframes genSpinReverse{to{transform:rotate(-360deg)}}
.selection-box{position:relative;width:75%;height:60%;display:grid;place-items:center;transform-origin:center;transition:width .15s,height .15s;cursor:move}.selection-box:before{content:"";position:absolute;inset:-1px;border:2px solid rgba(127,121,255,.85);box-shadow:0 0 18px rgba(66,97,255,.28);pointer-events:none}.selection-box img{max-width:100%;max-height:100%;object-fit:contain;display:block;filter:saturate(1.04) contrast(1.02);user-select:none}.handle{position:absolute;width:9px;height:9px;border:2px solid #8ea2ff;background:#121b3e}.h1{left:-6px;top:-6px}.h2{right:-6px;top:-6px}.h3{left:-6px;bottom:-6px}.h4{right:-6px;bottom:-6px}.corner-resize{position:absolute;right:42px;bottom:42px;color:#e9f4ff;font-size:22px;text-shadow:0 0 14px rgba(0,200,255,.6)}.zoom-bar{height:44px;margin-top:10px;display:flex;justify-content:center;gap:6px;align-items:center}.zoom-bar button,.zoom-bar span{height:34px;min-width:58px;padding:0 14px;border-radius:8px;background:rgba(255,255,255,.05);border:1px solid var(--line);display:grid;place-items:center;color:#d9e4ff;font-size:13px}.zoom-bar span{background:rgba(88,44,255,.22);border-color:#644aff;color:#fff}.zoom-bar .fit-select{min-width:116px}.action-bar{height:58px;display:flex;align-items:center;gap:16px;padding:0 18px}.action-bar button{height:38px;min-width:104px;padding:0 16px;border-radius:9px;background:rgba(255,255,255,.05);border:1px solid var(--line);color:#dce7ff;font-weight:700}.action-bar button.primary{background:linear-gradient(90deg,#4b28ff,#1e65ff)}.process-card{height:150px;padding:15px 22px}.process-title{display:flex;align-items:center;justify-content:space-between}.process-title h3{margin:0;font-size:17px}.process-title span{font-size:13px;color:#d5def8}.process-line{position:relative;height:108px;margin-top:5px;display:grid;grid-template-columns:1fr 1fr 1.28fr 1fr 1fr;align-items:center;text-align:center}.p-line-bg,.p-line-active{position:absolute;left:5%;right:5%;top:31px;height:2px;background:rgba(255,255,255,.18)}.p-line-active{right:50%;background:linear-gradient(90deg,#136dff,#0ff4ff,#772dff);height:3px;box-shadow:0 0 18px #246bff}.p-step{position:relative;z-index:2;min-height:88px;display:flex;flex-direction:column;align-items:center;gap:5px}.p-step i{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-style:normal;border:2px solid rgba(255,255,255,.3);background:#0a1323;font-weight:800}.p-step.done i{border-color:#0e9dff;background:#073f88;box-shadow:0 0 18px rgba(0,167,255,.65)}.p-step.wait i{border-style:dashed;color:#a7adc1}.p-step b{font-size:13px;font-weight:700}.p-step small{font-size:12px;color:#8a96b3}.p-step em{font-size:12px;font-style:normal;color:#2dff6d;background:rgba(18,153,69,.16);border-radius:10px;padding:3px 8px}.p-step.active{margin-top:8px}.p-step.active label{position:absolute;top:-22px;background:#18215a;color:#fff;padding:5px 17px;border-radius:8px;font-size:13px}.p-step.active b{color:#b9c3e1}.ai-orb{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;color:#83f5ff;font-size:26px;font-weight:900;background:radial-gradient(circle,#2e41ff 0,#1823af 34%,rgba(79,34,255,.2) 58%,transparent 71%);box-shadow:0 0 38px #442bff,0 0 18px #00d7ff inset;position:relative}.ai-orb:before,.ai-orb:after{content:"";position:absolute;inset:-12px;border-radius:50%;border:1px solid rgba(104,82,255,.65);clip-path:polygon(0 0,100% 0,100% 45%,0 65%);animation:spin 3.6s linear infinite}.ai-orb:after{inset:-22px;opacity:.55;animation-duration:6s;animation-direction:reverse}@keyframes spin{to{transform:rotate(360deg)}}.tools-panel,.material-panel,.history-panel{padding:16px}.tools-panel h2{margin:0 0 14px}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tool-grid button{height:72px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid var(--line);padding:12px;display:grid;grid-template-columns:42px 1fr;grid-template-rows:1fr 1fr;text-align:left;align-items:center}.tool-grid button:hover{border-color:#514cff;background:rgba(62,80,255,.13)}.tool-grid span{grid-row:1/3;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#155cff,#7b2cff);font-weight:900}.tool-grid strong{font-size:14px}.tool-grid small{color:#7f8ca9;font-size:11px}.mini-tabs{display:flex;background:rgba(255,255,255,.04);border-radius:8px;margin-bottom:12px;overflow:hidden}.mini-tabs button{height:34px;flex:1;color:#7f8aa6}.mini-tabs button.active{background:linear-gradient(90deg,#1d3db0,#111e53);color:#fff}.material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mat-card{height:74px;border-radius:8px;background:#101a2d;overflow:hidden;display:grid;place-items:center;border:1px solid transparent;position:relative}.mat-card:hover{border-color:#586dff}.mat-card img{width:100%;height:100%;object-fit:cover}.mat-upload{border:1px dashed rgba(143,158,255,.35);color:#dce5ff;font-size:13px;display:flex;flex-direction:column;gap:6px}.history-panel{flex:1;min-height:0;overflow:hidden}.history-list{display:flex;flex-direction:column;gap:12px;overflow:auto;max-height:calc(100vh - 628px);padding-right:5px}.history-item{display:grid;grid-template-columns:70px 1fr 20px;gap:12px;align-items:center;cursor:pointer;border-radius:10px;padding:6px}.history-item:hover{background:rgba(255,255,255,.04)}.history-item img{width:70px;height:48px;border-radius:6px;object-fit:cover}.history-item strong{font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item small{font-size:12px;color:#8d98b4;display:block;margin-top:5px}.history-item i{font-style:normal;color:#aab5d0;font-size:18px}.login-mask,.modal-mask{position:fixed;inset:0;background:rgba(0,3,10,.72);display:grid;place-items:center;z-index:1000;backdrop-filter:blur(16px)}.hidden{display:none!important}.login-card{width:380px;padding:28px}.glass{background:rgba(8,17,32,.88);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.brand.big{margin-bottom:24px}.brand.big h1{margin:0;font-size:22px}.brand.big p{margin:4px 0 0;color:var(--muted)}.login-card label{display:block;margin:14px 0 8px;color:#cbd6ed}.login-card input{height:42px;width:100%;border-radius:10px;background:#071222;border:1px solid var(--line);color:#fff;padding:0 12px}.login-tip{font-size:12px;color:var(--muted);text-align:center}.modal{width:520px;max-width:calc(100vw - 40px);padding:18px}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head h3{margin:0}.modal-head button{font-size:28px;color:#aeb9d1}.modal input,.modal textarea{width:100%;margin-top:12px;background:#071222;border:1px solid var(--line);color:#fff;border-radius:10px;padding:12px}.modal .row{display:flex;gap:10px;margin-top:14px}.modal .row button{height:38px;padding:0 14px;background:rgba(255,255,255,.06);border-radius:8px}.toast{position:fixed;right:26px;bottom:26px;background:rgba(8,17,32,.92);border:1px solid rgba(107,127,255,.4);box-shadow:0 12px 40px rgba(0,0,0,.55),0 0 30px rgba(63,79,255,.18);color:#edf4ff;border-radius:14px;padding:13px 18px;z-index:1200;font-size:14px}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .9s linear infinite;margin-right:8px;vertical-align:-2px}.empty{color:#7886a7;font-size:13px;text-align:center;padding:22px}.danger{color:var(--danger)}
@media(max-width:1500px){.nav-panel{width:190px;flex-basis:190px}.grid-layout{grid-template-columns:320px minmax(560px,1fr) 360px}.style-grid{grid-template-columns:repeat(3,1fr)}.process-card{height:140px}.history-list{max-height:calc(100vh - 608px)}}

/* v1.0.3: navigation pages */
.module-page{height:calc(100vh - 100px);margin:14px 20px 20px 14px;padding:26px;overflow:auto;z-index:1}
.module-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.module-head h1{margin:0;font-size:28px;letter-spacing:.5px}
.module-head p{margin:8px 0 0;color:var(--muted)}
.module-back{height:38px;padding:0 16px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid var(--line);color:#dce7ff}
.module-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:16px}
.module-card,.settings-card,.work-card{min-height:190px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,rgba(15,31,58,.72),rgba(6,14,28,.9));padding:18px;box-shadow:0 12px 36px rgba(0,0,0,.26)}
.module-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#176dff,#7b28ff);font-weight:900;color:#fff;margin-bottom:14px;box-shadow:0 0 24px rgba(68,73,255,.38)}
.module-card h3,.settings-card h3{margin:0 0 10px;font-size:18px}
.module-card p,.settings-card p{color:#9aa8c7;line-height:1.65;margin:0 0 18px}
.module-action,.settings-card button{height:36px;padding:0 14px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid var(--line);color:#e7efff}
.module-action:hover,.module-back:hover,.settings-card button:hover{border-color:#634cff;background:rgba(92,74,255,.18)}
.works-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:14px}.work-card{min-height:120px}
.module-empty{height:260px;display:grid;place-items:center;color:#8896b5;border:1px dashed var(--line);border-radius:16px;background:rgba(255,255,255,.025)}
.module-material-layout{display:grid;grid-template-columns:320px 1fr;gap:18px}.module-upload-large{height:220px;border-radius:16px;border:1px dashed rgba(143,158,255,.36);background:rgba(255,255,255,.035);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#dbe7ff;cursor:pointer}.module-upload-large div{font-size:42px}.module-upload-large span{font-size:13px;color:#8290ad}.module-material-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.module-material-grid .mat-card{height:120px}.module-style-layout{display:grid;grid-template-columns:1fr 340px;gap:18px}.module-style-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.module-style-grid .style-btn{height:96px}.module-add-box{border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.035);padding:18px}.module-add-box h3{margin:0 0 12px}.module-add-box input{width:100%;height:42px;border-radius:10px;background:#071222;border:1px solid var(--line);color:#fff;padding:0 12px;margin-bottom:12px}.module-add-box button{width:100%;height:40px}.settings-card{max-width:520px}.settings-card .row{display:flex;gap:12px;margin:18px 0}
@media(max-width:1500px){.module-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}.module-material-layout,.module-style-layout{grid-template-columns:1fr}}

/* v1.0.4 fixes */
.center-panel{overflow-y:auto;overflow-x:hidden;padding-right:2px;scrollbar-width:thin;}
.canvas-card{flex:0 0 clamp(410px, calc(100vh - 360px), 620px);min-height:410px;}
.canvas-frame{min-height:300px;}
.action-bar{flex:0 0 58px;}
.process-card{flex:0 0 150px;}
.stepper button{transition:.15s;background:rgba(255,255,255,.03);}
.stepper button:hover{background:rgba(91,105,255,.22);color:#fff;box-shadow:0 0 14px rgba(86,99,255,.35) inset;}
.stepper strong.pulse{animation:pulseText .28s ease-out;}
@keyframes pulseText{0%{transform:scale(1);color:#fff}50%{transform:scale(1.18);color:#74f7ff}100%{transform:scale(1);color:#fff}}
.material-panel .mini-tabs.single{display:none;}
.material-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;}
.material-empty{grid-column:span 2;min-height:74px;border:1px dashed rgba(143,158,255,.18);border-radius:8px;display:grid;place-items:center;text-align:center;color:#6f7d99;font-size:12px;line-height:1.55;background:rgba(255,255,255,.025);}
.module-material-grid .material-empty{grid-column:span 2;min-height:120px;}
@media(max-height:820px){.canvas-card{flex-basis:410px}.process-card{flex-basis:138px;height:138px}.process-line{height:96px}.action-bar{height:50px;flex-basis:50px}.action-bar button{height:34px}.canvas-frame{min-height:270px}.zoom-bar{height:38px;margin-top:6px}}

/* v1.0.5: empty canvas placeholder and cleaner process log */
.empty-canvas{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#dbe7ff;text-align:center;pointer-events:none;opacity:.86}
.empty-canvas:before{content:"";width:86px;height:86px;border-radius:50%;background:radial-gradient(circle,rgba(62,106,255,.35),rgba(52,32,188,.14) 48%,transparent 72%);box-shadow:0 0 40px rgba(55,101,255,.24);}
.empty-canvas b{font-size:18px;letter-spacing:.5px}.empty-canvas span{font-size:13px;color:#8491ae}.p-step.active{margin-top:0}.p-step.active label,.p-step.active>b{display:none!important}.p-step small,.p-step em{display:none!important}

/* v1.0.6: fixed layout, cleaner process log, visual polish */
html,body{width:100%;height:100%;overflow:hidden;}
body{font-variant-numeric:tabular-nums;}
.app-shell{height:100dvh;overflow:hidden;background:radial-gradient(circle at 52% -12%,rgba(58,92,255,.18),transparent 30%),linear-gradient(180deg,rgba(6,12,28,.98),rgba(1,6,15,.98));}
.nav-panel{width:220px;flex-basis:220px;padding:22px 16px;background:linear-gradient(180deg,rgba(5,12,28,.98),rgba(3,9,20,.96));}
.logo-mark{width:44px;height:44px;filter:drop-shadow(0 0 16px rgba(98,80,255,.65));}
.brand-title{font-size:22px;letter-spacing:.8px;line-height:1;}
.grid-layout{height:calc(100dvh - 72px);grid-template-columns:360px minmax(720px,1fr) 420px;gap:16px;padding:16px 18px 18px 16px;overflow:hidden;align-items:stretch;}
.panel{border-color:rgba(103,130,255,.16);background:linear-gradient(180deg,rgba(10,22,43,.86),rgba(4,13,27,.94));box-shadow:0 14px 48px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.025);}
.left-panel,.right-panel,.center-panel{min-height:0;}
.left-panel{overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;}
.center-panel{display:grid;grid-template-rows:minmax(0,1fr) 58px 150px;gap:12px;overflow:hidden;padding-right:0;}
.right-panel{overflow:hidden;}
.canvas-card{min-height:0;height:100%;flex:unset;padding:14px;}
.canvas-frame{min-height:0;box-shadow:inset 0 0 0 1px rgba(62,90,180,.08),inset 0 0 60px rgba(25,74,190,.08);}
.image-stage{left:72px;right:22px;top:34px;bottom:34px;}
.empty-canvas b{font-size:19px;letter-spacing:1px}.empty-canvas span{font-size:13px;color:#8c9bb9}
.zoom-bar{height:42px;margin-top:8px;}
.action-bar{height:58px;flex:unset;display:flex;align-items:center;justify-content:flex-start;gap:14px;padding:0 16px;overflow:hidden;}
.action-bar button{height:38px;min-width:110px;}
.process-card{height:150px;flex:unset;padding:16px 22px;overflow:hidden;}
.process-title{height:24px}.process-title h3{font-size:16px;letter-spacing:.5px}.process-title span{font-size:13px;color:#9fb0d4;}
.process-line{height:104px;margin-top:2px;grid-template-columns:1fr 1fr 1.3fr 1fr 1fr;}
.p-line-bg,.p-line-active{top:32px;left:5%;right:5%;}
.p-step{min-height:94px;justify-content:flex-start;gap:7px;}
.p-step i{width:38px;height:38px;background:#081326;color:#8795b8;border-color:rgba(149,162,200,.28);box-shadow:none;}
.p-step b{font-size:13px;color:#aebadd;white-space:nowrap;}
.p-step.wait{opacity:.55;}
.p-step.wait .ai-orb{opacity:.45;filter:saturate(.55);box-shadow:0 0 10px rgba(81,79,255,.16),0 0 12px rgba(0,215,255,.08) inset;}
.p-step.wait .ai-orb:before,.p-step.wait .ai-orb:after{animation-play-state:paused;opacity:.25;}
.p-step.done i,.p-step.active i{border-color:#05a7ff;background:radial-gradient(circle,#0e6fec,#06326e);color:#fff;box-shadow:0 0 18px rgba(0,167,255,.62),0 0 18px rgba(0,214,255,.18) inset;}
.p-step.done b,.p-step.active b{color:#eef5ff;}
.p-step.done:after{content:"";width:8px;height:8px;border-radius:50%;background:#24de6e;box-shadow:0 0 12px rgba(36,222,110,.65);}
.p-step.active{margin-top:0;opacity:1;}
.p-step.active label{display:none!important;}
.p-step.active .ai-orb{opacity:1;filter:none;}
.p-step.done .ai-orb{opacity:.85;filter:saturate(.8);}
.p-step.active[data-step="3"]{transform:translateY(-6px);}
.ai-orb{width:82px;height:82px;}
.tools-panel h2,.material-panel h2,.history-panel h2,.section-head h2,.canvas-head h2{letter-spacing:.7px;}
.tool-grid button{background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.026));}
.tool-grid small{color:#91a0bf;}
.material-panel .mini-tabs.single{display:none!important;}
.material-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.material-empty{grid-column:span 2;}
.history-list{max-height:none;height:calc(100dvh - 690px);min-height:120px;}
textarea{background:rgba(7,17,33,.88);}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:rgba(255,255,255,.025)}::-webkit-scrollbar-thumb{background:rgba(91,112,180,.36);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:rgba(99,124,210,.55)}
@media(max-width:1500px){.nav-panel{width:200px;flex-basis:200px}.grid-layout{grid-template-columns:330px minmax(620px,1fr) 370px;gap:14px;padding:14px}.center-panel{grid-template-rows:minmax(0,1fr) 54px 142px}.process-card{height:142px}.action-bar{height:54px}.action-bar button{min-width:96px}}
@media(max-height:820px){.center-panel{grid-template-rows:minmax(0,1fr) 52px 132px}.process-card{height:132px}.process-line{height:88px}.ai-orb{width:70px;height:70px}.p-step i{width:34px;height:34px}.action-bar{height:52px}.zoom-bar{height:36px}}
/* v1.0.6 final process label override */
.p-step.active>b{display:block!important;}
.p-step.active[data-step="3"]>b{display:none!important;}

/* v1.0.7: compact left form, persistent AI orb, cleaner header */
.topbar{justify-content:flex-end;padding-right:28px;}
.top-actions{gap:12px;}
.user-box{padding:4px 8px 4px 4px;border-radius:999px;background:rgba(255,255,255,.025);border:1px solid rgba(112,135,255,.10);}

/* 左侧设计参数整体降噪，避免文字过大影响美观 */
.left-panel{padding:14px 14px 16px;font-size:12px;}
.left-panel .section-head{margin-bottom:9px;}
.left-panel .section-head h2{font-size:16px;letter-spacing:.3px;}
.left-panel .section-head h3{font-size:13px;letter-spacing:.2px;}
.left-panel .section-head button{font-size:11px;}
.left-panel .field-label{font-size:12px;margin-bottom:7px;}
.left-panel textarea{height:92px;padding:11px 12px;font-size:12px;line-height:1.55;border-radius:9px;}
.left-panel .counter{font-size:11px;margin-top:-24px;margin-bottom:10px;padding-right:10px;}
.left-panel .full{height:36px;font-size:13px;}
.left-panel .big-action{height:42px;font-size:14px;margin-top:8px;}
.left-panel .muted{font-size:11px;margin-top:6px;}
.left-panel .divider{margin:13px 0;}
.left-panel .section-head.compact{margin-top:13px;margin-bottom:8px;}
.left-panel .size-btn{height:50px;border-radius:8px;gap:2px;}
.left-panel .size-btn b{font-size:11px;line-height:1.15;}
.left-panel .size-btn small{font-size:9px;line-height:1.1;}
.left-panel .style-grid{gap:7px;}
.left-panel .style-btn{height:42px;border-radius:8px;}
.left-panel .style-btn span{font-size:11px;}
.left-panel .upload-box{height:72px;gap:4px;}
.left-panel .upload-icon{font-size:20px;}
.left-panel .upload-box strong{font-size:12px;}
.left-panel .upload-box span{font-size:10px;}
.left-panel .setting-row{height:36px;font-size:12px;}
.left-panel .stepper{height:28px;}
.left-panel .stepper button{height:28px;width:32px;}
.left-panel .stepper strong{font-size:12px;min-width:48px;}

/* 进程日志中间 AI 光球始终保持点亮，不随等待状态变暗 */
.p-step.wait .ai-orb,
.p-step.done .ai-orb,
.p-step.active .ai-orb{
  opacity:1!important;
  filter:none!important;
  box-shadow:0 0 38px #442bff,0 0 18px #00d7ff inset!important;
}
.p-step.wait .ai-orb:before,
.p-step.wait .ai-orb:after,
.p-step.done .ai-orb:before,
.p-step.done .ai-orb:after,
.p-step.active .ai-orb:before,
.p-step.active .ai-orb:after{
  animation-play-state:running!important;
  opacity:.65!important;
}
.p-step[data-step="3"]{opacity:1!important;}

@media(max-width:1500px){
  .left-panel{padding:13px 13px 15px;font-size:11px;}
  .left-panel textarea{height:86px;font-size:11px;}
  .left-panel .size-btn{height:46px;}
  .left-panel .style-btn{height:39px;}
  .left-panel .upload-box{height:68px;}
}

/* v1.0.8: clean prompt modal, common ratios, removed right-side tool block, stronger AI orb */
.size-btn small{display:none!important;}
.left-panel .size-btn{height:44px;gap:0;}
.left-panel .size-btn b{font-size:13px;line-height:1.1;letter-spacing:.2px;}
@media(max-width:1500px){.left-panel .size-btn{height:42px}.left-panel .size-btn b{font-size:12px;}}
.right-panel{display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;}
.material-panel{min-height:260px;}
.history-panel{min-height:0;}
.history-list{height:auto;max-height:none;}
.prompt-preview{min-height:170px;max-height:320px;overflow:auto;margin-top:14px;padding:14px 16px;border-radius:12px;border:1px solid rgba(105,132,255,.18);background:rgba(5,14,28,.86);color:#e8f0ff;line-height:1.75;white-space:pre-wrap;font-size:13px;}
.ai-orb{width:92px!important;height:92px!important;font-size:30px!important;background:radial-gradient(circle at center,#78fff7 0%,#28dcff 12%,#1b54ff 38%,#601fff 62%,rgba(59,24,186,.1) 76%,transparent 82%)!important;box-shadow:0 0 18px rgba(43,225,255,.95),0 0 48px rgba(57,74,255,.85),0 0 90px rgba(115,42,255,.55),inset 0 0 26px rgba(122,255,255,.65)!important;text-shadow:0 0 16px #fff,0 0 30px #23e6ff;}
.ai-orb:before{inset:-16px!important;border-color:rgba(70,231,255,.85)!important;box-shadow:0 0 26px rgba(23,205,255,.55);}
.ai-orb:after{inset:-28px!important;border-color:rgba(117,79,255,.7)!important;box-shadow:0 0 40px rgba(109,77,255,.48);opacity:.7!important;}
.p-step[data-step="3"]{filter:drop-shadow(0 0 28px rgba(53,106,255,.88));}
@media(max-height:820px){.ai-orb{width:78px!important;height:78px!important;font-size:25px!important;}.ai-orb:before{inset:-13px!important}.ai-orb:after{inset:-22px!important}}

/* v1.0.9: restored prompt actions and upgraded login page */
.login-mask{
  background:
    radial-gradient(circle at 18% 20%, rgba(83,52,255,.34), transparent 32%),
    radial-gradient(circle at 82% 72%, rgba(0,206,255,.20), transparent 30%),
    linear-gradient(135deg,#040814 0%,#071222 45%,#030711 100%);
  overflow:hidden;
}
.login-mask:before{
  content:"";position:absolute;inset:0;opacity:.28;
  background-image:linear-gradient(rgba(114,154,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(114,154,255,.08) 1px,transparent 1px);
  background-size:38px 38px;
  mask-image:radial-gradient(circle at center,#000 0%,transparent 82%);
}
.login-orb{position:absolute;border-radius:50%;filter:blur(2px);pointer-events:none}
.login-orb.orb-a{width:360px;height:360px;left:8%;top:12%;background:radial-gradient(circle,rgba(92,55,255,.36),transparent 64%);animation:floatLogin 8s ease-in-out infinite}
.login-orb.orb-b{width:300px;height:300px;right:10%;bottom:10%;background:radial-gradient(circle,rgba(0,229,255,.24),transparent 66%);animation:floatLogin 10s ease-in-out infinite reverse}
@keyframes floatLogin{50%{transform:translateY(-18px) translateX(10px)}}
.login-shell{width:min(1040px,calc(100vw - 48px));display:grid;grid-template-columns:1.25fr 430px;gap:26px;align-items:stretch;position:relative;z-index:2}
.login-visual{min-height:560px;padding:34px;overflow:hidden;position:relative;background:linear-gradient(180deg,rgba(13,31,60,.86),rgba(6,14,28,.82));}
.login-brandline{display:flex;align-items:center;gap:16px;position:relative;z-index:2}.login-brandline h1{margin:0;font-size:30px;letter-spacing:.5px}.login-brandline p{margin:6px 0 0;color:#8ea1c4}.login-logo{width:54px;height:54px;font-size:18px}
.login-preview-card{margin-top:48px;border:1px solid rgba(104,123,255,.24);border-radius:22px;background:rgba(5,13,28,.72);box-shadow:0 0 50px rgba(41,79,255,.24),inset 0 0 0 1px rgba(255,255,255,.04);overflow:hidden;position:relative}
.preview-top{height:42px;display:flex;gap:8px;align-items:center;padding:0 18px;border-bottom:1px solid rgba(255,255,255,.06)}.preview-top span{width:9px;height:9px;border-radius:50%;background:#405777}.preview-top span:first-child{background:#7558ff}.preview-top span:nth-child(2){background:#17d6ff}.preview-top span:nth-child(3){background:#34e878}
.preview-canvas{height:330px;position:relative;overflow:hidden;background:radial-gradient(circle at 72% 42%,rgba(49,220,255,.42),transparent 24%),linear-gradient(135deg,#061634,#0b1c5a 45%,#040916)}.preview-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(101,145,255,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(101,145,255,.10) 1px,transparent 1px);background-size:28px 28px}.preview-title{position:absolute;left:38px;top:80px;font-size:34px;font-weight:900}.preview-subtitle{position:absolute;left:40px;top:132px;color:#91dfff;letter-spacing:3px}.preview-wave{position:absolute;right:70px;top:48px;width:170px;height:236px;border-radius:50%;border:8px solid rgba(63,239,255,.68);filter:drop-shadow(0 0 20px #20dfff);transform:rotate(18deg)}.preview-panel{position:absolute;border-radius:12px;border:1px solid rgba(112,136,255,.26);background:rgba(255,255,255,.06);backdrop-filter:blur(8px)}.preview-panel.small-a{left:40px;bottom:44px;width:190px;height:52px}.preview-panel.small-b{right:42px;bottom:42px;width:130px;height:72px}.login-features{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px}.login-features span{height:42px;border-radius:12px;background:rgba(255,255,255,.055);border:1px solid rgba(104,123,255,.20);display:grid;place-items:center;color:#cddcff;font-weight:700;font-size:13px}
.login-card{width:auto;padding:34px 32px;align-self:center;background:rgba(6,16,31,.90);border-color:rgba(108,128,255,.30);box-shadow:0 24px 80px rgba(0,0,0,.45),0 0 55px rgba(68,54,255,.16)}.login-card-head{display:flex;align-items:center;gap:14px;margin-bottom:28px}.login-card-head h2{margin:0;font-size:26px}.login-card-head p{margin:6px 0 0;color:#8998b6}.login-input-wrap{height:48px;border-radius:12px;border:1px solid rgba(101,119,255,.22);background:rgba(2,9,22,.82);display:flex;align-items:center;padding:0 12px;gap:10px;transition:.18s}.login-input-wrap:focus-within{border-color:#6557ff;box-shadow:0 0 0 3px rgba(101,87,255,.12)}.login-input-wrap input{border:0!important;background:transparent!important;height:46px!important;padding:0!important;box-shadow:none!important}.login-input-wrap span{width:24px;text-align:center;opacity:.8}.login-submit{height:48px;margin-top:22px;border-radius:12px;font-size:16px;box-shadow:0 0 28px rgba(74,86,255,.38)}
.prompt-textarea{min-height:178px;height:178px;line-height:1.75;resize:vertical;white-space:pre-wrap}.prompt-actions{justify-content:flex-start}.prompt-actions button{min-width:118px}.prompt-actions button.primary{background:linear-gradient(90deg,#4b28ff,#1e65ff);color:#fff}
@media (max-width: 920px){.login-shell{grid-template-columns:1fr}.login-visual{display:none}.login-card{width:min(420px,calc(100vw - 44px));justify-self:center}}


/* v1.0.10: wider login spacing and no unconfigured fake generation */
.login-shell{
  width:min(1180px,calc(100vw - 80px))!important;
  grid-template-columns:minmax(560px,1.35fr) 420px!important;
  gap:76px!important;
}
.login-card{justify-self:end;}
.login-visual{justify-self:stretch;}
@media (max-width: 1080px){
  .login-shell{width:min(940px,calc(100vw - 48px))!important;grid-template-columns:1fr 390px!important;gap:42px!important;}
}
@media (max-width: 920px){
  .login-shell{grid-template-columns:1fr!important;gap:0!important;width:min(440px,calc(100vw - 44px))!important;}
  .login-card{justify-self:center;}
}

/* v1.0.11: interface status, login spacing, cleaner process orb */
.api-status{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid rgba(120,145,255,.18);background:rgba(255,255,255,.035);white-space:nowrap;}
.api-status.ok{color:#35e47a;background:rgba(34,204,94,.12);border-color:rgba(34,204,94,.26);box-shadow:0 0 16px rgba(34,204,94,.08)}
.api-status.warn{color:#ff7694;background:rgba(255,91,124,.10);border-color:rgba(255,91,124,.24);}
.api-status.checking{color:#7ee9ff;background:rgba(21,214,255,.10);border-color:rgba(21,214,255,.24);}
#checkApiBtn{border-color:rgba(21,214,255,.20);}
#checkApiBtn:hover{border-color:rgba(21,214,255,.55);box-shadow:0 0 16px rgba(21,214,255,.16) inset;color:#dffbff;}
.login-shell{width:min(1120px,calc(100vw - 64px))!important;grid-template-columns:1.22fr 420px!important;gap:64px!important;}
@media (max-width:1180px){.login-shell{width:min(1040px,calc(100vw - 48px))!important;gap:52px!important;}}
@media (max-width:920px){.login-shell{grid-template-columns:1fr!important;gap:0!important;width:min(440px,calc(100vw - 44px))!important;}}
.process-card .p-step[data-step="3"]{opacity:1!important;transform:none!important;justify-content:flex-start;}
.process-card .p-step[data-step="3"] .ai-orb{width:76px!important;height:76px!important;font-size:25px!important;opacity:1!important;filter:none!important;background:radial-gradient(circle at 50% 50%,#a8ffff 0%,#55f8ff 8%,#1f79ff 34%,#5729ff 59%,rgba(55,35,170,.18) 76%,transparent 84%)!important;box-shadow:0 0 18px rgba(72,238,255,.95),0 0 42px rgba(50,93,255,.78),0 0 72px rgba(111,53,255,.5),inset 0 0 22px rgba(200,255,255,.7)!important;text-shadow:0 0 14px #fff,0 0 26px #37f4ff;}
.process-card .p-step[data-step="3"] .ai-orb:before{inset:-14px!important;opacity:.8!important;border-color:rgba(97,238,255,.72)!important;animation:spin 4.2s linear infinite!important;}
.process-card .p-step[data-step="3"] .ai-orb:after{inset:-24px!important;opacity:.45!important;border-color:rgba(126,82,255,.62)!important;animation:spin 7s linear infinite reverse!important;}
@media(max-height:820px){.process-card .p-step[data-step="3"] .ai-orb{width:66px!important;height:66px!important;font-size:22px!important}.process-card .p-step[data-step="3"] .ai-orb:before{inset:-12px!important}.process-card .p-step[data-step="3"] .ai-orb:after{inset:-20px!important}}


/* v1.0.12: stronger logo, cleaner status header, brighter AI orb */
.brand{gap:14px!important;align-items:center!important;}
.brand-logo.logo-mark{width:50px!important;height:50px!important;font-size:20px!important;color:#cfffff!important;border:2px solid rgba(89,96,255,.95)!important;background:radial-gradient(circle at 32% 28%,rgba(88,255,255,.32),rgba(35,77,255,.28) 42%,rgba(8,18,40,.92) 78%)!important;box-shadow:0 0 18px rgba(60,244,255,.55),0 0 34px rgba(86,64,255,.48),inset 0 0 16px rgba(120,255,255,.16)!important;text-shadow:0 0 10px rgba(255,255,255,.8),0 0 18px rgba(98,245,255,.92)!important;}
.brand-copy{display:flex;flex-direction:column;min-width:0;}
.brand-title{font-size:18px!important;font-weight:900!important;letter-spacing:.25px!important;color:#f4f8ff!important;line-height:1.12;text-shadow:0 0 16px rgba(43,124,255,.16);}
.brand-subtitle{margin-top:4px;font-size:11px;color:#7fdfff;letter-spacing:.22em;white-space:nowrap;opacity:.9;}

.canvas-head{height:auto!important;min-height:44px;gap:12px;flex-wrap:wrap;}
.canvas-head>div:first-child,.canvas-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;}
.canvas-meta h2{margin-right:4px;}
#timeText{font-size:12px!important;color:#8ea2c9!important;min-height:18px;}
.canvas-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.canvas-actions button{height:34px!important;padding:0 14px!important;border-radius:10px!important;background:rgba(255,255,255,.04)!important;border:1px solid rgba(116,137,255,.18)!important;}
#checkApiBtn{background:linear-gradient(180deg,rgba(15,39,78,.95),rgba(7,22,45,.95))!important;border-color:rgba(73,221,255,.32)!important;color:#dbf9ff!important;}
#regenBtn,#clearCanvasBtn{background:linear-gradient(180deg,rgba(16,27,48,.92),rgba(8,17,32,.92))!important;}
.api-status{font-size:12px!important;padding:4px 10px!important;}
.badge.busy{background:rgba(57,117,255,.16)!important;color:#7ed8ff!important;}

.process-card .p-step[data-step="3"],.process-card .p-step.wait[data-step="3"],.process-card .p-step.done[data-step="3"],.process-card .p-step.active[data-step="3"]{opacity:1!important;filter:none!important;transform:none!important;}
.process-card .p-step[data-step="3"] .ai-orb,.process-card .p-step.wait[data-step="3"] .ai-orb,.process-card .p-step.done[data-step="3"] .ai-orb,.process-card .p-step.active[data-step="3"] .ai-orb{width:84px!important;height:84px!important;font-size:28px!important;font-weight:900!important;letter-spacing:.04em!important;color:#f9ffff!important;opacity:1!important;filter:none!important;background:radial-gradient(circle at 50% 50%,#ffffff 0%,#c3ffff 9%,#68eeff 18%,#2a8bff 42%,#5c29ff 63%,rgba(59,28,185,.20) 78%,transparent 86%)!important;box-shadow:0 0 22px rgba(80,240,255,.98),0 0 54px rgba(61,110,255,.82),0 0 96px rgba(116,60,255,.68),inset 0 0 24px rgba(255,255,255,.62)!important;text-shadow:0 0 6px rgba(255,255,255,.95),0 0 14px rgba(255,255,255,.95),0 0 24px rgba(51,243,255,.85)!important;border:1px solid rgba(159,232,255,.35);}
.process-card .p-step[data-step="3"] .ai-orb:before,.process-card .p-step.wait[data-step="3"] .ai-orb:before,.process-card .p-step.done[data-step="3"] .ai-orb:before,.process-card .p-step.active[data-step="3"] .ai-orb:before{inset:-15px!important;opacity:.92!important;border:1px solid rgba(95,235,255,.84)!important;box-shadow:0 0 24px rgba(41,226,255,.48)!important;animation:spin 4.2s linear infinite!important;}
.process-card .p-step[data-step="3"] .ai-orb:after,.process-card .p-step.wait[data-step="3"] .ai-orb:after,.process-card .p-step.done[data-step="3"] .ai-orb:after,.process-card .p-step.active[data-step="3"] .ai-orb:after{inset:-26px!important;opacity:.72!important;border:1px solid rgba(137,95,255,.72)!important;box-shadow:0 0 36px rgba(108,74,255,.34)!important;animation:spin 7s linear infinite reverse!important;}

@media(max-height:820px){.process-card .p-step[data-step="3"] .ai-orb,.process-card .p-step.wait[data-step="3"] .ai-orb,.process-card .p-step.done[data-step="3"] .ai-orb,.process-card .p-step.active[data-step="3"] .ai-orb{width:72px!important;height:72px!important;font-size:24px!important;}}


/* v1.0.13 refinements */
#descInput{font-size:14px;line-height:1.75;}
.process-card .p-step[data-step="3"] .ai-orb,
.process-card .p-step.wait[data-step="3"] .ai-orb,
.process-card .p-step.done[data-step="3"] .ai-orb,
.process-card .p-step.active[data-step="3"] .ai-orb{
  position:relative;
  z-index:2;
  color:#ffffff!important;
  font-weight:900!important;
  font-family:Arial, Helvetica, sans-serif!important;
  line-height:1!important;
  letter-spacing:.02em!important;
  text-shadow:0 0 2px rgba(255,255,255,.95),0 0 8px rgba(255,255,255,.92),0 0 14px rgba(109,249,255,.78)!important;
}
.process-card .p-step[data-step="3"] .ai-orb::selection{background:transparent;}
.process-card .p-step[data-step="3"] .ai-orb{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}


/* v1.0.14: sharpen progress AI orb, reduce center haze and fix display area */
.process-card{overflow:hidden;}
.process-line{overflow:visible!important;}
.process-card .p-step[data-step="3"]{
  position:relative!important;
  z-index:5!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  opacity:1!important;
  transform:none!important;
  filter:none!important;
  min-height:94px!important;
}
.process-card .p-step[data-step="3"] .ai-orb,
.process-card .p-step.wait[data-step="3"] .ai-orb,
.process-card .p-step.done[data-step="3"] .ai-orb,
.process-card .p-step.active[data-step="3"] .ai-orb{
  width:78px!important;
  height:78px!important;
  min-width:78px!important;
  min-height:78px!important;
  border-radius:50%!important;
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:visible!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
  isolation:isolate!important;
  color:#f4ffff!important;
  font-family:Arial, Helvetica, sans-serif!important;
  font-size:25px!important;
  font-weight:900!important;
  letter-spacing:.08em!important;
  line-height:1!important;
  -webkit-font-smoothing:antialiased!important;
  -moz-osx-font-smoothing:grayscale!important;
  text-rendering:geometricPrecision!important;
  text-shadow:
    0 0 1px rgba(255,255,255,.95),
    0 0 5px rgba(255,255,255,.72),
    0 0 12px rgba(69,240,255,.72)!important;
  background:
    radial-gradient(circle at 50% 50%, rgba(20,234,255,.70) 0%, rgba(24,138,255,.74) 24%, rgba(34,49,177,.88) 48%, rgba(31,21,111,.84) 66%, rgba(11,16,45,.20) 78%, transparent 83%)!important;
  box-shadow:
    0 0 10px rgba(41,222,255,.76),
    0 0 28px rgba(39,116,255,.72),
    0 0 56px rgba(109,63,255,.48),
    inset 0 0 12px rgba(255,255,255,.24),
    inset 0 0 22px rgba(55,243,255,.20)!important;
  border:1px solid rgba(118,239,255,.58)!important;
}
.process-card .p-step[data-step="3"] .ai-orb::before,
.process-card .p-step.wait[data-step="3"] .ai-orb::before,
.process-card .p-step.done[data-step="3"] .ai-orb::before,
.process-card .p-step.active[data-step="3"] .ai-orb::before{
  content:""!important;
  position:absolute!important;
  inset:-13px!important;
  border-radius:50%!important;
  border:1px solid rgba(69,231,255,.76)!important;
  background:transparent!important;
  clip-path:none!important;
  opacity:.82!important;
  box-shadow:0 0 14px rgba(47,222,255,.38)!important;
  z-index:-1!important;
  animation:spin 5.2s linear infinite!important;
}
.process-card .p-step[data-step="3"] .ai-orb::after,
.process-card .p-step.wait[data-step="3"] .ai-orb::after,
.process-card .p-step.done[data-step="3"] .ai-orb::after,
.process-card .p-step.active[data-step="3"] .ai-orb::after{
  content:""!important;
  position:absolute!important;
  inset:-24px!important;
  border-radius:50%!important;
  border:1px solid rgba(122,80,255,.56)!important;
  background:transparent!important;
  clip-path:none!important;
  opacity:.55!important;
  box-shadow:0 0 22px rgba(112,76,255,.32)!important;
  z-index:-2!important;
  animation:spin 8s linear infinite reverse!important;
}
.p-line-bg,.p-line-active{z-index:0!important;}
.process-card .p-step[data-step="3"]::before{
  content:"";
  position:absolute;
  width:118px;
  height:84px;
  top:0;
  left:50%;
  transform:translateX(-50%);
  background:radial-gradient(circle at center, rgba(7,15,35,.92) 0%, rgba(7,15,35,.78) 46%, transparent 72%);
  z-index:1;
  pointer-events:none;
}
.process-card .p-step[data-step="3"] .ai-orb{z-index:3!important;}
@media(max-height:820px){
  .process-card .p-step[data-step="3"] .ai-orb,
  .process-card .p-step.wait[data-step="3"] .ai-orb,
  .process-card .p-step.done[data-step="3"] .ai-orb,
  .process-card .p-step.active[data-step="3"] .ai-orb{width:68px!important;height:68px!important;min-width:68px!important;min-height:68px!important;font-size:22px!important;}
}


/* v1.0.15: refined AI orb and silent unconfigured generation */
.process-card .p-step[data-step="3"],
.process-card .p-step.wait[data-step="3"],
.process-card .p-step.done[data-step="3"],
.process-card .p-step.active[data-step="3"]{
  opacity:1!important;
  transform:none!important;
  filter:none!important;
}
.process-card .p-step[data-step="3"] .ai-orb,
.process-card .p-step.wait[data-step="3"] .ai-orb,
.process-card .p-step.done[data-step="3"] .ai-orb,
.process-card .p-step.active[data-step="3"] .ai-orb{
  width:88px!important;
  height:88px!important;
  min-width:88px!important;
  min-height:88px!important;
  display:grid!important;
  place-items:center!important;
  position:relative!important;
  z-index:3!important;
  overflow:visible!important;
  border-radius:50%!important;
  color:#ffffff!important;
  font-family:Arial, Helvetica, sans-serif!important;
  font-size:24px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:.06em!important;
  background:
    radial-gradient(circle at 50% 48%, rgba(255,255,255,.22) 0 2px, transparent 3px),
    radial-gradient(circle at 50% 50%, #39f7ff 0%, #23b8ff 13%, #1a5cff 34%, #162a88 56%, #081a42 74%, #061022 100%)!important;
  border:1px solid rgba(88,238,255,.55)!important;
  box-shadow:
    0 0 0 1px rgba(100,139,255,.26),
    0 0 16px rgba(65,232,255,.62),
    0 0 32px rgba(58,119,255,.48),
    0 0 54px rgba(94,63,255,.30),
    inset 0 0 20px rgba(37,221,255,.38),
    inset 0 -12px 26px rgba(3,10,34,.72)!important;
  text-shadow:
    0 1px 0 rgba(4,14,40,.35),
    0 0 5px rgba(255,255,255,.92),
    0 0 10px rgba(99,244,255,.68)!important;
}
.process-card .p-step[data-step="3"] .ai-orb::before,
.process-card .p-step.wait[data-step="3"] .ai-orb::before,
.process-card .p-step.done[data-step="3"] .ai-orb::before,
.process-card .p-step.active[data-step="3"] .ai-orb::before{
  content:""!important;
  position:absolute!important;
  inset:-12px!important;
  border-radius:50%!important;
  border:1px solid rgba(70,235,255,.70)!important;
  border-left-color:rgba(70,235,255,.18)!important;
  border-bottom-color:rgba(70,235,255,.24)!important;
  clip-path:none!important;
  box-shadow:0 0 18px rgba(63,225,255,.45), inset 0 0 14px rgba(63,225,255,.10)!important;
  animation:spin 6s linear infinite!important;
  opacity:.82!important;
}
.process-card .p-step[data-step="3"] .ai-orb::after,
.process-card .p-step.wait[data-step="3"] .ai-orb::after,
.process-card .p-step.done[data-step="3"] .ai-orb::after,
.process-card .p-step.active[data-step="3"] .ai-orb::after{
  content:""!important;
  position:absolute!important;
  inset:-22px!important;
  border-radius:50%!important;
  border:1px solid rgba(104,80,255,.42)!important;
  border-top-color:rgba(20,235,255,.64)!important;
  border-right-color:rgba(20,235,255,.12)!important;
  clip-path:none!important;
  box-shadow:0 0 30px rgba(92,72,255,.25)!important;
  animation:spin 11s linear infinite reverse!important;
  opacity:.62!important;
}
.process-card .p-step[data-step="3"] .ai-orb span{position:relative;z-index:4;}
@media(max-height:820px){
  .process-card .p-step[data-step="3"] .ai-orb,
  .process-card .p-step.wait[data-step="3"] .ai-orb,
  .process-card .p-step.done[data-step="3"] .ai-orb,
  .process-card .p-step.active[data-step="3"] .ai-orb{
    width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;font-size:22px!important;
  }
  .process-card .p-step[data-step="3"] .ai-orb::before,
  .process-card .p-step.wait[data-step="3"] .ai-orb::before,
  .process-card .p-step.done[data-step="3"] .ai-orb::before,
  .process-card .p-step.active[data-step="3"] .ai-orb::before{inset:-10px!important;}
  .process-card .p-step[data-step="3"] .ai-orb::after,
  .process-card .p-step.wait[data-step="3"] .ai-orb::after,
  .process-card .p-step.done[data-step="3"] .ai-orb::after,
  .process-card .p-step.active[data-step="3"] .ai-orb::after{inset:-18px!important;}
}


/* v1.0.16: smaller AI orb, rename system log, wider login spacing */
.process-card .p-step[data-step="3"] .ai-orb,
.process-card .p-step.wait[data-step="3"] .ai-orb,
.process-card .p-step.done[data-step="3"] .ai-orb,
.process-card .p-step.active[data-step="3"] .ai-orb{
  width:76px!important;
  height:76px!important;
  min-width:76px!important;
  min-height:76px!important;
  font-size:22px!important;
}
.process-card .p-step[data-step="3"] .ai-orb::before,
.process-card .p-step.wait[data-step="3"] .ai-orb::before,
.process-card .p-step.done[data-step="3"] .ai-orb::before,
.process-card .p-step.active[data-step="3"] .ai-orb::before{
  inset:-10px!important;
}
.process-card .p-step[data-step="3"] .ai-orb::after,
.process-card .p-step.wait[data-step="3"] .ai-orb::after,
.process-card .p-step.done[data-step="3"] .ai-orb::after,
.process-card .p-step.active[data-step="3"] .ai-orb::after{
  inset:-18px!important;
}
.login-shell{
  width:min(1180px,calc(100vw - 80px))!important;
  grid-template-columns:1.24fr 420px!important;
  gap:82px!important;
}
@media (max-width:1180px){
  .login-shell{
    width:min(1060px,calc(100vw - 56px))!important;
    gap:64px!important;
  }
}
@media (max-width:920px){
  .login-shell{
    grid-template-columns:1fr!important;
    gap:0!important;
    width:min(440px,calc(100vw - 44px))!important;
  }
}


/* v1.0.17: login placement and cleaner left description panel */
.left-panel .section-head:first-child h2{font-size:19px!important;}
.left-panel textarea#descInput{margin-top:6px!important;height:118px!important;font-size:13px!important;line-height:1.72!important;}
.left-panel .big-action{margin-top:10px!important;}
.left-panel .ghost.full{margin-top:8px!important;}
.left-panel .field-label,.left-panel .counter{display:none!important;}

.login-shell{
  width:min(1280px,calc(100vw - 110px))!important;
  grid-template-columns:620px 370px!important;
  gap:290px!important;
  justify-content:center!important;
}
.login-visual{min-height:520px!important;}
.login-card{width:370px!important;justify-self:start!important;}
@media (max-width:1280px){
  .login-shell{
    width:min(1120px,calc(100vw - 60px))!important;
    grid-template-columns:1.35fr 390px!important;
    gap:82px!important;
  }
  .login-card{width:auto!important;}
}
@media (max-width:920px){
  .login-shell{
    grid-template-columns:1fr!important;
    gap:0!important;
    width:min(440px,calc(100vw - 44px))!important;
  }
  .login-card{justify-self:center!important;}
}


/* v1.0.18: concise error display and stable toast wrapping */
.toast{max-width:520px!important;white-space:normal!important;word-break:break-word!important;line-height:1.6!important;}
.process-title #processTip{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}


/* v1.0.27: user card fix, remove canvas toolbar, Beijing time in system log */
.topbar .user-box{
  min-width:168px!important;
  max-width:210px!important;
  height:46px!important;
  padding:6px 10px 6px 8px!important;
  border:1px solid rgba(105,128,255,.14)!important;
  border-radius:16px!important;
  background:rgba(7,16,32,.58)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 0 24px rgba(70,80,255,.10)!important;
}
.topbar .avatar{
  width:36px!important;
  height:36px!important;
  flex:0 0 36px!important;
}
.user-meta{
  min-width:0!important;
  flex:1!important;
  line-height:1.05!important;
  overflow:hidden!important;
}
.user-meta strong{
  display:block!important;
  max-width:96px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:13px!important;
  color:#f4f8ff!important;
}
.user-meta small{
  display:block!important;
  margin-top:4px!important;
  max-width:96px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:10px!important;
  color:#8fa0c4!important;
}
.topbar .plain-btn{
  flex:0 0 auto!important;
  min-width:34px!important;
  height:28px!important;
  padding:0 6px!important;
  border-radius:9px!important;
  color:#aab8d6!important;
  font-size:11px!important;
}
.topbar .plain-btn:hover{
  color:#fff!important;
  background:rgba(255,255,255,.06)!important;
}

.tool-strip{display:none!important;}
.image-stage{left:22px!important;right:22px!important;}

.process-card .p-step{
  justify-content:flex-start!important;
}
.process-card .p-step .step-time{
  display:block!important;
  visibility:visible!important;
  min-height:16px!important;
  margin-top:2px!important;
  font-size:11px!important;
  line-height:16px!important;
  color:#7f91b7!important;
  white-space:nowrap!important;
  letter-spacing:.15px!important;
}
.process-card .p-step.done .step-time,
.process-card .p-step.active .step-time{
  color:#6fe8ff!important;
  text-shadow:0 0 10px rgba(57,219,255,.28)!important;
}
.process-card .p-step[data-step="3"] .step-time{
  margin-top:0!important;
  transform:translateY(-4px);
}
@media(max-height:820px){
  .process-card .p-step .step-time{font-size:10px!important;}
}


/* v1.0.27: fix module pages for My Works and Material Management */
.works-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))!important;gap:18px!important;align-items:start;}
.work-card{min-height:0!important;padding:14px!important;display:flex!important;flex-direction:column!important;gap:12px!important;overflow:hidden;}
.work-thumb{width:100%;height:180px;border-radius:14px;overflow:hidden;background:rgba(255,255,255,.035);border:1px solid rgba(112,136,255,.16);display:grid;place-items:center;}
.work-thumb img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;border-radius:0!important;}
.work-info h3{margin:0;font-size:15px;color:#eef5ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.work-info p{margin:6px 0 0;color:#8390ad;font-size:12px;}
.work-actions{display:flex;gap:10px;margin-top:auto;}
.work-actions button{height:34px;flex:1;border-radius:9px;background:rgba(255,255,255,.055);border:1px solid rgba(112,136,255,.18);color:#dfe8ff;}
.work-actions button:hover{border-color:rgba(79,111,255,.48);background:rgba(42,77,255,.13);}
.module-material-layout{display:grid!important;grid-template-columns:320px minmax(0,1fr)!important;gap:18px!important;align-items:start;}
.module-upload-large{height:220px!important;}
.module-material-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))!important;gap:14px!important;align-items:start;}
.module-mat-card{height:132px;border-radius:12px;background:rgba(255,255,255,.035);border:1px solid rgba(112,136,255,.18);overflow:hidden;display:flex;flex-direction:column;padding:0;color:#dfe8ff;text-align:left;}
.module-mat-card img{width:100%;height:98px;object-fit:cover;display:block;background:#0b1428;}
.module-mat-card span{height:34px;line-height:34px;padding:0 10px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#b8c5df;}
.module-mat-card:hover{border-color:rgba(79,111,255,.55);box-shadow:0 0 18px rgba(47,83,255,.18);}
.material-page-empty{grid-column:1/-1;min-height:220px!important;display:grid!important;place-items:center!important;border:1px dashed rgba(143,158,255,.22);border-radius:14px;color:#8997b5;}
@media(max-width:1500px){.module-material-layout{grid-template-columns:1fr!important}.module-upload-large{height:160px!important}}


/* v1.0.27: timeline time cleanup and remove canvas corner icon */
.corner-resize{display:none!important;}
.process-card .process-line{height:116px!important;}
.process-card .p-step{gap:6px!important;justify-content:flex-start!important;}
.process-card .p-step b{line-height:1.25!important;}
.process-card .p-step .step-time{
  margin-top:8px!important;
  min-height:14px!important;
  line-height:14px!important;
  font-size:10px!important;
  letter-spacing:0!important;
  white-space:nowrap!important;
  display:block!important;
}
.process-card .p-step[data-step="3"] .step-time{
  margin-top:8px!important;
  transform:none!important;
}
.process-card .p-step.done .step-time,
.process-card .p-step.active .step-time{
  color:#72e8ff!important;
}
@media (max-width: 1400px){
  .process-card .p-step .step-time{font-size:9px!important;}
}


/* v1.0.27: remove middle AI time and fix system log bottom spacing */
.process-card{overflow:hidden!important;padding-bottom:12px!important;}
.process-card .process-line{height:104px!important;margin-top:2px!important;align-items:start!important;padding-top:10px!important;}
.process-card .p-step{min-height:82px!important;gap:4px!important;justify-content:flex-start!important;}
.process-card .p-step .step-time{
  margin-top:4px!important;
  min-height:12px!important;
  line-height:12px!important;
  font-size:10px!important;
  color:#7890b7!important;
  transform:none!important;
}
.process-card .p-step[data-step="3"] .step-time,
#pTime3{display:none!important;}
.process-card .p-step[data-step="3"]{padding-top:0!important;}
@media(max-height:820px){
  .process-card .process-line{height:92px!important;padding-top:6px!important;}
  .process-card .p-step{min-height:74px!important;}
  .process-card .p-step .step-time{font-size:9px!important;margin-top:3px!important;}
}

/* v1.0.27: intelligent poster workflow */
.ai-helper-card{
  margin-top:12px;
  padding:12px;
  border-radius:14px;
  border:1px solid rgba(102,128,255,.16);
  background:linear-gradient(180deg,rgba(19,33,66,.48),rgba(7,16,34,.72));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 0 22px rgba(59,95,255,.08);
}
.helper-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:10px;}
.helper-head strong{font-size:14px;color:#edf5ff;letter-spacing:.4px;}
.helper-head span{font-size:11px;color:#7f90b5;white-space:nowrap;}
.helper-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.helper-actions button{
  height:34px;
  border-radius:9px;
  border:1px solid rgba(107,132,255,.18);
  background:rgba(255,255,255,.045);
  color:#dfe9ff;
  font-size:12px;
  font-weight:800;
}
.helper-actions button:hover{border-color:rgba(78,209,255,.5);background:rgba(43,92,255,.15);box-shadow:0 0 18px rgba(54,132,255,.18);}
.analysis-result{margin-top:10px;padding:10px;border-radius:11px;background:rgba(5,13,28,.72);border:1px solid rgba(97,122,255,.14);}
.analysis-title{font-size:13px;font-weight:900;color:#f2f7ff;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.analysis-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.analysis-meta span,.analysis-tags i{font-style:normal;font-size:10px;color:#83e8ff;background:rgba(22,154,255,.12);border:1px solid rgba(42,195,255,.16);border-radius:999px;padding:3px 7px;}
.analysis-result p{margin:8px 0 0;color:#9aa9ca;font-size:12px;line-height:1.55;}
.analysis-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.analysis-tags i{color:#b7c6ff;background:rgba(124,74,255,.13);border-color:rgba(124,74,255,.20);}
#refinePosterBtn{min-width:112px!important;}
.quick-refine-tags{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px;}
.quick-refine-tags button{height:34px;border-radius:9px;background:rgba(255,255,255,.055);border:1px solid rgba(107,132,255,.18);color:#dfe9ff;}
.quick-refine-tags button:hover{border-color:rgba(78,209,255,.48);background:rgba(43,92,255,.13);}
@media(max-width:1500px){.helper-actions button{font-size:11px;padding:0 3px}.action-bar button{min-width:92px!important;padding:0 10px!important}}


/* v1.0.27: poster assistant clickable states */
.helper-actions button:active{transform:translateY(1px);filter:brightness(1.18);}
.helper-actions button .spinner{margin-right:4px;}
.analysis-result{animation:helperFadeIn .18s ease-out;}
@keyframes helperFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}


/* v1.0.27: cleaner assistant layout, file-driven plan analysis, refine mode */
.ai-helper-card.helper-compact{
  margin-top:14px!important;
  padding:12px!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,rgba(15,31,61,.60),rgba(6,15,31,.78))!important;
}
.ai-helper-card .helper-head{margin-bottom:10px!important;}
.ai-helper-card .helper-head strong{font-size:14px!important;}
.ai-helper-card .helper-head span{font-size:11px!important;color:#8ea1c7!important;}
.helper-actions.helper-cards{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
}
.helper-card-btn{
  width:100%!important;
  height:auto!important;
  min-height:54px!important;
  padding:10px 12px!important;
  border-radius:12px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:4px!important;
  text-align:left!important;
  background:linear-gradient(135deg,rgba(30,72,170,.20),rgba(12,20,42,.64))!important;
  border:1px solid rgba(105,132,255,.18)!important;
  color:#eaf2ff!important;
}
.helper-card-btn:hover{
  border-color:rgba(83,212,255,.45)!important;
  background:linear-gradient(135deg,rgba(34,94,220,.30),rgba(17,30,64,.76))!important;
  box-shadow:0 0 20px rgba(62,121,255,.18)!important;
}
.helper-card-btn strong{font-size:13px!important;line-height:1.2!important;}
.helper-card-btn span{font-size:11px!important;line-height:1.45!important;color:#8fa4cc!important;font-weight:500!important;}
#generateBtn.refine-mode{
  background:linear-gradient(90deg,#7d2dff,#16a2ff)!important;
  box-shadow:0 0 26px rgba(91,92,255,.48),0 0 18px rgba(42,203,255,.18)!important;
}
#descInput::placeholder{color:#8292b5!important;}
.analysis-result{max-height:120px!important;overflow:auto!important;}


/* v1.0.28: professional workspace polish */
:root{
  --panel-glow: 0 18px 52px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.035);
  --line-soft: rgba(105,136,255,.14);
  --line-hot: rgba(78,214,255,.34);
}

/* darker slim scrollbars */
*{scrollbar-width:thin;scrollbar-color:rgba(98,123,180,.38) rgba(4,12,25,.35);}
*::-webkit-scrollbar{width:6px;height:6px;}
*::-webkit-scrollbar-track{background:rgba(4,12,25,.35);border-radius:10px;}
*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(77,101,180,.75),rgba(41,58,120,.75));border-radius:10px;}

/* Left operation panel */
.left-panel{
  padding:18px 18px 20px!important;
  background:
    radial-gradient(circle at 12% 0%, rgba(52,87,255,.11), transparent 34%),
    linear-gradient(180deg,rgba(9,22,43,.90),rgba(4,13,27,.96))!important;
}
.left-panel .section-head:first-child{
  margin-bottom:12px!important;
  padding-bottom:10px!important;
  border-bottom:1px solid rgba(104,130,255,.12)!important;
}
.left-panel .section-head:first-child h2{
  font-size:18px!important;
  letter-spacing:.8px!important;
}
.left-panel textarea#descInput{
  height:118px!important;
  border-radius:14px!important;
  border-color:rgba(111,136,255,.20)!important;
  background:linear-gradient(180deg,rgba(6,16,34,.98),rgba(5,12,26,.96))!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.018), inset 0 10px 30px rgba(0,0,0,.18)!important;
}
.left-panel #optimizeBtn,
.left-panel #generateBtn{
  height:42px!important;
  border-radius:12px!important;
  margin-top:10px!important;
}
.left-panel #optimizeBtn{
  background:linear-gradient(180deg,rgba(13,29,52,.92),rgba(8,18,36,.94))!important;
  border-color:rgba(114,139,255,.18)!important;
  color:#dbe8ff!important;
}
.left-panel #generateBtn{
  height:46px!important;
  letter-spacing:.8px!important;
  box-shadow:0 0 24px rgba(58,102,255,.42), inset 0 1px 0 rgba(255,255,255,.16)!important;
}

/* AI helper as premium cards */
.ai-helper-card.helper-compact{
  margin-top:14px!important;
  padding:14px!important;
  border-radius:16px!important;
  background:
    radial-gradient(circle at 90% 0%, rgba(88,58,255,.18), transparent 34%),
    linear-gradient(180deg,rgba(11,25,49,.84),rgba(5,14,29,.92))!important;
  border:1px solid rgba(112,137,255,.16)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
}
.ai-helper-card .helper-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  margin-bottom:10px!important;
}
.ai-helper-card .helper-head strong{
  font-size:15px!important;
  color:#f1f6ff!important;
  letter-spacing:.4px!important;
}
.ai-helper-card .helper-head span{
  padding:3px 8px!important;
  border-radius:999px!important;
  background:rgba(71,119,255,.11)!important;
  border:1px solid rgba(104,143,255,.14)!important;
  color:#9eb5de!important;
  font-size:11px!important;
}
.helper-actions.helper-cards{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:9px!important;
}
.helper-card-btn{
  height:auto!important;
  min-height:58px!important;
  padding:11px 13px 11px 44px!important;
  border-radius:13px!important;
  position:relative!important;
  text-align:left!important;
  background:linear-gradient(180deg,rgba(14,31,58,.92),rgba(7,17,34,.94))!important;
  border:1px solid rgba(113,137,255,.16)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
}
.helper-card-btn::before{
  content:"";
  position:absolute;
  left:13px;top:50%;
  width:20px;height:20px;
  transform:translateY(-50%);
  border-radius:7px;
  background:linear-gradient(135deg,#58e8ff,#4a55ff 65%,#8b3cff);
  box-shadow:0 0 18px rgba(69,177,255,.34);
}
.helper-card-btn:first-of-type::after{
  content:"✦";
  position:absolute;left:17px;top:50%;
  transform:translateY(-50%);
  color:#fff;font-size:11px;
}
.helper-card-btn:last-of-type::after{
  content:"↻";
  position:absolute;left:16px;top:50%;
  transform:translateY(-50%);
  color:#fff;font-size:12px;
}
.helper-card-btn strong{
  display:block!important;
  font-size:14px!important;
  margin-bottom:5px!important;
  color:#ecf5ff!important;
}
.helper-card-btn span{
  display:block!important;
  font-size:12px!important;
  line-height:1.35!important;
  color:#8395bb!important;
}
.helper-card-btn:hover{
  border-color:rgba(79,222,255,.36)!important;
  background:linear-gradient(180deg,rgba(18,41,76,.96),rgba(8,19,39,.96))!important;
  transform:translateY(-1px);
}

/* module headings and groups */
.section-head.compact{
  margin-top:16px!important;
  padding-top:2px!important;
}
.section-head.compact h3{
  color:#edf5ff!important;
  font-size:14px!important;
}

/* canvas header and workspace */
.canvas-card{
  background:
    radial-gradient(circle at 72% 5%, rgba(50,97,255,.12), transparent 32%),
    linear-gradient(180deg,rgba(9,21,41,.90),rgba(4,13,27,.96))!important;
  box-shadow:var(--panel-glow)!important;
}
.canvas-head{
  min-height:46px!important;
  border-bottom:1px solid rgba(104,130,255,.10)!important;
  margin-bottom:10px!important;
  padding-bottom:10px!important;
}
.canvas-meta{
  gap:10px!important;
}
.canvas-meta h2{
  font-size:18px!important;
  letter-spacing:.8px!important;
}
#apiStatusText{
  margin-left:4px!important;
  max-width:220px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.canvas-actions{
  gap:9px!important;
}
.canvas-actions button{
  height:34px!important;
  border-radius:11px!important;
  background:linear-gradient(180deg,rgba(14,29,54,.90),rgba(7,17,34,.95))!important;
}
#checkApiBtn{
  border-color:rgba(63,221,255,.34)!important;
}
.canvas-frame{
  border-radius:16px!important;
  border-color:rgba(91,119,255,.16)!important;
  background:
    radial-gradient(circle at 50% 50%,rgba(32,79,190,.14),transparent 35%),
    linear-gradient(rgba(87,110,255,.052) 1px,transparent 1px),
    linear-gradient(90deg,rgba(87,110,255,.052) 1px,transparent 1px),
    #06101f!important;
  background-size:100% 100%,28px 28px,28px 28px!important;
}
.empty-canvas{
  opacity:.95!important;
}
.empty-canvas:before{
  width:72px!important;
  height:72px!important;
  background:
    radial-gradient(circle at 50% 50%,rgba(101,226,255,.24),rgba(67,75,255,.14) 46%,transparent 72%)!important;
  box-shadow:0 0 44px rgba(55,132,255,.18), inset 0 0 24px rgba(68,205,255,.08)!important;
}
.empty-canvas b{
  font-size:19px!important;
  color:#edf6ff!important;
  letter-spacing:.8px!important;
}
.empty-canvas span{
  color:#8fa1c3!important;
}

/* action bar lighter */
.action-bar{
  height:54px!important;
  border-radius:16px!important;
  gap:12px!important;
  padding:0 16px!important;
}
.action-bar button{
  min-width:98px!important;
  height:36px!important;
  border-radius:11px!important;
  background:linear-gradient(180deg,rgba(15,29,52,.86),rgba(7,17,34,.92))!important;
}
.action-bar button.primary{
  background:linear-gradient(90deg,#592aff,#1b67ff)!important;
}

/* system log lighter and more compact */
.process-card{
  height:132px!important;
  padding:14px 20px!important;
  border-radius:16px!important;
  background:
    radial-gradient(circle at 50% 50%,rgba(46,87,255,.10),transparent 38%),
    linear-gradient(180deg,rgba(8,19,38,.88),rgba(4,13,27,.94))!important;
}
.process-title h3{
  font-size:16px!important;
  letter-spacing:.7px!important;
}
.process-title #processTip{
  max-width:220px!important;
  color:#aab7d6!important;
  font-size:12px!important;
}
.process-line{
  height:86px!important;
  margin-top:0!important;
}
.p-line-bg,.p-line-active{
  top:28px!important;
}
.process-card .p-step{
  min-height:76px!important;
  gap:4px!important;
}
.process-card .p-step i{
  width:34px!important;height:34px!important;
}
.process-card .p-step b{
  font-size:12px!important;
  line-height:1.2!important;
}
.process-card .p-step .step-time{
  font-size:10px!important;
  margin-top:5px!important;
  opacity:.82!important;
}
.process-card .p-step[data-step="3"] .step-time{display:none!important;}
.process-card .p-step[data-step="3"] .ai-orb,
.process-card .p-step.wait[data-step="3"] .ai-orb,
.process-card .p-step.done[data-step="3"] .ai-orb,
.process-card .p-step.active[data-step="3"] .ai-orb{
  width:66px!important;
  height:66px!important;
  min-width:66px!important;
  min-height:66px!important;
  font-size:20px!important;
}

/* Right panels */
.right-panel{
  gap:14px!important;
}
.material-panel,.history-panel{
  border-radius:18px!important;
  padding:18px!important;
  background:
    radial-gradient(circle at 100% 0%,rgba(64,91,255,.10),transparent 35%),
    linear-gradient(180deg,rgba(9,22,43,.88),rgba(4,13,27,.95))!important;
}
.rich-head{
  align-items:flex-start!important;
  margin-bottom:14px!important;
  padding-bottom:10px!important;
  border-bottom:1px solid rgba(104,130,255,.10)!important;
}
.rich-head h2{
  font-size:18px!important;
}
.rich-head p{
  margin:5px 0 0!important;
  font-size:12px!important;
  color:#8293b8!important;
}
.material-grid{
  gap:12px!important;
}
.mat-card{
  border-radius:12px!important;
  background:rgba(9,20,39,.8)!important;
}
.mat-upload{
  border-radius:13px!important;
  min-height:74px!important;
}
.history-list{
  gap:10px!important;
}
.history-item{
  grid-template-columns:76px minmax(0,1fr) 20px!important;
  padding:8px!important;
  border:1px solid transparent!important;
}
.history-item:hover{
  border-color:rgba(80,143,255,.20)!important;
  background:rgba(53,90,255,.08)!important;
}
.history-item img{
  width:76px!important;
  height:48px!important;
  border-radius:9px!important;
}
.history-item strong{
  color:#eef5ff!important;
}
.history-item small{
  color:#7f90b3!important;
}

/* polish nav */
.nav-panel{
  background:
    radial-gradient(circle at 0% 0%, rgba(64,86,255,.18), transparent 28%),
    linear-gradient(180deg,rgba(5,12,28,.98),rgba(3,9,20,.97))!important;
}
.nav-item{
  border-radius:12px!important;
}
.nav-item.active{
  background:linear-gradient(90deg,#522bff,#176bff)!important;
}

/* responsive fit */
@media(max-height:820px){
  .process-card{height:118px!important;}
  .process-line{height:76px!important;}
  .process-card .p-step[data-step="3"] .ai-orb,
  .process-card .p-step.wait[data-step="3"] .ai-orb,
  .process-card .p-step.done[data-step="3"] .ai-orb,
  .process-card .p-step.active[data-step="3"] .ai-orb{
    width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important;font-size:18px!important;
  }
}


/* v1.0.30: PosterMind brand mark */
.pm-logo{
  font-size:16px!important;
  letter-spacing:.02em!important;
  color:#f4fdff!important;
  background:radial-gradient(circle at 35% 28%,rgba(119,255,255,.34),rgba(55,98,255,.34) 42%,rgba(9,18,43,.96) 78%)!important;
  border-color:rgba(90,236,255,.72)!important;
  box-shadow:0 0 18px rgba(47,225,255,.48),0 0 34px rgba(85,74,255,.40),inset 0 0 18px rgba(122,255,255,.14)!important;
  text-shadow:0 0 8px rgba(255,255,255,.85),0 0 16px rgba(82,238,255,.72)!important;
}
.brand-logo.pm-logo{font-size:17px!important;}
.login-logo.pm-logo{font-size:18px!important;}
