@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size:12px;--rc-drag-handle-mobile-size:24px;--rc-drag-handle-bg-colour:#0003;--rc-drag-bar-size:6px;--rc-border-color:#ffffffb3;--rc-focus-color:#08f}.ReactCrop{cursor:crosshair;max-width:100%;display:inline-block;position:relative}.ReactCrop *,.ReactCrop :before,.ReactCrop :after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit;overflow:hidden}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{max-width:100%;max-height:inherit;display:block}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px);position:absolute;top:0;right:0;bottom:0;left:0}.ReactCrop__crop-selection{cursor:move;position:absolute;top:0;left:0;transform:translate(0)}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";border:1px solid var(--rc-border-color);opacity:.3;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed #fff}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){color:#fff;background-image:linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:10px 1px,10px 1px,1px 10px,1px 10px;animation:1s linear infinite marching-ants}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";background-color:#fff6;display:block;position:absolute}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6667%}.ReactCrop__drag-handle{width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color);position:absolute}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{cursor:nw-resize;top:0;left:0;transform:translate(-50%,-50%)}.ReactCrop .ord-n{cursor:n-resize;top:0;left:50%;transform:translate(-50%,-50%)}.ReactCrop .ord-ne{cursor:ne-resize;top:0;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-e{cursor:e-resize;top:50%;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-se{cursor:se-resize;bottom:0;right:0;transform:translate(50%,50%)}.ReactCrop .ord-s{cursor:s-resize;bottom:0;left:50%;transform:translate(-50%,50%)}.ReactCrop .ord-sw{cursor:sw-resize;bottom:0;left:0;transform:translate(-50%,50%)}.ReactCrop .ord-w{cursor:w-resize;top:50%;left:0;transform:translate(-50%,-50%)}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{width:100%;height:var(--rc-drag-bar-size);top:0;left:0;transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{width:var(--rc-drag-bar-size);height:100%;top:0;right:0;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{width:100%;height:var(--rc-drag-bar-size);bottom:0;left:0;transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{width:var(--rc-drag-bar-size);height:100%;top:0;left:0;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}.app-bg{position:fixed;top:-24px;right:-24px;bottom:-24px;left:-24px;background:#0f172a url(/bg/app-bg.png) center / cover no-repeat;filter:blur(18px) brightness(.42) saturate(.9);z-index:-1}.login-split{display:flex;min-height:100vh;background:#0f172a}.intro-panel{flex:1.2;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:48px;background:linear-gradient(160deg,#0c1222,#162032 40%,#0f172a)}.intro-bg-orbs{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.3;animation:orbFloat 8s ease-in-out infinite alternate}.orb-1{width:320px;height:320px;background:#6366f1;top:-60px;left:-40px}.orb-2{width:240px;height:240px;background:#06b6d4;bottom:10%;right:-30px;animation-delay:2s}.orb-3{width:180px;height:180px;background:#f59e0b;top:50%;left:30%;animation-delay:4s}@keyframes orbFloat{0%{transform:translate(0) scale(1)}to{transform:translate(20px,-15px) scale(1.08)}}.intro-content{position:relative;z-index:1;max-width:480px}.intro-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px;opacity:0;transform:translateY(12px);transition:all .5s ease}.intro-brand.visible{opacity:1;transform:translateY(0)}.brand-icon{font-size:28px}.brand-text{font-size:22px;font-weight:800;color:#f1f5f9;letter-spacing:-.5px}.brand-ver{font-size:11px;background:#334155;color:#94a3b8;padding:2px 8px;border-radius:10px;font-weight:500}.intro-headline{font-size:42px;font-weight:900;line-height:1.15;color:#f8fafc;margin-bottom:16px;opacity:0;transform:translateY(16px);transition:all .6s ease .1s}.intro-headline.visible{opacity:1;transform:translateY(0)}.intro-headline .hl{background:linear-gradient(90deg,#38bdf8,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.intro-sub{font-size:15px;color:#94a3b8;line-height:1.7;margin-bottom:32px;opacity:0;transform:translateY(12px);transition:all .5s ease .2s}.intro-sub.visible{opacity:1;transform:translateY(0)}.intro-features{display:flex;flex-direction:column;gap:14px;margin-bottom:36px;opacity:0;transform:translateY(16px);transition:all .6s ease .3s}.intro-features.visible{opacity:1;transform:translateY(0)}.feat-item{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;background:#1e293bb3;border:1px solid #334155;border-radius:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s,transform .2s}.feat-item:hover{border-color:#6366f1;transform:translate(4px)}.feat-icon{font-size:24px;flex-shrink:0;margin-top:2px}.feat-item strong{display:block;color:#e2e8f0;font-size:14px;margin-bottom:3px}.feat-item p{color:#64748b;font-size:12px;margin:0}.intro-stats{display:flex;gap:16px;opacity:0;transform:translateY(12px);transition:all .5s ease .4s}.intro-stats.visible{opacity:1;transform:translateY(0)}.stat-box{display:flex;flex-direction:column;align-items:center;padding:12px 20px;background:#6366f114;border:1px solid rgba(99,102,241,.2);border-radius:10px}.stat-num{font-size:20px;font-weight:800;color:#a78bfa}.stat-label{font-size:11px;color:#64748b;margin-top:2px}.login-form-panel{flex:.8;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;position:relative;background:#0f172a;border-left:1px solid #1e293b}.intro-skip{position:absolute;top:20px;right:24px;background:transparent;border:none;color:#64748b;font-size:12px;cursor:pointer;transition:color .2s}.intro-skip:hover{color:#38bdf8}.login-card-right{width:100%;max-width:340px;animation:fadeSlideIn .4s ease}.intro-cta-card{text-align:center}.intro-cta-card h3{color:#f1f5f9;font-size:20px;margin-bottom:8px}.intro-cta-card p{color:#64748b;font-size:13px;margin-bottom:20px}.btn-full{width:100%}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 900px){.login-split{flex-direction:column}.intro-panel{padding:32px 24px;min-height:auto}.intro-headline{font-size:28px}.login-form-panel{border-left:none;border-top:1px solid #1e293b;padding:32px 24px}}.task-type-badge{padding:2px 6px;border-radius:4px;font-size:11px;font-weight:700;margin-right:6px}.task-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.task-type-card{background:#0f172a8c;border:2px solid #334155;border-radius:10px;padding:16px;cursor:pointer;transition:all .2s;text-align:center}.client-page{flex:1;padding:24px;max-width:700px;margin:0 auto;width:100%}.client-submit{background:transparent;border:none;border-radius:12px;padding:24px;margin-bottom:24px}.client-submit h3{margin-bottom:16px;color:#f1f5f9;font-size:16px}.client-tasks{background:transparent;border:none;border-radius:12px;padding:24px}.client-tasks h3{margin-bottom:16px;color:#f1f5f9;font-size:16px}.client-task-list{display:flex;flex-direction:column;gap:10px}.client-task-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#0f172a;border:1px solid #334155;border-radius:10px;transition:border-color .2s}.client-task-item.status-completed{border-color:#166534}.client-task-item.status-failed{border-color:#7f1d1d}.client-task-item.status-running{border-color:#1d4ed8}.client-task-icon{font-size:22px;min-width:30px;text-align:center}.client-task-info{flex:1}.client-task-name{font-size:14px;font-weight:500;color:#e2e8f0}.client-task-time{font-size:12px;color:#64748b;margin-top:2px}.client-task-error{font-size:12px;color:#f87171;margin-top:4px}.client-task-actions{display:flex;align-items:center;gap:8px}.admin-page{flex:1;display:flex;flex-direction:column;overflow:hidden}.admin-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#1e293b;border-bottom:1px solid #334155}.admin-topbar-left{display:flex;align-items:center;gap:16px}.admin-topbar h2{color:#f1f5f9;font-size:16px}.vram-display{display:flex;align-items:center;gap:8px}.vram-icon{font-size:12px;color:#94a3b8;white-space:nowrap}.vram-bar{position:relative;width:140px;height:22px;background:#0f172a;border-radius:11px;border:1px solid #334155;overflow:hidden}.vram-bar-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,#1d4ed8,#38bdf8);border-radius:11px;transition:width .4s ease}.vram-text{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:11px;color:#e2e8f0;z-index:1}.vram-running{font-size:11px;color:#38bdf8;white-space:nowrap}.concurrency-pills{display:flex;gap:8px}.pill{padding:4px 10px;border-radius:12px;font-size:12px;background:#334155;color:#94a3b8}.pill-active{background:#1d4ed8;color:#bfdbfe}.admin-nav{display:flex;gap:4px}.admin-nav button{padding:7px 16px;background:transparent;border:1px solid transparent;border-radius:6px;color:#94a3b8;cursor:pointer;font-size:13px;transition:all .15s}.admin-nav button:hover{background:#334155;color:#e2e8f0}.admin-nav button.active{background:#38bdf8;color:#0f172a;font-weight:600}.admin-topbar-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.admin-subnav{display:flex;gap:2px}.admin-subnav button{padding:4px 12px;background:transparent;border:1px solid transparent;border-radius:4px;color:#64748b;cursor:pointer;font-size:12px;transition:all .15s}.admin-subnav button:hover{background:#334155;color:#e2e8f0}.admin-subnav button.active{background:#1e3a5f;color:#7dd3fc;font-weight:500}.admin-body{flex:1;display:flex;overflow:hidden}.logs-panel{flex:1;display:flex;flex-direction:column;background:#1e293b;overflow:hidden}.kanban-board{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px;overflow-x:auto;min-height:0}.kanban-col{display:flex;flex-direction:column;background:#1e293b;border:1px solid #334155;border-radius:12px;overflow:hidden;min-height:0}.kanban-col-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;font-size:13px;font-weight:600;border-bottom:1px solid #334155}.col-queued{background:#422006;color:#fbbf24}.col-running{background:#172554;color:#60a5fa}.col-completed{background:#052e16;color:#4ade80}.col-failed{background:#450a0a;color:#f87171}.col-count{background:#ffffff26;padding:2px 8px;border-radius:10px;font-size:11px}.kanban-col-body{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}.kanban-empty{text-align:center;padding:24px 12px;color:#475569;font-size:13px}.kanban-card{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:8px;font-size:13px;transition:all .15s}.kanban-card.running{border-color:#1d4ed8}.kanban-card.completed{border-color:#166534}.kanban-card.failed{border-color:#7f1d1d}.kanban-card.draggable{cursor:grab}.kanban-card.draggable:active{cursor:grabbing}.kanban-card.dragging{opacity:.4;border-color:#38bdf8}.kanban-card.drag-over{border-color:#38bdf8;box-shadow:0 0 8px #38bdf84d}.kanban-card-grip{color:#475569;font-size:14px;cursor:grab}.kanban-card-content{flex:1;min-width:0}.kanban-card-title{font-size:13px;color:#e2e8f0;display:flex;align-items:center}.kanban-card-meta{font-size:11px;color:#64748b;margin-top:3px}.kanban-card-error{font-size:11px;color:#f87171;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kanban-card-del{background:none;border:none;color:#64748b;cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px}.kanban-card-del:hover{color:#f87171;background:#450a0a}.running-indicator{display:flex;align-items:center;gap:6px;font-size:11px;color:#38bdf8;margin-top:6px}.spinner{display:inline-block;width:12px;height:12px;border:2px solid #334155;border-top-color:#38bdf8;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.logs-panel-header{padding:12px 16px;border-bottom:1px solid #334155}.logs-panel-header h3{font-size:14px;color:#f1f5f9}.logs-panel-header-row{display:flex;align-items:center;justify-content:space-between}.register-count{font-size:13px;color:#94a3b8;background:#33415599;padding:4px 10px;border-radius:999px;white-space:nowrap}.register-count.near{color:#fbbf24;background:#fbbf241f}.register-count.full{color:#f87171;background:#ef444426}.log-container{flex:1;overflow-y:auto;font-family:Consolas,Monaco,monospace;font-size:11px;padding:8px}.log-entry{padding:4px 6px;border-bottom:1px solid #0f172a;display:flex;gap:6px;line-height:1.4}.log-time{color:#475569;white-space:nowrap}.log-level{font-weight:600;min-width:44px}.log-level.info{color:#60a5fa}.log-level.success{color:#4ade80}.log-level.warn{color:#fbbf24}.log-level.error{color:#f87171}.log-msg{color:#94a3b8;word-break:break-all}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0f172a;color:#e2e8f0;min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.login-page{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:100vh;background:#020617}.login-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.login-video-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#02061773}.login-card{position:relative;z-index:1;background:#1e293be0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #334155;border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 20px 60px #0000004d}.login-card h1{text-align:center;margin-bottom:8px;color:#38bdf8;font-size:24px}.login-card .subtitle{text-align:center;color:#94a3b8;margin-bottom:30px;font-size:14px}.register-bonus{text-align:center;color:#fbbf24;font-size:13px;margin:-14px 0 22px;padding:8px;background:#fbbf2414;border:1px dashed rgba(251,191,36,.35);border-radius:8px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;color:#94a3b8;font-size:14px}.form-group input{width:100%;padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#e2e8f0;font-size:14px;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#38bdf8}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:#38bdf8;color:#0f172a;width:100%}.btn-primary:hover{background:#7dd3fc}.btn-success{background:#22c55e;color:#fff}.btn-success:hover{background:#4ade80}.btn-danger{background:#ef4444;color:#fff}.btn-sm{padding:6px 12px;font-size:12px}.error-msg{color:#ef4444;font-size:13px;margin-top:12px;text-align:center}.forgot-row{margin-top:10px;text-align:right}.success-msg{color:#4ade80;font-size:13px;margin-top:12px;text-align:center}.demo-accounts{margin-top:24px;padding-top:20px;border-top:1px solid #334155;font-size:12px;color:#64748b}.demo-accounts p{margin:4px 0}.header{background:#1e293bc7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #334155;padding:12px 24px;display:flex;align-items:center;justify-content:space-between}.header h2{color:#38bdf8;font-size:18px}.header-right{display:flex;align-items:center;gap:12px}.user-badge{background:#334155;padding:6px 12px;border-radius:6px;font-size:13px}.btn-logout{background:#334155;color:#94a3b8;padding:6px 12px;border:none;border-radius:6px;cursor:pointer;font-size:13px}.btn-logout:hover{background:#475569;color:#e2e8f0}.main-content{flex:1;padding:24px;max-width:1200px;margin:0 auto;width:100%}.task-submit{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:24px;margin-bottom:24px}.task-submit h3{margin-bottom:16px;color:#f1f5f9}.task-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.task-type-card{background:#0f172a8c;border:1px solid #334155;border-radius:10px;padding:16px;cursor:pointer;transition:all .2s;text-align:center}.task-type-card:hover{border-color:#38bdf8;transform:translateY(-2px)}.task-type-card .type-label{font-size:20px;font-weight:700;color:#38bdf8}.task-type-card .type-name{font-size:14px;color:#e2e8f0;margin:4px 0}.task-type-card .type-info{font-size:12px;color:#64748b}.task-list{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:24px}.task-list h3{margin-bottom:16px;color:#f1f5f9}.task-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#0f172a8c;border:1px solid #334155;border-radius:8px;margin-bottom:8px}.task-item-left{display:flex;align-items:center;gap:12px}.task-type-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600}.badge-A{background:#164e63;color:#67e8f9}.badge-B{background:#1e3a5f;color:#93c5fd}.badge-C{background:#3b0764;color:#d8b4fe}.status-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.status-queued{background:#422006;color:#fbbf24}.status-running{background:#172554;color:#60a5fa}.status-completed{background:#052e16;color:#4ade80}.status-failed{background:#450a0a;color:#f87171}.task-meta{font-size:12px;color:#64748b}.empty-state{text-align:center;padding:40px;color:#64748b}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width: 768px){.admin-grid{grid-template-columns:1fr}}.panel{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:20px}.panel h3{margin-bottom:16px;color:#f1f5f9;font-size:16px}.panel-full{grid-column:1 / -1}.queue-status{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.queue-card{background:#0f172a;border:1px solid #334155;border-radius:8px;padding:12px;text-align:center}.queue-card .q-label{font-size:12px;color:#64748b}.queue-card .q-value{font-size:24px;font-weight:700;color:#38bdf8}.nav-tabs{display:flex;gap:8px;margin-bottom:20px}.nav-tab{padding:8px 16px;background:#334155;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;font-size:14px}.nav-tab.active{background:#38bdf8;color:#0f172a;font-weight:600}.btn-download{background:#059669;color:#fff;padding:4px 10px;border:none;border-radius:4px;font-size:12px;cursor:pointer}.btn-download:hover{background:#10b981}.btn-download:disabled{background:#334155;color:#64748b;cursor:not-allowed}.task-btn-col{display:flex;flex-direction:column;gap:4px}.btn-feedback{background:#6366f1;color:#fff;padding:4px 10px;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:background .15s}.btn-feedback:hover{background:#818cf8}.task-feedback-area{width:100%;margin-top:8px;padding-top:8px;border-top:1px solid #1e293b}.feedback-submitted{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px}.feedback-text{color:#94a3b8;flex:1}.feedback-edit{background:transparent;border:none;color:#38bdf8;font-size:11px;cursor:pointer;text-decoration:underline}.feedback-input-row{display:flex;gap:6px;align-items:center}.feedback-input{flex:1;background:#0f172a;border:1px solid #334155;border-radius:6px;padding:6px 10px;color:#e2e8f0;font-size:13px;outline:none}.feedback-input:focus{border-color:#6366f1}.btn-feedback-send{background:#6366f1;color:#fff;border:none;border-radius:6px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer}.btn-feedback-send:disabled{background:#334155;color:#64748b;cursor:not-allowed}.task-type-card.selected{border-color:#38bdf8;background:#164e63;box-shadow:0 0 12px #38bdf84d}.confirm-bar{display:flex;align-items:center;gap:12px;margin-top:16px;padding:14px 18px;background:#0f172a;border:1px solid #38bdf8;border-radius:8px;font-size:14px}.confirm-bar span{flex:1;color:#e2e8f0}.btn-cancel{background:#475569;color:#e2e8f0}.btn-cancel:hover{background:#64748b}.btn-cancel-task{background:#7f1d1d;color:#fca5a5;padding:4px 10px;border:none;border-radius:4px;font-size:12px;cursor:pointer}.btn-cancel-task:hover{background:#991b1b;color:#fecaca}.status-cancelled{background:#1e293b;color:#64748b}.settings-body{flex:1;padding:20px;overflow-y:auto}.settings-field{margin-bottom:20px}.settings-field label{display:block;font-size:14px;font-weight:600;color:#e2e8f0;margin-bottom:6px}.settings-hint{font-size:12px;color:#64748b;margin-bottom:10px}.settings-input{width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-size:13px;font-family:Consolas,monospace;margin-bottom:10px}.settings-input:focus{outline:none;border-color:#38bdf8}.settings-msg{margin-top:8px;font-size:12px}.settings-msg.success{color:#4ade80}.settings-msg.error{color:#f87171}.switch-auth{margin-top:20px;padding-top:18px;border-top:1px solid #334155;text-align:center;font-size:13px;color:#94a3b8}.switch-link{background:none;border:none;color:#38bdf8;cursor:pointer;font-size:13px;font-weight:600;padding:0 4px}.switch-link:hover{color:#7dd3fc;text-decoration:underline}.work-hours-indicator{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:6px}.work-hours-indicator.active{background:#052e16;color:#4ade80}.work-hours-indicator.inactive{background:#450a0a;color:#f87171}.work-hours-detail{font-weight:400;opacity:.8;font-size:11px}.work-hours-toggle{margin-bottom:14px}.checkbox-row{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#e2e8f0}.checkbox-row input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#38bdf8}.work-hours-config{background:#0f172a;border:1px solid #334155;border-radius:8px;padding:14px}.time-range{display:flex;gap:16px;margin-bottom:14px}.time-field{display:flex;flex-direction:column;gap:4px;flex:1}.time-field span{font-size:12px;color:#94a3b8}.time-input{width:100%;padding:8px 10px;background:#1e293b;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-size:14px}.time-input:focus{outline:none;border-color:#38bdf8}.day-selector{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.day-btn{width:36px;height:36px;border-radius:50%;border:1px solid #334155;background:#1e293b;color:#64748b;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.day-btn:hover{border-color:#38bdf8}.day-btn.active{background:#38bdf8;color:#0f172a;border-color:#38bdf8}.work-status-info{font-size:13px;color:#94a3b8;padding:8px 0}.work-hours-notice{background:#450a0a;border:1px solid #7f1d1d;border-radius:8px;padding:10px 14px;font-size:13px;color:#fca5a5;margin-bottom:14px}.task-type-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.task-type-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#0f172a;border:1px solid #334155;border-radius:8px}.tt-input{padding:6px 8px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}.tt-input:focus{outline:none;border-color:#38bdf8}.tt-input.tt-flow{width:96px;padding:5px 6px;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;cursor:pointer}.tt-id{width:50px;text-align:center;font-weight:700;text-transform:uppercase}.tt-name{flex:1;min-width:80px}.tt-num{width:60px}.tt-cmd{flex:1;min-width:120px;font-size:11px;font-family:Consolas,Monaco,monospace}.tt-field{display:flex;flex-direction:column;gap:2px}.tt-field span{font-size:10px;color:#64748b;text-align:center}.vram-config-row{display:flex;align-items:center;gap:8px}.vram-input{width:100px}.vram-unit{font-size:14px;color:#94a3b8}.task-type-add{border-top:1px solid #334155;padding-top:14px}.tt-add-title{font-size:13px;color:#94a3b8;margin-bottom:8px}.badge-D{background:#064e3b;color:#6ee7b7}.badge-E{background:#78350f;color:#fcd34d}.badge-F{background:#831843;color:#f9a8d4}.badge-G{background:#312e81;color:#a5b4fc}.badge-H{background:#155e75;color:#67e8f9}.badge-I{background:#581c87;color:#d8b4fe}.badge-J{background:#7c2d12;color:#fdba74}.badge-K{background:#134e4a;color:#5eead4}.badge-L{background:#1e1b4b;color:#c7d2fe}.badge-M{background:#4c0519;color:#fda4af}.badge-N{background:#365314;color:#bef264}.badge-O{background:#831843;color:#f9a8d4}.badge-P{background:#0c4a6e;color:#7dd3fc}.badge-Q{background:#3b0764;color:#d8b4fe}.badge-R{background:#7f1d1d;color:#fca5a5}.badge-S{background:#065f46;color:#6ee7b7}.badge-T{background:#92400e;color:#fcd34d}.badge-U{background:#1e3a8a;color:#93c5fd}.badge-V{background:#4a044e;color:#e9d5ff}.badge-W{background:#164e63;color:#67e8f9}.badge-X{background:#713f12;color:#fde047}.badge-Y{background:#3f3f46;color:#d4d4d8}.badge-Z{background:#18181b;color:#a1a1aa}.task-type-badge:not([class*=badge-]):not([class*=badge-A]):not([class*=badge-B]):not([class*=badge-C]){background:#334155;color:#cbd5e1}.tt-categories{display:flex;gap:4px;flex-wrap:wrap}.cat-btn{padding:5px 10px;background:#1e293b;border:1px solid #334155;border-radius:6px;color:#64748b;font-size:12px;cursor:pointer;transition:all .15s;white-space:nowrap}.cat-btn:hover{border-color:#475569;color:#cbd5e1}.cat-btn.active{background:#0ea5e9;border-color:#0ea5e9;color:#fff;font-weight:600}.tt-checkbox{display:flex;align-items:center;gap:4px;font-size:12px;color:#94a3b8;cursor:pointer;white-space:nowrap}.tt-checkbox input{width:15px;height:15px;cursor:pointer;accent-color:#38bdf8}.upload-zone{margin-top:12px;padding:14px;background:#0f172a;border:1px dashed #334155;border-radius:8px}.file-type-hint{font-size:13px;color:#38bdf8;margin-bottom:6px;font-weight:500}.upload-batch-hint{font-size:12px;color:#64748b;margin-bottom:10px}.upload-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:#1e293b;border:1px solid #38bdf8;border-radius:6px;color:#38bdf8;font-size:14px;cursor:pointer;transition:all .15s}.upload-btn:hover{background:#38bdf8;color:#0f172a}.upload-file-list{margin-top:10px;display:flex;flex-direction:column;gap:6px}.upload-file-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#1e293b;border-radius:4px;font-size:13px}.upload-file-name{flex:1;color:#e2e8f0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-file-size{color:#64748b;font-size:11px;white-space:nowrap}.upload-file-remove{background:none;border:none;color:#ef4444;cursor:pointer;font-size:14px;padding:2px 6px;border-radius:3px}.upload-file-remove:hover{background:#7f1d1d}.client-task-files{font-size:12px;color:#64748b;margin-top:2px}.file-duration{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap}.file-duration.dur-short{background:#064e3b;color:#6ee7b7}.file-duration.dur-long{background:#78350f;color:#fcd34d}.credit-tier{margin-top:12px;padding:12px 16px;border-radius:8px;font-size:14px;color:#e2e8f0}.credit-tier.tier-a{background:linear-gradient(135deg,#0f172a,#064e3b);border:1px solid #34d399}.credit-tier.tier-b{background:linear-gradient(135deg,#0f172a,#78350f);border:1px solid #fbbf24}.credit-tier strong{font-size:16px}.credit-tier.tier-a strong{color:#6ee7b7}.credit-tier.tier-b strong{color:#fcd34d}.credit-tier-reason{color:#94a3b8;font-size:12px;margin-left:6px}.user-tabs{display:flex;gap:4px;padding:12px 16px 0;border-bottom:1px solid #334155;margin-bottom:20px}.user-tabs button{padding:10px 18px;background:transparent;border:none;border-bottom:2px solid transparent;color:#94a3b8;font-size:14px;cursor:pointer;transition:all .2s}.user-tabs button:hover{color:#e2e8f0;background:#1e293b}.user-tabs button.active{color:#38bdf8;border-bottom-color:#38bdf8}.client-credits{padding:0 16px}.credits-balance-card{background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid #38bdf8;border-radius:12px;padding:24px;text-align:center;margin:16px 0}.credits-balance-label{color:#94a3b8;font-size:13px;margin-bottom:4px}.credits-balance-value{font-size:42px;font-weight:700;color:#38bdf8}.credits-balance-unit{color:#64748b;font-size:13px}.credits-history{margin-top:12px}.credit-tx-item{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid #1e293b}.credit-tx-amount{font-weight:700;font-size:16px;min-width:60px}.credit-tx-amount.positive{color:#34d399}.credit-tx-amount.negative{color:#f87171}.credit-tx-info{flex:1}.credit-tx-desc{font-size:14px;color:#e2e8f0}.credit-tx-time{font-size:12px;color:#64748b;margin-top:2px}.credit-tx-type{font-size:12px;padding:2px 8px;border-radius:4px;background:#1e293b;color:#94a3b8}.client-account{padding:0 16px}.account-section{background:#1e293b73;border:1px solid #334155;border-radius:8px;padding:20px;margin-bottom:16px}.account-section h4{margin-bottom:12px;color:#e2e8f0}.account-field-row{display:flex;gap:8px;margin-bottom:8px}.account-input{flex:1;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-size:14px}.account-input:focus{outline:none;border-color:#38bdf8}.account-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.account-info-item{display:flex;flex-direction:column;gap:4px}.account-info-item span{font-size:12px;color:#64748b}.account-info-item strong{font-size:15px;color:#e2e8f0}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;padding:10px 12px;background:#0f172a;color:#94a3b8;font-weight:600;border-bottom:1px solid #334155}.admin-table td{padding:10px 12px;border-bottom:1px solid #1e293b;color:#e2e8f0}.admin-table tr:hover td{background:#1e293b}.admin-table .row-inactive td{opacity:.5}.admin-select{padding:4px 8px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}.td-credits{font-weight:700;color:#38bdf8}.td-positive{color:#34d399;font-weight:600}.td-negative{color:#f87171;font-weight:600}.user-status.active{color:#34d399}.user-status.inactive{color:#f87171}.admin-credits-body,.admin-users-body{padding:16px}.recharge-form{background:#0f172a;border:1px solid #334155;border-radius:8px;padding:16px;margin-bottom:20px}.recharge-form h4{margin-bottom:12px}.recharge-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.recharge-select{min-width:220px}.recharge-input{padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-size:14px;width:100px}.recharge-input.recharge-desc{width:180px}.recharge-input:focus{outline:none;border-color:#38bdf8}.btn-danger{background:#dc2626;color:#fff;border:none;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:13px}.btn-danger:hover{background:#b91c1c}.btn-danger:disabled{opacity:.4;cursor:not-allowed}.mode-selector{margin-top:16px;padding:16px;background:#1e293b;border:1px solid #334155;border-radius:8px}.mode-title{font-size:14px;font-weight:600;color:#94a3b8;margin-bottom:12px}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode-card{padding:16px;background:#0f172a;border:2px solid #334155;border-radius:8px;cursor:pointer;text-align:center;transition:all .2s}.mode-card:hover{border-color:#64748b}.mode-card.selected{border-color:#38bdf8;background:#0f172a;box-shadow:0 0 12px #38bdf826}.mode-icon{font-size:24px;margin-bottom:6px}.mode-name{font-size:15px;font-weight:600;color:#e2e8f0;margin-bottom:4px}.mode-cost{font-size:13px;color:#94a3b8}.mode-cost strong{color:#fbbf24;font-size:16px}.mode-desc{font-size:11px;color:#64748b;margin-top:4px}.mode-balance{margin-top:12px;font-size:13px;color:#94a3b8;text-align:right}.mode-balance strong{color:#38bdf8}.mode-balance.balance-insufficient,.mode-balance.balance-insufficient strong{color:#f87171}.btn-load-more{display:block;width:100%;padding:10px;margin-top:12px;background:#1e293b;border:1px solid #334155;border-radius:6px;color:#94a3b8;font-size:13px;cursor:pointer;transition:all .2s}.btn-load-more:hover{background:#334155;color:#e2e8f0}.audit-action{font-size:12px;padding:2px 8px;border-radius:4px;background:#1e293b;color:#38bdf8;font-family:monospace}.audit-details{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b;font-size:12px}.step-indicator{display:flex;align-items:center;gap:8px;margin:16px 0 20px}.step{display:flex;align-items:center;gap:6px;font-size:13px;color:#475569;transition:color .3s}.step.active{color:#e2e8f0}.step-num{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:#1e293b;border:1px solid #334155;color:#64748b;transition:all .3s}.step.active .step-num{background:#38bdf8;border-color:#38bdf8;color:#0f172a}.step-line{flex:1;height:1px;background:#334155;max-width:40px}.submit-step{animation:stepFadeIn .25s ease}@keyframes stepFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.step-hint{font-size:14px;color:#94a3b8;margin-bottom:12px}.task-select-list{display:flex;flex-direction:column;gap:12px}.task-select-card{padding:16px 20px;background:#1e293b8c;border:1px solid #334155;border-radius:10px;cursor:pointer;transition:all .2s}.task-select-card:hover{border-color:#38bdf8;transform:translate(4px);box-shadow:0 4px 16px #38bdf81a}.task-select-card.disabled{opacity:.5;cursor:not-allowed;border-color:#475569}.task-select-card.disabled:hover{border-color:#475569;transform:none;box-shadow:none}.task-paused-tag{font-size:11px;background:#f59e0b;color:#0f172a;padding:2px 8px;border-radius:4px;font-weight:600;margin-left:auto}.btn-warning{background:#f59e0b;color:#0f172a;border:none}.btn-warning:hover{background:#d97706}.tt-disabled{opacity:.55}.task-select-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.task-select-name{font-size:16px;font-weight:600;color:#e2e8f0}.task-select-desc{font-size:13px;color:#94a3b8;margin-bottom:10px;line-height:1.5}.task-select-meta{display:flex;gap:16px;font-size:12px;color:#64748b}.task-flow-tag{font-size:11px;color:#94a3b8;background:#1e293b;border:1px solid #334155;border-radius:4px;padding:1px 6px}.task-select-go{margin-left:auto;color:#38bdf8;font-weight:600}.step-context{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#0f172a;border:1px solid #334155;border-radius:8px;margin-bottom:16px;font-size:14px;color:#e2e8f0}.step-files-count{font-size:12px;color:#64748b}.btn-step-back{margin-left:auto;padding:4px 12px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .2s}.btn-step-back:hover{border-color:#94a3b8;color:#e2e8f0}.step-actions{display:flex;align-items:center;gap:12px;margin-top:20px}.page-pick-panel{margin-top:16px;padding:20px 24px;background:#1e293b;border:1px solid #334155;border-radius:10px}.page-pick-title{font-size:16px;font-weight:600;color:#e2e8f0;margin-bottom:6px}.page-pick-meta{font-size:13px;color:#94a3b8;margin-bottom:18px}.page-pick-meta strong{color:#38bdf8}.page-range-row{display:flex;align-items:flex-end;gap:12px;margin-bottom:16px}.page-range-field{display:flex;flex-direction:column;gap:6px}.page-range-field label{font-size:12px;color:#64748b}.page-range-field input{width:110px;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-size:16px;font-weight:600;text-align:center}.page-range-field input:focus{outline:none;border-color:#38bdf8}.page-range-sep{font-size:14px;color:#94a3b8;padding-bottom:12px}.page-range-quick{display:flex;gap:8px;margin-bottom:16px}.page-range-quick-btn{padding:6px 14px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .15s}.page-range-quick-btn:hover{border-color:#38bdf8;color:#38bdf8}.page-range-error{font-size:13px;color:#f87171;margin-bottom:12px}.page-pick-summary{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px}.page-pick-cost{font-size:14px;color:#e2e8f0}.page-pick-cost strong{color:#38bdf8}.page-pick-balance{font-size:13px;color:#94a3b8}.page-pick-balance strong{color:#38bdf8}.page-pick-balance.balance-insufficient,.page-pick-balance.balance-insufficient strong{color:#f87171}.page-preview-box{margin-bottom:16px;background:#0f172a;border:1px solid #334155;border-radius:8px;overflow:hidden}.page-preview-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid #334155}.page-preview-badge{margin-left:8px;font-size:11px;padding:2px 8px;border-radius:10px}.page-preview-badge.in{background:#34d39926;color:#34d399}.page-preview-badge.out{background:#94a3b826;color:#94a3b8}.page-preview-img-wrap{position:relative;display:flex;justify-content:center;align-items:center;min-height:240px;max-height:420px;overflow:auto;padding:12px}.page-preview-img{max-width:100%;max-height:400px;object-fit:contain;border-radius:4px}.page-preview-loading,.page-preview-empty{color:#64748b;font-size:13px;padding:40px 0}.page-confirm-panel{display:flex;flex-direction:column;gap:10px;padding:16px;background:#0f172a;border:1px solid #334155;border-radius:8px}.page-confirm-row{display:flex;justify-content:space-between;font-size:14px;color:#94a3b8}.page-confirm-row strong{color:#e2e8f0}.step-warn{font-size:12px;color:#fbbf24}.btn-lg{padding:12px 24px;font-size:15px}.version-badge{font-size:11px;padding:2px 8px;border-radius:10px;background:#1e293b;border:1px solid #334155;color:#64748b;font-family:monospace}.task-id-cell{font-family:monospace;font-size:12px;color:#38bdf8;cursor:help}.output-files-list{max-height:80px;overflow-y:auto}.output-file-item{font-size:11px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.no-files{color:#475569}.admin-feedback-cell{color:#7dd3fc;font-size:12px;cursor:help}.crop-ask-panel{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:24px;text-align:center}.crop-ask-panel h4{color:#f1f5f9;margin-bottom:12px;font-size:18px}.crop-ask-panel p{color:#94a3b8;margin-bottom:16px}.crop-ask-preview{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:20px}.crop-ask-thumb{max-height:180px;max-width:240px;border-radius:8px;border:2px solid #334155;object-fit:contain}.crop-ask-pdf-frame{width:300px;height:200px;border:2px solid #334155;border-radius:8px;background:#fff}.crop-ask-actions{display:flex;gap:16px;justify-content:center;margin-bottom:12px}.crop-ask-actions .btn{flex:1}.crop-ask-hint{font-size:12px;color:#64748b}.crop-panel{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:24px;text-align:center}.crop-panel h4{color:#f1f5f9;margin-bottom:8px;font-size:18px}.crop-hint{color:#94a3b8;margin-bottom:16px;font-size:13px}.crop-container{display:inline-block;margin-bottom:16px;border-radius:8px;overflow:hidden;border:2px solid #475569}.crop-actions{display:flex;gap:12px;justify-content:center}.crop-page-nav{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:10px}.btn-page{padding:5px 14px;background:#334155;border:1px solid #475569;border-radius:6px;color:#e2e8f0;cursor:pointer;font-size:13px;transition:background .15s}.btn-page:hover:not(:disabled){background:#475569}.btn-page:disabled{opacity:.4;cursor:not-allowed}.page-indicator{color:#94a3b8;font-size:13px;min-width:90px;text-align:center}.crop-zoom-bar{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:10px}.btn-zoom{width:32px;height:32px;background:#334155;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.btn-zoom:hover{background:#475569}.zoom-level{color:#94a3b8;font-size:13px;min-width:45px;text-align:center}.btn-zoom-reset{padding:4px 10px;background:transparent;border:1px solid #475569;border-radius:4px;color:#64748b;font-size:12px;cursor:pointer}.btn-zoom-reset:hover{color:#e2e8f0;border-color:#64748b}.crop-list-section{margin-top:14px;border-top:1px solid #334155;padding-top:12px}.crop-list-title{color:#94a3b8;font-size:13px;margin-bottom:8px}.crop-list-thumbs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.crop-thumb-item{position:relative;border:2px solid #38bdf8;border-radius:8px;overflow:hidden;animation:fadeInUp .25s ease;transition:transform .15s,box-shadow .15s}.crop-thumb-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #38bdf840}.crop-thumb-img{height:72px;max-width:140px;object-fit:cover;display:block}.crop-thumb-label{position:absolute;bottom:2px;left:4px;font-size:10px;color:#fff;background:#0f172abf;padding:1px 5px;border-radius:3px}.crop-thumb-del{position:absolute;top:2px;right:2px;width:18px;height:18px;background:#ef4444e6;border:none;border-radius:50%;color:#fff;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.crop-thumb-item:hover .crop-thumb-del{opacity:1}.pianoroll-wrapper{background:#0f172a;border:1px solid #334155;border-radius:8px;overflow:hidden;display:flex;flex-direction:column;height:100%}.pianoroll-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;background:#1e293b;border-bottom:1px solid #334155;flex-shrink:0;min-height:44px;position:sticky;top:0;z-index:10}.pianoroll-info{font-size:12px;color:#94a3b8}.pr-btn{padding:4px 12px;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s}.pr-btn-play{background:#22c55e;color:#fff}.pr-btn-play:hover{background:#4ade80}.pr-btn-stop{background:#ef4444;color:#fff}.pr-btn-stop:hover{background:#f87171}.pr-btn-export{background:#6366f1;color:#fff}.pr-btn-export:hover{background:#818cf8}.pianoroll-timeline{overflow:hidden;background:#111827;border-bottom:1px solid #334155;flex-shrink:0}.pr-timeline-track{position:relative;height:22px;cursor:ew-resize;background:repeating-linear-gradient(to right,#1e293b 0,#1e293b 1px,transparent 1px,transparent 60px)}.pr-playhead{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#ef4444;cursor:ew-resize;z-index:2}.pr-playhead:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #ef4444}.pr-playhead-playing{box-shadow:0 0 6px #ef4444}.pianoroll-statusbar{display:flex;align-items:center;gap:12px;padding:3px 12px;background:#1e293b;border-bottom:1px solid #334155;font-size:11px;flex-shrink:0}.pr-time-label{color:#f1f5f9;font-family:monospace;font-size:12px}.pr-time-hint{color:#64748b}.pr-selected{font-size:11px;color:#fbbf24;margin-left:auto}.pr-bpm-label{display:flex;align-items:center;gap:4px;font-size:12px;color:#94a3b8}.pr-bpm-input,.pr-ts-input{width:52px;padding:2px 6px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;text-align:center}.pr-ts-input{width:40px}.pr-bpm-input:focus,.pr-ts-input:focus{outline:none;border-color:#6366f1}.pr-key-select{padding:2px 4px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;cursor:pointer}.pr-key-select:focus{outline:none;border-color:#6366f1}.pianoroll-scroll{overflow:auto;max-height:300px;will-change:transform}.pianoroll-canvas{display:block}.pianoroll-loading,.pianoroll-error{padding:24px;text-align:center;color:#64748b;font-size:13px}.pianoroll-error{color:#f87171}.review-panel{background:#1e293b;border:1px solid #6366f1;border-radius:12px;padding:16px;margin-top:8px}.review-panel h4{color:#a78bfa;margin-bottom:8px;font-size:14px}.review-panel .review-file-label{color:#94a3b8;font-size:12px;margin-bottom:8px}.review-actions{display:flex;gap:8px;margin-top:12px}.btn-review-confirm{background:#22c55e;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer}.btn-review-confirm:hover{background:#4ade80}.btn-review-edit{background:#6366f1;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:13px;cursor:pointer}.btn-review-edit:hover{background:#818cf8}.btn-review-open{background:#6366f1;color:#fff;border:none;border-radius:6px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer}.btn-review-open:hover{background:#818cf8}.midi-editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0f172a;display:flex;flex-direction:column}.midi-editor-header{display:flex;align-items:center;gap:16px;padding:12px 20px;background:#1e293b;border-bottom:1px solid #334155}.midi-editor-header h3{color:#f1f5f9;font-size:16px;margin:0}.midi-editor-file{color:#94a3b8;font-size:13px}.midi-editor-close{margin-left:auto;background:#334155;border:none;color:#e2e8f0;padding:6px 14px;border-radius:6px;cursor:pointer;font-size:13px}.midi-editor-close:hover{background:#475569}.midi-editor-body{flex:1;overflow:hidden;padding:0;display:flex;flex-direction:column}.midi-editor-body .pianoroll-wrapper{height:100%;display:flex;flex-direction:column}.midi-editor-body .pianoroll-scroll{max-height:none;flex:1;overflow:auto}.midi-editor-footer{display:flex;gap:12px;padding:12px 20px;background:#1e293b;border-top:1px solid #334155}.toast-msg{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#334155;color:#f1f5f9;padding:10px 24px;border-radius:8px;font-size:13px;font-weight:500;z-index:99999;box-shadow:0 4px 12px #0006;animation:toast-in .2s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.submit-success-panel{background:#1e293b;border:1px solid #22c55e;border-radius:12px;padding:40px 24px;text-align:center;animation:fadeInUp .3s ease}.submit-success-icon{font-size:48px;margin-bottom:12px}.submit-success-panel h4{color:#4ade80;font-size:20px;margin-bottom:8px}.submit-success-panel p{color:#94a3b8;font-size:14px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.service-group{margin-bottom:20px}.manual-section{margin-top:30px;border-top:2px solid #7c3aed;padding-top:16px}.manual-section-title{font-size:17px;font-weight:700;color:#c084fc;margin-bottom:4px}.manual-row .tt-name,.manual-row .tt-desc{flex:1;min-width:120px}.service-group-title{font-size:16px;font-weight:700;color:#e2e8f0;margin:14px 0 2px}.service-group-hint{font-size:12px;color:#64748b;margin-bottom:10px}.manual-placeholder-card{border:1px dashed #475569;border-radius:10px;padding:26px 16px;text-align:center;color:#64748b;background:#1e293b66}.manual-placeholder-icon{font-size:28px;margin-bottom:8px}.manual-placeholder-text{font-size:13px}.status-pending-manual,.col-manual{background:#3b0764;color:#c084fc}.manual-service-tag{font-size:11px;background:#7c3aed;color:#fff;padding:2px 8px;border-radius:10px;font-weight:600;white-space:nowrap}.manual-note-zone{background:#1e293b;border:1px solid #334155;border-radius:10px;padding:16px;margin:12px 0}.manual-note-hint{font-size:13px;color:#94a3b8;margin-bottom:10px;line-height:1.5}.manual-note-input{width:100%;box-sizing:border-box;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#e2e8f0;padding:10px 12px;font-size:14px;font-family:inherit;resize:vertical}.manual-note-input:focus{outline:none;border-color:#7c3aed}.manual-price-info{margin-top:10px;font-size:13px;color:#fbbf24;background:#422006;border-radius:8px;padding:10px 12px;line-height:1.5}.manual-confirm-panel{background:#1e293b;border:1px solid #334155;border-radius:10px;padding:16px;margin:12px 0}.manual-confirm-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #293548;font-size:14px}.manual-confirm-row:last-of-type{border-bottom:none}.manual-confirm-row span{color:#94a3b8;flex-shrink:0}.manual-confirm-row strong{color:#e2e8f0;text-align:right}.client-task-note{font-size:12px;color:#c084fc;margin-top:2px;word-break:break-all}.kanban-card.manual{border-color:#7c3aed}.manual-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}.manual-board-card{background:#1e293b;border:1px solid #7c3aed;border-radius:10px;padding:14px}.manual-board-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.manual-board-head strong{color:#e2e8f0;font-size:14px}.manual-board-deposit{margin-left:auto;font-size:12px;color:#fbbf24;background:#422006;padding:2px 8px;border-radius:10px}.manual-board-meta{font-size:12px;color:#64748b;margin:6px 0}.manual-card-note{font-size:12px;color:#c084fc;margin:4px 0;word-break:break-all}.manual-complete-form{margin-top:8px;display:flex;flex-direction:column;gap:6px}.manual-page-input{width:100%;box-sizing:border-box;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;padding:6px 8px;font-size:13px}.manual-page-input:focus{outline:none;border-color:#7c3aed}.manual-file-btn{display:inline-block;background:#1e293b;border:1px dashed #475569;border-radius:6px;color:#94a3b8;font-size:12px;padding:6px 10px;cursor:pointer;text-align:center}.manual-file-btn:hover{border-color:#7c3aed;color:#c084fc}.manual-file-list{display:flex;flex-direction:column;gap:3px}.manual-file-item{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:11px;color:#94a3b8;background:#0f172a;border-radius:4px;padding:3px 6px;overflow:hidden}.manual-file-del{background:none;border:none;color:#f87171;cursor:pointer;font-size:13px;padding:0 2px;flex-shrink:0}.manual-complete-actions{display:flex;gap:6px}.ocr-editor{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0f172a;display:flex;flex-direction:column;color:#e2e8f0}.ocr-loading{padding:60px 20px;text-align:center;color:#94a3b8;font-size:15px}.ocr-toolbar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#1e293b;border-bottom:1px solid #334155;flex-shrink:0}.ocr-toolbar-title{font-size:14px;font-weight:600;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ocr-toolbar-actions{margin-left:auto;display:flex;gap:8px;flex-shrink:0}.ocr-btn{background:#334155;border:none;color:#e2e8f0;padding:6px 14px;border-radius:6px;cursor:pointer;font-size:13px;white-space:nowrap}.ocr-btn:hover:not(:disabled){background:#475569}.ocr-btn:disabled{opacity:.45;cursor:not-allowed}.ocr-btn.primary{background:#2563eb}.ocr-btn.primary:hover:not(:disabled){background:#3b82f6}.ocr-btn.warn{background:#7c2d12}.ocr-btn.warn:hover:not(:disabled){background:#9a3412}.ocr-btn.mode-on{background:#059669;box-shadow:0 0 0 2px #10b98159}.ocr-btn.mode-on:hover:not(:disabled){background:#10b981}.ocr-btn.sm{padding:3px 10px;font-size:12px}.ocr-main{flex:1;display:flex;min-height:0}.ocr-left{flex:1.2;display:flex;flex-direction:column;border-right:1px solid #334155;min-width:0}.ocr-left-header{display:flex;align-items:center;gap:12px;padding:8px 14px;background:#1e293b;border-bottom:1px solid #334155;font-size:13px;color:#94a3b8;flex-shrink:0}.ocr-page-nav{margin-left:auto;display:flex;align-items:center;gap:8px}.ocr-region-banner{display:flex;align-items:center;gap:10px;padding:8px 14px;background:#1e3a5f;border-bottom:1px solid #2563eb;font-size:13px;color:#bfdbfe;flex-shrink:0}.ocr-stage-scroll{flex:1;overflow:auto;padding:32px 16px 16px;background:#0b1120}.ocr-stage{position:relative;display:inline-block;min-width:300px;cursor:crosshair;-webkit-user-select:none;user-select:none}.ocr-page-img{display:block;max-width:100%;pointer-events:none}.ocr-block{position:absolute;border:1.5px solid #22d3ee;background:#22d3ee0f;box-sizing:border-box;cursor:pointer}.ocr-block:hover{border-color:#67e8f9;background:#22d3ee29}.ocr-block.appended{border-color:#a78bfa;background:#a78bfa14}.ocr-block.highlight{border-color:#fbbf24;background:#fbbf2426}.ocr-block.flash{border-color:#fbbf24;background:#fbbf244d;box-shadow:0 0 0 3px #fbbf2499}.ocr-block-label{position:absolute;top:-18px;left:-1.5px;background:#0e7490;color:#ecfeff;font-size:10px;padding:1px 6px;border-radius:3px 3px 0 0;white-space:nowrap;pointer-events:none}.ocr-block.appended .ocr-block-label{background:#6d28d9}.ocr-block-btn{width:22px;height:22px;border:none;border-radius:4px;cursor:pointer;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}.ocr-block-btn.edit{background:#1e293b;color:#fbbf24}.ocr-block-btn.edit:hover{background:#334155}.ocr-block-btn.del{background:#7f1d1d;color:#fecaca}.ocr-block-btn.del:hover{background:#991b1b}.ocr-md-editbox{display:flex;flex-direction:column;gap:4px}.ocr-md-editbox textarea{min-height:70px;resize:vertical;background:#0f172af2;color:#f1f5f9;border:1px solid #fbbf24;border-radius:4px;padding:6px;font-size:12px;font-family:inherit}.ocr-block-editbtns{display:flex;gap:6px;justify-content:flex-end}.ocr-select-rect{position:absolute;border:2px solid #ef4444;background:#ef444426;pointer-events:none}.ocr-pending-rect{position:absolute;border:2px dashed #a78bfa;background:#a78bfa1a;pointer-events:none}.ocr-hint{padding:6px 14px;font-size:11px;color:#64748b;background:#1e293b;border-top:1px solid #334155;flex-shrink:0}.ocr-right{flex:1;display:flex;flex-direction:column;min-width:0}.ocr-right-tabs{display:flex;background:#1e293b;border-bottom:1px solid #334155;flex-shrink:0}.ocr-right-tabs button{background:none;border:none;color:#94a3b8;padding:10px 20px;cursor:pointer;font-size:13px;border-bottom:2px solid transparent}.ocr-right-tabs button.active{color:#f1f5f9;border-bottom-color:#2563eb}.ocr-right-body{flex:1;overflow:auto;padding:14px}.ocr-markdown-view,.ocr-json-view{margin:0;font-size:13px;line-height:1.7;color:#cbd5e1;white-space:pre-wrap;word-break:break-word;font-family:Consolas,Microsoft JhengHei,monospace}.ocr-md-block{padding:8px 10px;margin-bottom:10px;background:#1e293b99;border-left:3px solid #22d3ee;border-radius:4px}.ocr-md-block.editable{cursor:grab}.ocr-md-block.editable:active{cursor:grabbing}.ocr-md-block:hover,.ocr-md-block.linked{background:#334155d9;border-left-color:#67e8f9}.ocr-md-block.flash{border-left-color:#fbbf24;background:#fbbf242e;box-shadow:0 0 0 1px #fbbf2480}.ocr-md-block.dragging{opacity:.55;border-left-color:#fbbf24}.ocr-md-block.editing{border-left-color:#fbbf24}.ocr-md-block-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;gap:6px}.ocr-md-block-label{font-size:10px;color:#67e8f9;background:#22d3ee1f;padding:1px 6px;border-radius:3px}.ocr-md-block-actions{display:flex;gap:4px}.ocr-md-block-content{white-space:pre-wrap;word-break:break-word}.ocr-md-pagesep{color:#64748b;font-size:12px;margin:14px 0 8px;text-align:center}.ocr-json-view{font-size:12px;color:#94a3b8}.ocr-busy-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#0f172a99;display:flex;align-items:center;justify-content:center;color:#f1f5f9;font-size:15px}.ocr-toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%);z-index:10001;background:#1e293b;border:1px solid #334155;color:#e2e8f0;padding:10px 22px;border-radius:8px;font-size:14px;box-shadow:0 4px 16px #0006}.btn-ocr-editor{background:#0e7490;color:#ecfeff;border:none;padding:5px 12px;border-radius:6px;cursor:pointer;font-size:12px}.btn-ocr-editor:hover{background:#0891b2}.badge-P{background:#155e75!important;color:#a5f3fc!important}
