.login-shell input,.login-shell input:focus,.login-shell input:active{background:transparent!important;background-color:transparent!important;border:none!important;outline:none!important;box-shadow:none!important;-webkit-box-shadow:none!important;color:#f0f0f2!important;font-family:DM Sans,sans-serif!important}.login-shell input:-webkit-autofill,.login-shell input:-webkit-autofill:hover,.login-shell input:-webkit-autofill:focus,.login-shell input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 100px rgba(12,12,18,.95) inset!important;-webkit-text-fill-color:#f0f0f2!important;caret-color:#f0f0f2;transition:background-color 99999s ease-in-out 0s}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#07070d;position:relative;overflow:hidden}.login-canvas{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.login-card{position:relative;z-index:10;width:100%;max-width:400px;margin:20px;padding:52px 48px 44px;border-radius:28px;background:#0a0a12d1;border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(40px) saturate(1.8);-webkit-backdrop-filter:blur(40px) saturate(1.8);box-shadow:0 0 0 1px #7c6af714,0 40px 100px #000000b3,inset 0 1px #ffffff0f;animation:cardIn .55s cubic-bezier(.34,1.3,.64,1) both}@keyframes cardIn{0%{opacity:0;transform:translateY(32px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.login-shake{animation:shake .45s cubic-bezier(.36,.07,.19,.97) both}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.login-logo{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:32px}.login-bolt{font-size:56px;line-height:1;animation:boltPulse 3s ease-in-out infinite alternate}@keyframes boltPulse{0%{filter:drop-shadow(0 0 12px rgba(124,106,247,.4)) drop-shadow(0 0 24px rgba(124,106,247,.2))}to{filter:drop-shadow(0 0 24px rgba(124,106,247,.9)) drop-shadow(0 0 48px rgba(124,106,247,.4))}}.login-brand{font-size:28px;font-weight:700;color:#f2f2f4;letter-spacing:-.03em;font-family:DM Sans,sans-serif}.login-tagline{font-size:11px;color:#ffffff4d;letter-spacing:.18em;text-transform:uppercase;font-family:DM Sans,sans-serif}.login-divider{width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);margin-bottom:32px}.login-form{display:flex;flex-direction:column;gap:8px}.login-field-label{font-size:10.5px;font-weight:600;color:#ffffff52;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;font-family:DM Sans,sans-serif}.login-input-wrap{position:relative;display:flex;align-items:center;gap:12px;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:0 18px;height:56px;cursor:text;overflow:hidden;transition:border-color .2s,box-shadow .2s;background:transparent}.login-input-wrap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff0a;border-radius:14px;z-index:0;transition:background .2s;pointer-events:none}.login-input-wrap:focus-within{border-color:#7c6af780;box-shadow:0 0 0 3px #7c6af71f}.login-input-wrap:focus-within:before{background:#7c6af70f}.login-input-err{border-color:#ef444480!important;box-shadow:0 0 0 3px #ef44441a!important}.login-input-err:before{background:#ef44440d!important}.login-input-icon{color:#ffffff40;flex-shrink:0;position:relative;z-index:1;pointer-events:none;transition:color .2s}.login-input-wrap:focus-within .login-input-icon{color:#9d8effcc}.login-input{position:relative;z-index:1;flex:1;height:100%;border:none!important;outline:none!important;font-size:15px;font-family:DM Sans,sans-serif;letter-spacing:.06em;padding:0;min-width:0;width:100%;color:#f2f2f4!important;-webkit-text-fill-color:#f2f2f4!important;background-color:transparent!important;background:transparent!important;-webkit-transition:background-color 99999s ease-in-out 0s!important;transition:background-color 99999s ease-in-out 0s!important;-webkit-box-shadow:0 0 0 1000px transparent inset!important;box-shadow:0 0 0 1000px transparent inset!important;caret-color:#9d8eff}.login-input::placeholder{color:#ffffff2e!important;-webkit-text-fill-color:rgba(255,255,255,.18)!important;font-family:DM Sans,sans-serif;letter-spacing:.04em}.login-input:-webkit-autofill,.login-input:-webkit-autofill:hover,.login-input:-webkit-autofill:focus,.login-input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1000px transparent inset!important;-webkit-text-fill-color:#f2f2f4!important;background-color:transparent!important;-webkit-transition:background-color 99999s ease-in-out 0s!important}.login-err-msg{font-size:12px;color:#f87171;padding:2px;font-family:DM Sans,sans-serif;animation:errIn .2s ease}@keyframes errIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.login-btn{margin-top:12px;width:100%;height:56px;border-radius:14px;background:linear-gradient(135deg,#6c5ce7,#9d8eff);color:#fff;font-size:15px;font-weight:600;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;letter-spacing:.01em;font-family:DM Sans,sans-serif;position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 24px #6c5ce766}.login-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 60%);opacity:0;transition:opacity .2s}.login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 36px #6c5ce799}.login-btn:hover:after{opacity:1}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.login-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin .65s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-footer{margin-top:28px;text-align:center;font-size:11px;color:#ffffff29;font-family:DM Sans,sans-serif}*{box-sizing:border-box}.ed{display:flex;flex-direction:column;height:100vh;background:var(--bg);overflow:hidden;color:var(--txt)}.ed-top{height:52px;flex-shrink:0;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--bg-1);border-bottom:1px solid var(--border);z-index:100;overflow:hidden}.ed-top-div{width:1px;height:20px;background:var(--border-2);flex-shrink:0}.ed-top-nome{background:transparent;border:none;border-bottom:1.5px solid var(--border-2);color:var(--txt);font-size:13px;font-weight:600;font-family:inherit;padding:3px 6px;outline:none;min-width:100px;max-width:180px;flex:1;transition:border-color .15s}.ed-top-nome:focus{border-color:var(--accent)}.ed-modelo-badge{font-size:10px;font-weight:700;background:var(--accent-bg);color:var(--accent-2);border:1px solid var(--accent-bd);border-radius:20px;padding:3px 10px;letter-spacing:.04em;white-space:nowrap;flex-shrink:0}.ed-top-spacer{flex:1;min-width:8px}.zoom-box{display:flex;align-items:center;gap:0;background:var(--bg-2);border:1px solid var(--border-2);border-radius:8px;overflow:hidden;flex-shrink:0}.zoom-box button{width:26px;height:28px;background:none;border:none;color:var(--txt-3);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:all .12s}.zoom-box button:hover{background:var(--bg-3);color:var(--txt)}.zoom-box span{font-size:11.5px;color:var(--txt-2);min-width:38px;text-align:center;border-left:1px solid var(--border);border-right:1px solid var(--border);padding:0 2px;height:28px;display:flex;align-items:center;justify-content:center}.btn-save{height:30px;padding:0 13px;background:var(--bg-2);border:1px solid var(--border-2);border-radius:7px;color:var(--txt-2);font-size:12.5px;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.btn-save:hover{background:var(--bg-3);color:var(--txt);border-color:var(--accent-bd)}.btn-save.ok{color:var(--green);border-color:var(--green)}.btn-save:disabled{opacity:.5;cursor:not-allowed}.btn-publish{height:30px;padding:0 14px;background:var(--accent);border:none;border-radius:7px;color:#fff;font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.btn-publish:hover{filter:brightness(1.1)}.btn-publish:disabled{opacity:.5;cursor:not-allowed}.ed-body{flex:1;display:flex;overflow:hidden;min-height:0}.ed-iconbar{width:50px;flex-shrink:0;background:var(--bg-1);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:2px}.iconbar-btn{width:38px;height:42px;border-radius:9px;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--txt-2);transition:all .13s;flex-shrink:0}.iconbar-btn:hover{background:var(--bg-2);color:var(--txt)}.iconbar-btn.active{background:var(--accent-bg);color:var(--accent-2)}.iconbar-btn svg{flex-shrink:0}.iconbar-btn span{font-size:7.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.iconbar-sep{width:26px;height:1px;background:var(--border);margin:3px 0}.ed-panel{width:240px;flex-shrink:0;background:var(--bg-1);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.panel-head{padding:10px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.panel-title{font-size:12.5px;font-weight:700;color:var(--txt)}.panel-sub{font-size:11px;color:var(--txt-3);margin-top:1px}.panel-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px 8px 16px;display:flex;flex-direction:column;gap:3px}.panel-body::-webkit-scrollbar{width:3px}.panel-body::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:3px}.panel-section{font-size:9px;font-weight:700;color:var(--txt-3);letter-spacing:.1em;text-transform:uppercase;padding:10px 4px 4px}.var-btn{width:100%;display:flex;align-items:center;gap:8px;padding:7px 9px;background:transparent;border:1px solid var(--border);border-radius:8px;cursor:pointer;font-family:inherit;text-align:left;transition:all .11s}.var-btn:hover:not(:disabled){background:var(--bg-2);border-color:var(--border-2)}.var-btn.placed{background:var(--green-bg,rgba(63,185,80,.08));border-color:var(--green-bd,rgba(63,185,80,.2))}.var-btn:disabled{opacity:.4;cursor:not-allowed}.var-btn-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.var-btn-info{flex:1;min-width:0}.var-btn-label{font-size:11.5px;font-weight:500;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.var-btn-sub{font-size:9.5px;color:var(--txt-3);margin-top:1px}.var-btn-sub.cond{color:var(--amber,#d29922)}.var-btn-add{font-size:16px;color:inherit;opacity:.5;flex-shrink:0;line-height:1}.shapes-popup{position:fixed;z-index:9999;background:var(--bg-1);border:1px solid var(--border-2);border-radius:12px;padding:10px;box-shadow:0 8px 32px #00000040;width:196px;animation:popIn .14s ease}@keyframes popIn{0%{opacity:0;transform:scale(.94) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.shapes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.shape-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px;border-radius:8px;border:1px solid var(--border);background:transparent;cursor:pointer;font-family:inherit;transition:all .11s}.shape-btn:hover{background:var(--accent-bg);border-color:var(--accent-bd)}.shape-btn span{font-size:18px;line-height:1}.shape-btn small{font-size:8px;color:var(--txt-3)}.layer-item{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:8px;cursor:pointer;border:1px solid transparent;transition:all .1s}.layer-item:hover{background:var(--bg-2)}.layer-item.active{background:var(--accent-bg);border-color:var(--accent-bd)}.layer-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.layer-name{flex:1;font-size:11.5px;color:var(--txt-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-name.active{color:var(--txt)}.layer-del{width:22px;height:22px;background:none;border:none;cursor:pointer;color:var(--txt-3);border-radius:5px;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .1s;flex-shrink:0}.layer-del:hover{background:var(--red-bg,rgba(239,68,68,.1));color:var(--red,#f85149)}.ed-canvas-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.ed-toolbar-bar{height:52px;flex-shrink:0;display:flex;align-items:center;gap:2px;padding:0 12px;background:var(--bg-1);border-bottom:1px solid var(--border)}.tb-btn{width:32px;height:32px;border-radius:7px;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .13s,background .13s;flex-shrink:0;padding:0}.tb-btn:hover{background:#6366f11a}.tb-sep{width:1px;height:20px;background:var(--border-2);margin:0 4px;flex-shrink:0}.tb-info{font-size:11px;color:var(--txt-3);padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.ed-canvas-area{flex:1;overflow:auto;background:var(--bg);position:relative;background-image:radial-gradient(var(--border-2) 1px,transparent 1px);background-size:22px 22px}.ed-canvas-area::-webkit-scrollbar{width:7px;height:7px}.ed-canvas-area::-webkit-scrollbar-track{background:var(--bg)}.ed-canvas-area::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:4px}.canvas-scroll{padding:56px 40px 80px;display:flex;justify-content:center;align-items:flex-start;min-height:100%;min-width:100%}.c-board{position:relative;box-shadow:0 0 0 1px var(--border-2),0 12px 48px #0006;border-radius:2px;overflow:visible}.snap-h{position:absolute;left:0;right:0;height:1px;background:var(--accent);pointer-events:none;z-index:200}.snap-v{position:absolute;top:0;bottom:0;width:1px;background:var(--accent);pointer-events:none;z-index:200}.rh{position:absolute;width:8px;height:8px;border-radius:2px;background:var(--bg-1);border:2px solid var(--accent);box-shadow:0 1px 4px #0000004d;z-index:30;pointer-events:all}.rh-nw{top:-4px;left:-4px;cursor:nw-resize}.rh-n{top:-4px;left:50%;transform:translate(-50%);cursor:n-resize}.rh-ne{top:-4px;right:-4px;cursor:ne-resize}.rh-e{top:50%;right:-4px;transform:translateY(-50%);cursor:e-resize}.rh-se{bottom:-4px;right:-4px;cursor:se-resize}.rh-s{bottom:-4px;left:50%;transform:translate(-50%);cursor:s-resize}.rh-sw{bottom:-4px;left:-4px;cursor:sw-resize}.rh-w{top:50%;left:-4px;transform:translateY(-50%);cursor:w-resize}.ed-right{width:260px;flex-shrink:0;background:var(--bg-1);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.right-head{padding:0 16px;border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;height:52px;gap:8px}.right-head-inner{display:flex;align-items:center;justify-content:space-between;width:100%}.right-title{font-size:13px;font-weight:700;color:var(--txt);flex:1}.right-subtitle{font-size:10px;color:var(--txt-3);margin-top:1px}.right-tabs{display:flex;padding:0 10px;gap:0;border-top:1px solid var(--border)}.rtab{flex:1;padding:6px 0;background:none;border:none;font-size:10.5px;font-weight:600;color:var(--txt-3);cursor:pointer;font-family:inherit;transition:all .12s;border-bottom:2px solid transparent;text-align:center}.rtab.active{color:var(--accent-2);border-bottom-color:var(--accent)}.right-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--txt-3);font-size:12px;text-align:center;padding:24px 16px;line-height:1.5}.right-body{flex:1;overflow-y:auto}.right-body::-webkit-scrollbar{width:3px}.right-body::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:3px}.pg{padding:12px 14px;border-bottom:1px solid var(--border)}.pg-title{font-size:9px;font-weight:800;color:var(--txt-3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:6px}.pg-title:after{content:"";flex:1;height:1px;background:var(--border)}.pg-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.pg-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:8px}.pg-label{font-size:10px;color:var(--txt-3);margin-bottom:3px;font-weight:500}.pg-input{width:100%;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;color:var(--txt);font-size:12px;padding:5px 8px;outline:none;font-family:inherit;transition:border-color .12s}.pg-input:focus{border-color:var(--accent)}.pg-range{width:100%;accent-color:var(--accent);cursor:pointer;height:3px}.pg-check{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--txt-2);cursor:pointer;padding:3px 0}.pg-check input{accent-color:var(--accent);width:14px;height:14px}.pg-textarea{width:100%;background:var(--bg-2);border:1px solid var(--border);border-radius:7px;color:var(--txt);font-size:12px;padding:7px 9px;outline:none;font-family:inherit;resize:vertical;min-height:60px;transition:border-color .12s}.pg-textarea:focus{border-color:var(--accent)}.pg-color{display:flex;align-items:center;gap:6px;margin-bottom:8px}.pg-swatch{width:32px;height:28px;border-radius:6px;border:1px solid var(--border-2);cursor:pointer;padding:2px;background:var(--bg-2);flex-shrink:0}.pg-color-label{font-size:10.5px;color:var(--txt-3);min-width:52px;flex-shrink:0}.pg-color input[type=text]{flex:1;height:28px;padding:0 7px;font-size:11px;font-family:monospace}.pg-clear{width:24px;height:24px;background:none;border:1px solid var(--border);border-radius:5px;cursor:pointer;color:var(--txt-3);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;transition:all .1s}.pg-clear:hover{border-color:var(--red,#f85149);color:var(--red,#f85149)}.pg-num{display:flex;align-items:center;background:var(--bg-2);border:1px solid var(--border);border-radius:7px;overflow:hidden;transition:border-color .12s}.pg-num:focus-within{border-color:var(--accent)}.pg-num button{width:26px;height:28px;background:none;border:none;color:var(--txt-3);cursor:pointer;font-size:14px;flex-shrink:0;transition:all .1s}.pg-num button:hover{background:var(--bg-3);color:var(--txt)}.pg-num input{flex:1;min-width:0;background:transparent;border:none;color:var(--txt);font-size:12px;text-align:center;outline:none;font-family:inherit;padding:4px 0}.pg-imgprev{width:100%;height:72px;border-radius:8px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);display:flex;align-items:center;justify-content:center;margin-bottom:8px}.pg-imgprev img{width:100%;height:100%;object-fit:contain}.pg-danger{width:100%;padding:7px 0;background:var(--red-bg,rgba(239,68,68,.08));border:1px solid var(--red-bd,rgba(239,68,68,.2));border-radius:7px;color:var(--red,#f85149);cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;transition:all .12s}.pg-danger:hover{background:var(--red-bg-h,rgba(239,68,68,.15))}.pos-badge{display:inline-flex;align-items:center;gap:4px;background:var(--bg-2);border:1px solid var(--border);border-radius:5px;padding:2px 7px;font-size:10.5px;color:var(--txt-3);font-family:monospace}.ctx{position:fixed;z-index:9999;background:var(--bg-1);border:1px solid var(--border-2);border-radius:11px;padding:5px;box-shadow:0 8px 32px #00000040;min-width:196px;animation:popIn .12s ease}.ctx-i{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:7px;cursor:pointer;font-size:12.5px;color:var(--txt-2);background:none;border:none;width:100%;font-family:inherit;text-align:left;transition:all .1s}.ctx-i:hover{background:var(--bg-2);color:var(--txt)}.ctx-i.danger{color:var(--red,#f85149)}.ctx-i.danger:hover{background:var(--red-bg,rgba(239,68,68,.08))}.ctx-sep{border:none;border-top:1px solid var(--border);margin:3px 0}.ctx-lbl{font-size:9px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.1em;padding:5px 10px 2px;font-weight:700}.model-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px;background:var(--bg);overflow-y:auto}.model-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:520px;width:100%}.model-card{background:var(--bg-1);border:1px solid var(--border);border-radius:14px;padding:20px 18px;cursor:pointer;text-align:left;font-family:inherit;display:flex;flex-direction:column;gap:9px;transition:all .15s}.model-card:hover{border-color:var(--accent-bd);background:var(--accent-bg);transform:translateY(-2px)}.pack-item{width:100%;display:flex;align-items:center;gap:9px;padding:9px 11px;background:var(--bg-2);border:1px solid var(--border);border-radius:9px;cursor:pointer;font-family:inherit;transition:all .12s;margin-bottom:4px}.pack-item:hover{background:var(--bg-3)}.pack-item.selected{background:var(--accent-bg);border-color:var(--accent-bd)}.dark-input{width:100%;height:34px;background:var(--bg-2);border:1px solid var(--border);border-radius:7px;color:var(--txt);font-size:12.5px;padding:0 10px;outline:none;font-family:inherit;transition:border-color .12s;margin-bottom:6px}.dark-input:focus{border-color:var(--accent)}[data-theme=light] .c-board{box-shadow:0 0 0 1px #00000026,0 12px 48px #00000026}.pg-clear{background:none;border:1px solid var(--border);border-radius:5px;cursor:pointer;color:var(--txt-3);padding:2px 7px;font-size:10.5px;font-family:inherit;transition:all .1s}.ed-top-brand{font-size:14px;font-weight:800;color:var(--txt);letter-spacing:-.02em;white-space:nowrap;flex-shrink:0}.ed-top select,.ed-top input[type=text],.ed-top input[type=number]{background:var(--bg-2)!important;border:1px solid var(--border-2)!important;color:var(--txt)!important}.el-preview-hint{position:absolute;bottom:-18px;left:50%;transform:translate(-50%);font-size:9px;color:var(--accent-2);white-space:nowrap;pointer-events:none;background:var(--bg-1);padding:1px 6px;border-radius:4px;border:1px solid var(--accent-bd)}.el-preview-hint .shapes-popup{color:var(--txt)}.el-preview-hint [data-theme=light] .shapes-popup small{color:var(--txt-3)!important}.el-preview-hint [data-theme=light] .ed-top-brand{color:var(--accent)}.el-preview-hint [data-theme=light] .ed-iconbar{border-right-color:var(--border)}.el-preview-hint [data-theme=light] .tb-btn,.el-preview-hint [data-theme=light] .iconbar-btn{color:var(--txt-2)}.el-preview-hint .ed-top-div,.el-preview-hint .btn-save,.el-preview-hint .btn-publish,.el-preview-hint .zoom-box{flex-shrink:0}.el-preview-hint .el-inline-edit{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:transparent;border:none;outline:none;resize:none;cursor:text;z-index:10;@keyframes toastIn{from {opacity:0; transform:translateX(-50%) translateY(-12px) scale(.94);} to {opacity:1; transform:translateX(-50%) translateY(0) scale(1);} [data-theme="light"] .ed-top-brand {color: var(--txt);} [data-theme="light"] .ed-toolbar-bar {background: var(--bg-1);} .right-title {padding: 0 !important;} .right-head-top {gap: 8px;} .right-head {box-sizing: border-box;} .right-title {white-space: nowrap; overflow: hidden; text-overflow: ellipsis;} [data-theme="light"] .ed-top-brand {color: var(--txt);} .el-edit-overlay {position: absolute; inset: -2px; border: 2px solid var(--accent); border-radius: 4px; resize: none; outline: none; z-index: 50; box-sizing: border-box; caret-color: var(--accent);} .tb-info{font-size:11px;color:var(--txt-3);padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1} .shell {display:flex; height:100vh; overflow:hidden; background:var(--bg);} .sidebar {width: 220px; flex-shrink: 0; background: var(--bg-1); border-right: 1px solid var(--border); display: flex; flex-direction: column; overflow: hidden; transition: width .22s cubic-bezier(.4,0,.2,1);} .sidebar-logo {height: 54px; display: flex; align-items: center; gap: 10px; padding: 0 14px; border-bottom: 1px solid var(--border); overflow: hidden; flex-shrink: 0;} .logo-icon {font-size: 22px; flex-shrink: 0; line-height: 1; filter: drop-shadow(0 0 8px rgba(124,106,247,.5));} .logo-text {overflow: hidden; transition: opacity .2s,width .2s;} .logo-name {font-size: 14px; font-weight: 600; letter-spacing: -.02em; white-space: nowrap;} .logo-sub {font-size: 10.5px; color: var(--txt-3); margin-top: 1px; white-space: nowrap;} .sidebar-nav {flex: 1; padding: 10px; overflow-y: auto;} .nav-section-label {font-size: 10px; font-weight: 600; color: var(--txt-3); letter-spacing: .08em; text-transform: uppercase; padding: 6px 10px 4px; white-space: nowrap;} .nav-item {display: flex; align-items: center; gap: 10px; padding: 0 12px; height: 40px; border-radius: 10px; font-size: 13px; color: var(--txt-2); text-decoration: none; transition: all .12s; margin-bottom: 2px; border: 1px solid transparent; white-space: nowrap; overflow: hidden;} .nav-item:hover {background: var(--bg-2); color: var(--txt);} .nav-active {background: var(--accent-bg); color: var(--accent-2); border-color: var(--accent-bd); font-weight: 500;} .nav-icon {width: 22px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;} .nav-label-text {flex: 1;} .nav-item-unread:hover {background: rgba(251,146,60,.1) !important; color: #fb923c !important; border-color: rgba(251,146,60,.2) !important;} .sidebar-footer {padding: 10px; border-top: 1px solid var(--border); display: flex; flex-direction: column; gap: 4px;} .admin-pill {display: flex; align-items: center; gap: 10px; padding: 0 12px; height: 40px; border-radius: 10px; background: var(--bg-2); border: 1px solid var(--border); overflow: hidden; transition: all .13s; cursor: pointer; white-space: nowrap; width: 100%;} .admin-pill:hover {background: var(--bg-3); border-color: var(--border-2);} .admin-avatar {width: 24px; height: 24px; border-radius: 50%; background: var(--accent-bg); border: 1px solid var(--accent-bd); display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; color: var(--accent-2); flex-shrink: 0;} .admin-info {flex: 1; overflow: hidden; min-width: 0;} .admin-name {font-size: 12px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;} .admin-role {font-size: 10px; color: var(--txt-3);} .sidebar-toggle-btn {display: flex; align-items: center; justify-content: center; gap: 6px; height: 32px; width: 100%; border-radius: 8px; background: transparent; border: 1px solid var(--border); color: var(--txt-3); cursor: pointer; font-size: 12px; font-family: var(--font); transition: all .12s;} .sidebar-toggle-btn:hover {background: var(--bg-2); color: var(--txt);} .sidebar.collapsed {width: 60px;} .sidebar.collapsed .sidebar-logo {justify-content: center; padding: 0;} .sidebar.collapsed .logo-text {opacity: 0; width: 0; overflow: hidden;} .sidebar.collapsed .sidebar-nav {padding: 10px 0;} .sidebar.collapsed .nav-section-label {display: none;} .sidebar.collapsed .nav-item {width: 40px; height: 40px; padding: 0; margin: 0 auto 2px; justify-content: center; border-radius: 10px; overflow: hidden;} .sidebar.collapsed .nav-icon {width: 40px; min-width: 40px; justify-content: center;} .sidebar.collapsed .nav-label-text {display: none;} .sidebar.collapsed .sidebar-footer {padding: 10px 0; align-items: center;} .sidebar.collapsed [data-logout-wrap] {width: 40px; margin: 0 auto;} .sidebar.collapsed [data-logout-wrap] > button {width: 40px; justify-content: center;} .sidebar.collapsed .admin-pill {width: 40px; height: 40px; padding: 0; justify-content: center; border-radius: 10px;} .sidebar.collapsed .admin-info,.sidebar.collapsed .admin-pill > svg {display: none;} .sidebar.collapsed .sidebar-toggle-btn {width: 40px; height: 32px; padding: 0; margin: 0 auto;} .main-area {flex: 1; display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: var(--bg);} .topbar {height: 54px; flex-shrink: 0; background: var(--bg-1); border-bottom: 1px solid var(--border); display: flex; align-items: center; padding: 0 28px; gap: 14px;} .topbar-title {font-size: 15px; font-weight: 600; letter-spacing: -.01em;} .topbar-spacer {flex: 1;} .topbar-actions {display: flex; align-items: center; gap: 8px;} .hamburger-btn {display: none;} .scroll-area {flex: 1; overflow-y: auto; background: var(--bg);} .page-wrap {padding: 28px 32px; display: flex; flex-direction: column; gap: 24px;} .page-header {display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;} .page-title {font-size: 22px; font-weight: 700; letter-spacing: -.02em;} .page-sub {font-size: 13px; color: var(--txt-2); margin-top: 3px;} .stats-grid {display: grid; grid-template-columns: repeat(4,1fr); gap: 12px;} .stat-card {background: var(--bg-1); border: 1px solid var(--border); border-radius: var(--r2); padding: 16px 18px;} .stat-label {font-size: 11.5px; color: var(--txt-2); margin-bottom: 6px; font-weight: 500;} .stat-value {font-size: 26px; font-weight: 700; letter-spacing: -.03em;} .stat-sub {font-size: 11.5px; color: var(--txt-3); margin-top: 4px;} .table-wrap {overflow-x: auto;} table {width: 100%; border-collapse: collapse; font-size: 13.5px;} th {text-align: left; font-size: 11.5px; font-weight: 500; color: var(--txt-3); padding: 10px 14px; border-bottom: 1px solid var(--border); letter-spacing: .04em; text-transform: uppercase;} td {padding: 12px 14px; border-bottom: 1px solid var(--border); vertical-align: middle;} tr:last-child td {border-bottom: none;} tr:hover td {background: rgba(255,255,255,.015);} .modal-backdrop {position: fixed; inset: 0; background: rgba(0,0,0,.65); backdrop-filter: blur(8px); z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 24px;} .modal {background: var(--bg-1); border: 1px solid var(--border-2); border-radius: var(--r3); padding: 28px; width: 100%; max-width: 500px; max-height: calc(100vh - 48px) ; display: flex; flex-direction: column; box-shadow: 0 32px 80px rgba(0,0,0,.7); animation: fadeIn .25s ease both; margin: auto;} .modal-header {display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; flex-shrink: 0;} .modal-title {font-size: 17px; font-weight: 600;} .modal-body {overflow-y: auto; flex: 1; display: flex; flex-direction: column; gap: 14px;} .modal-footer {display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--border); flex-shrink: 0;} .form-row {display: grid; grid-template-columns: 1fr 1fr; gap: 12px;} .form-row .full {grid-column: 1/-1;} @media (max-width: 768px) {.sidebar {position: fixed; left: 0; top: 0; bottom: 0; z-index: 50; transform: translateX(-100%); width: 220px !important; transition: transform .25s cubic-bezier(.4,0,.2,1);} .sidebar.mobile-open {transform: translateX(0); box-shadow: 8px 0 32px rgba(0,0,0,.5);} .hamburger-btn {display: flex !important;} .stats-grid {grid-template-columns: 1fr 1fr;} .page-wrap {padding: 16px;}} @keyframes fadeIn {from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none}} *,*::before,*::after {box-sizing: border-box; margin: 0; padding: 0;} :root { --font: "DM Sans", sans-serif; --mono: "DM Mono", monospace; --bg: #09090b; --bg-1: #111114; --bg-2: #18181c; --bg-3: #222228; --border: rgba(255,255,255,.07); --border-2: rgba(255,255,255,.13); --txt: #f0f0f2; --txt-2: #9898a6; --txt-3: #52525e; --accent: #7c6af7; --accent-2: #9d8eff; --accent-bg: rgba(124,106,247,.12); --accent-bd: rgba(124,106,247,.25); --green:#22c55e; --green-bg:rgba(34,197,94,.1); --red:#ef4444; --red-bg:rgba(239,68,68,.1); --amber:#f59e0b; --amber-bg:rgba(245,158,11,.1); --r:8px; --r2:12px; --r3:16px; --sidebar-w: 220px; } [data-theme="light"] { --bg:#f4f4f5; --bg-1:#ffffff; --bg-2:#f0f0f3; --bg-3:#e8e8ee; --border:rgba(0,0,0,.07); --border-2:rgba(0,0,0,.13); --txt:#18181b; --txt-2:#52525b; --txt-3:#a1a1aa; --accent-bg:rgba(124,106,247,.08); --accent-bd:rgba(124,106,247,.2); } html {background:var(--bg);} html,body,#root {height:100%; font-family:var(--font); font-size:14px; background:var(--bg); color:var(--txt); -webkit-font-smoothing:antialiased; transition:background .2s,color .2s;} ::-webkit-scrollbar{width:5px} ::-webkit-scrollbar-track{background:transparent} ::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:10px} :not(.login-shell) input,:not(.login-shell) select,:not(.login-shell) textarea {font-family:var(--font); font-size:13.5px; background:var(--bg-1); border:1px solid var(--border-2); border-radius:var(--r); color:var(--txt); padding:8px 12px; outline:none; transition:border-color .15s,box-shadow .15s; width:100%;} :not(.login-shell) input:focus,:not(.login-shell) select:focus,:not(.login-shell) textarea:focus {border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-bg);} select {appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2371717a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 10px center; padding-right:32px; cursor:pointer;} button {font-family:var(--font); font-size:13.5px; font-weight:500; border-radius:var(--r); cursor:pointer; border:none; padding:8px 18px; transition:all .15s; display:inline-flex; align-items:center; gap:7px; white-space:nowrap; position:relative; overflow:hidden;} .btn-primary {background:var(--accent); color:#fff;} .btn-primary::after {content:""; position:absolute; inset:0; background:radial-gradient(circle 80px at var(--mx,50%) var(--my,50%),rgba(255,255,255,.22) 0%,transparent 70%); opacity:0; transition:opacity .2s; pointer-events:none;} .btn-primary:hover {background:var(--accent-2); box-shadow:0 0 24px var(--accent-bg),0 4px 12px rgba(0,0,0,.3); transform:translateY(-1px);} .btn-primary:hover::after {opacity:1;} .btn-primary:active {transform:none;} .btn-ghost {background:var(--bg-2); color:var(--txt-2); border:1px solid var(--border-2);} .btn-ghost:hover {background:var(--bg-3); color:var(--txt);} .btn-danger {background:var(--red-bg); color:var(--red); border:1px solid rgba(239,68,68,.2);} .btn-danger:hover {background:rgba(239,68,68,.18);} .btn-sm {padding:5px 12px; font-size:12.5px;} .btn-icon {padding:7px; border-radius:var(--r); background:transparent; color:var(--txt-3); border:1px solid transparent; cursor:pointer; font-size:16px; display:flex; align-items:center; justify-content:center;} .btn-icon:hover {background:var(--bg-2); color:var(--txt); border-color:var(--border);} .badge {display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:500; padding:2px 9px; border-radius:20px;} .badge-green{background:var(--green-bg);color:var(--green)} .badge-red{background:var(--red-bg);color:var(--red)} .badge-amber{background:var(--amber-bg);color:var(--amber)} .badge-accent{background:var(--accent-bg);color:var(--accent-2);border:1px solid var(--accent-bd)} .card {background:var(--bg-1); border:1px solid var(--border); border-radius:var(--r2); overflow:hidden;} .field {display:flex; flex-direction:column; gap:5px;} .label {font-size:12px; font-weight:500; color:var(--txt-2);} .divider {border:none; border-top:1px solid var(--border); margin:0;} @keyframes fadeIn {from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none}} .fade-in {animation:fadeIn .25s ease both;} @keyframes popupIn {from{opacity:0;transform:translateX(-50%) translateY(6px) scale(.85)} to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}} @keyframes tokenCopied {0%{transform:translateX(-50%) translateY(0) scale(1)} 15%{transform:translateX(-50%) translateY(-4px) scale(1.08)} 35%{transform:translateX(-50%) translateY(-2px) scale(1.04)} 100%{transform:translateX(-50%) translateY(0) scale(1)}} @keyframes checkDraw {from{stroke-dashoffset:30} to{stroke-dashoffset:0}} @keyframes btnSuccess {0%{transform:scale(1)} 30%{transform:scale(.93)} 60%{transform:scale(1.04)} 100%{transform:scale(1)}} @keyframes particle {0%{opacity:1;transform:translate(0,0) scale(1)} 100%{opacity:0;transform:translate(var(--tx),var(--ty)) scale(0)}} @keyframes spin {from{transform:rotate(0deg)} to{transform:rotate(360deg)}} @keyframes slideInRight {from{opacity:0;transform:translateX(120%)} to{opacity:1;transform:translateX(0)}} @keyframes slideOutRight {from{opacity:1;transform:translateX(0)} to{opacity:0;transform:translateX(120%)}} @keyframes pulse {0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,.6)} 50%{box-shadow:0 0 0 5px rgba(245,158,11,0)}}}}
