:root { color-scheme: light; }
html, body, #root { width:100%; min-height:100%; margin:0; }
body { font-family:Inter,"Microsoft YaHei",system-ui,sans-serif; background:#f7f9fc; color:#263249; }
.studio-shell { height:100dvh; display:flex; width:100%; }
.studio-workbench { width:100%; min-width:0; min-height:0; display:flex; position:relative; }
.studio-workbench > .u-series-composer { height:100%; padding-top:4px; }
.studio-back { position:absolute; top:2px; left:18px; z-index:45; display:flex; align-items:center; min-height:30px; padding:3px 11px; border:1px solid #dde5f0; border-radius:9px; background:white; color:#52617b; font-size:13px; font-weight:600; box-shadow:0 1px 3px #2434490d; cursor:pointer; }
.studio-back:hover { border-color:#b5a2f4; color:#7c3aed; }
.studio-assets { width:100%; position:relative; padding:48px 24px 24px; overflow:auto; }
.studio-home { width:min(100%,1060px); margin:0 auto; padding:28px 36px 64px; overflow:auto; }
.home-header, .engine-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.home-actions { display:flex; gap:10px; align-items:center; }
.home-actions a { text-decoration:none; }
.studio-wordmark { font-size:16px; font-weight:850; letter-spacing:2px; color:#693ded; }
.subtle-button { border:1px solid #e0e5ef; border-radius:9px; padding:8px 13px; background:#fff; color:#6b7285; font-size:12px; cursor:pointer; }
.home-hero { margin:72px 0 34px; }
.eyebrow { font-size:11px; font-weight:700; letter-spacing:2px; color:#8d77c3; }
.home-hero h1 { font-size:46px; line-height:1.25; font-weight:800; letter-spacing:-1.8px; margin:16px 0; }
.home-hero > p:last-child { font-size:14px; color:#8190a6; }
.studio-card { width:100%; display:flex; align-items:stretch; gap:32px; text-align:left; padding:0; overflow:hidden; border:1px solid #e2ddf7; border-radius:22px; background:white; box-shadow:0 12px 40px #51349609; cursor:pointer; transition:transform .2s,box-shadow .2s; }
.studio-card:hover { transform:translateY(-3px); box-shadow:0 18px 44px #51349614; }
.card-art { flex:0 0 230px; min-height:250px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:48px; font-weight:900; letter-spacing:-2px; background:radial-gradient(ellipse at 20% 5%,#d5adff 0,transparent 55%),radial-gradient(ellipse at 85% 90%,#414ce4 0,transparent 60%),linear-gradient(135deg,#a05beb,#713ae8); }
.card-content { padding:36px 32px 30px 0; display:flex; flex-direction:column; justify-content:center; gap:14px; }
.card-tag { color:#8b5cf6; font-size:12px; font-weight:700; }
.card-content strong { font-size:23px; font-weight:750; }
.card-content > span:nth-child(3) { font-size:13px; color:#8d95a9; }
.card-link { margin-top:6px; font-size:13px; font-weight:700; color:#7c3aed; }
.engine-card { margin-top:24px; padding:25px 28px; background:white; border:1px solid #e2e7f0; border-radius:18px; }
.engine-card h2 { font-size:15px; font-weight:750; }
.engine-card p { font-size:12px; color:#929bae; margin:10px 0 16px; }
.engine-card form { display:flex; gap:10px; }
.engine-card input { flex:1; min-width:0; height:40px; border:1px solid #dfe5ef; border-radius:10px; background:#f9fbfe; padding:0 14px; font-size:13px; color:#52617b; }
.engine-card button[type=submit] { border:0; border-radius:10px; padding:0 20px; color:white; background:#7c3aed; font-size:12px; font-weight:700; cursor:pointer; }
.engine-card button:disabled { opacity:.65; cursor:wait; }
.engine-card p.connection-ok { color:#10a577; margin-bottom:0; }
.engine-card p.connection-message { color:#b77915; margin-bottom:0; }
.startup { padding:48px; color:#8b5cf6; }
.admin-root { --admin-bg:#0a1020; --admin-panel:#101a2c; --admin-border:#25324a; --admin-text:#e3eaf8; --admin-muted:#92a2bb; background:var(--admin-bg); color:var(--admin-text); color-scheme:dark; width:100%; height:100dvh; overflow:auto; }
.admin-root, .admin-root * { box-sizing:border-box; }
.admin-root a { text-decoration:none; }
.admin-root button, .admin-root input { font:inherit; }
.admin-login-page { display:flex; align-items:center; justify-content:center; padding:32px 20px; background:radial-gradient(ellipse at 30% 0%,#35245966,transparent 55%),radial-gradient(ellipse at 100% 100%,#17354d55,transparent 55%),var(--admin-bg); }
.admin-login-card { width:420px; max-width:100%; padding:36px; background:#101a2cef; border:1px solid var(--admin-border); border-radius:22px; box-shadow:0 30px 100px #0005; }
.admin-brand { display:flex; align-items:center; gap:12px; font-size:15px; font-weight:800; letter-spacing:1px; color:var(--admin-text); }
.admin-brand-icon { display:grid; place-items:center; width:39px; height:39px; background:linear-gradient(145deg,#a769ff,#7044e8); border-radius:12px; font-size:22px; color:white; }
.admin-brand small { display:block; color:var(--admin-muted); font-size:11px; font-weight:400; letter-spacing:1px; margin-top:3px; }
.admin-login-intro { margin:40px 0 28px; }
.admin-eyebrow { font-size:10px; font-weight:700; letter-spacing:2px; color:#aa92e5; margin:0 0 9px; }
.admin-login-intro h1 { font-size:25px; letter-spacing:-.5px; margin:0 0 12px; font-weight:750; }
.admin-login-intro > p:last-child { margin:0; color:var(--admin-muted); font-size:13px; }
.admin-form { display:flex; flex-direction:column; gap:20px; }
.admin-form label { font-size:13px; font-weight:600; color:var(--admin-text); display:flex; flex-direction:column; gap:9px; }
.admin-root .admin-form input, .admin-root .admin-engine input { border:1px solid var(--admin-border); background:#070e1c; color:var(--admin-text); border-radius:10px; width:100%; height:44px; padding:0 14px; font-size:13px; box-sizing:border-box; outline:none; }
.admin-root input:focus { border-color:#8b5cf6; box-shadow:0 0 0 3px #8b5cf61a; }
.admin-root input::placeholder { color:#64748b; }
.admin-password-input { position:relative; }
.admin-password-input input { padding-right:62px!important; }
.admin-password-toggle { position:absolute; right:12px; top:0; bottom:0; color:#a5b0c4; font-size:11px!important; background:none; border:0; padding:0; cursor:pointer; }
.admin-primary { background:#7c3aed; color:white; border:0; border-radius:10px; min-height:44px; font-size:13px!important; font-weight:700!important; cursor:pointer; }
.admin-primary:hover { background:#8b4cf4; }
.admin-root button:disabled { opacity:.6; cursor:wait; }
.admin-message { font-size:12px; color:#e9bd79; margin:0; line-height:1.7; }
.admin-back-link { display:block; font-size:12px; color:var(--admin-muted); margin-top:24px; text-align:center; }
.admin-layout { display:flex; }
.admin-sidebar { width:230px; flex-shrink:0; border-right:1px solid #1d293f; padding:28px 20px; display:flex; flex-direction:column; }
.admin-sidebar .admin-brand { margin:0 4px 40px; }
.admin-nav-caption { color:#64748b; font-size:11px; margin:0 14px 12px; }
.admin-sidebar nav { display:flex; flex-direction:column; gap:7px; }
.admin-nav { display:flex; align-items:center; gap:12px; background:transparent; color:#94a3bd; border:0; border-radius:10px; min-height:43px; text-align:left; padding:0 14px; font-size:13px!important; cursor:pointer; }
.admin-nav span { font-size:19px; }
.admin-nav:hover { background:#ffffff05; color:#d9e1f0; }
.admin-nav.active { background:#7c3aed22; color:#c3a6ff; }
.admin-return { margin-top:auto; padding:16px 14px 0; color:#92a2bb; font-size:12px; }
.admin-main { min-width:0; flex:1; padding:35px 40px 48px; overflow:auto; }
.admin-topbar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:35px; }
.admin-topbar h1 { margin:0; font-size:24px; font-weight:750; }
.admin-user { display:flex; align-items:center; gap:10px; font-size:12px; color:#a5b4cb; }
.admin-avatar { display:grid; place-items:center; border:1px solid #4d3d73; background:#281d40; color:#c4a8ff; border-radius:50%; width:30px; height:30px; font-size:12px; font-weight:800; }
.admin-secondary { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--admin-border); color:var(--admin-text); padding:8px 13px; border-radius:10px; font-size:12px!important; background:transparent; cursor:pointer; }
.admin-secondary:hover { border-color:#67518e; }
.admin-root .admin-engine { margin:0; padding:25px 28px; background:var(--admin-panel); border-color:var(--admin-border); max-width:1150px; }
.admin-root .admin-engine h2 { margin:0; font-size:14px; color:var(--admin-text); }
.admin-root .admin-engine p { color:var(--admin-muted); }
.admin-root .admin-engine form { gap:10px; }
.admin-root .admin-engine input { flex:1 1 auto; min-height:40px; height:40px; }
.admin-root .admin-engine button[type=submit] { flex:0 0 auto; min-width:100px; white-space:nowrap; background:#7c3aed; }
.admin-root .admin-engine p.connection-ok { color:#55d6a1; }
.admin-root .admin-engine p.connection-message { color:#e9bd79; }
.admin-account-card { max-width:530px; border:1px solid var(--admin-border); background:var(--admin-panel); padding:28px; border-radius:18px; }
.admin-account-card h2 { font-size:16px; font-weight:700; margin:0; }
.admin-description { color:var(--admin-muted); font-size:12px; margin:10px 0 25px; }
@media(max-width:767px) {
  .admin-root { height:auto; min-height:100dvh; }
  .admin-layout { flex-direction:column; }
  .admin-sidebar { width:100%; padding:20px 18px 14px; border-right:0; border-bottom:1px solid var(--admin-border); }
  .admin-sidebar .admin-brand { margin:0 0 20px; }
  .admin-nav-caption { display:none; }
  .admin-sidebar nav { flex-direction:row; }
  .admin-nav { flex:1; justify-content:center; }
  .admin-return { position:absolute; right:20px; top:29px; padding:0; }
  .admin-main { padding:25px 18px 40px; }
  .admin-topbar { align-items:flex-start; gap:12px; margin-bottom:24px; }
  .admin-topbar h1 { font-size:21px; }
  .admin-user { flex-wrap:wrap; justify-content:flex-end; }
  .admin-root .admin-engine { padding:22px; }
  .admin-root .admin-engine form { flex-direction:column; }
  .admin-root .admin-engine button[type=submit] { min-height:40px; }
  .admin-login-card { padding:30px 26px; }
}
[data-theme=dark] { color-scheme:dark; }
[data-theme=dark] body { background:#0a1020; color:#e1e8f3; }
[data-theme=dark] .studio-back, [data-theme=dark] .subtle-button, [data-theme=dark] .engine-card, [data-theme=dark] .studio-card { background:#111a2d; border-color:#25324a; color:#e0e7f5; }
[data-theme=dark] .engine-card input { background:#0c1424; border-color:#28364e; color:#c5d1e6; }
@media(max-width:1023px) {
  html, body, #root { height:auto; min-height:100dvh; overflow:visible; }
  html { scrollbar-gutter:auto; }
  body { overflow-x:hidden; }
  .studio-shell { height:auto; min-height:100dvh; }
  .studio-workbench { min-height:100dvh; }
  .studio-workbench > .u-series-composer { height:auto; }
}
@media(max-width:767px) { .studio-home { padding:22px 18px 40px; } .home-hero { margin-top:44px; } .home-hero h1 { font-size:32px; } .studio-card { flex-direction:column; gap:0; } .card-art { flex-basis:auto; min-height:140px; font-size:44px; } .card-content { padding:26px; } .card-content strong { font-size:19px; } .engine-card { padding:22px; } .engine-card form { flex-direction:column; } .engine-card button[type=submit] { min-height:40px; } }

/* Multi-user studio and management console */
.studio-shell { height:100dvh; padding-top:55px; box-sizing:border-box; }
.registration-card { margin:28px auto; max-width:500px; }
.registration-code-row { display:flex; gap:10px; min-width:0; }
.registration-code-row input { min-width:0; flex:1; }
.registration-code-row button { flex:none; }
.registration-notice { color:var(--admin-muted); font-size:12px; line-height:1.8; margin:0; }
.admin-root .registration-consent { display:flex; flex-direction:row; align-items:center; gap:10px; font-size:12px; }
.admin-root .registration-consent input { width:16px; height:16px; min-height:0; flex:none; }
.link-button { border:0; background:transparent; cursor:pointer; width:100%; }
.admin-sidebar { overflow:auto; }
@media(max-width:1023px){.studio-shell { height:auto; min-height:100dvh; }}
.user-toolbar { position:fixed; inset:0 0 auto; height:55px; background:#ffffffef; border-bottom:1px solid #e5e1ee; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:0 24px; z-index:100; box-sizing:border-box; backdrop-filter:blur(15px); }
.user-toolbar button { background:none; border:0; color:#655b7c; font:inherit; font-size:12px; cursor:pointer; padding:8px; }
.user-toolbar .user-logo { color:#7c3aed; font-weight:850; font-size:15px; }
.user-toolbar-actions { display:flex; gap:8px; align-items:center; }
.user-board { max-width:1140px; margin:15px auto; padding:16px; }
.user-board h1 { font-size:26px; font-weight:750; margin:8px 0 16px; }
.user-muted { color:#8a829b; font-size:12px; margin:10px 0; }
.user-task-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:18px; margin-top:24px; }
.user-task-card { background:#fff; border:1px solid #e4deef; border-radius:17px; padding:20px; overflow:hidden; min-width:0; }
.user-task-card strong { font-size:14px; overflow-wrap:anywhere; }
.user-task-top { display:flex; align-items:start; justify-content:space-between; gap:12px; }
.user-task-card video,.user-task-card img { width:100%; max-height:280px; object-fit:contain; border-radius:10px; background:#151022; margin-bottom:12px; }
.user-task-card audio { max-width:100%; margin:12px 0; }
.user-task-card progress { width:100%; height:8px; accent-color:#8b5cf6; margin:12px 0; }
.task-badge { display:inline-block; white-space:nowrap; padding:5px 9px; font-size:11px; border-radius:20px; background:#8b5cf61a; color:#9863ed; }
.task-badge.done { background:#10b9811c; color:#22b887; }.task-badge.error,.task-badge.attention { background:#ef44441a; color:#ed7272; }
.user-empty { border:1px dashed #b8a9d2; padding:52px 20px; border-radius:16px; text-align:center; color:#9485ae; margin-top:30px; }
.user-tabs { display:flex; gap:10px; align-items:center; }.user-tabs button { background:none; border:1px solid #b8a9d255; border-radius:9px; padding:8px 14px; color:inherit; cursor:pointer; }.user-tabs button.active { background:#8b5cf622; color:#a774ff; }
.user-download { color:#9461e8; font-size:12px; display:inline-block; padding:8px 0; }
.user-text-result { white-space:pre-wrap; font-size:12px; max-height:300px; overflow:auto; }
.user-quota { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:30px 0; }.user-quota>div { padding:24px; border:1px solid #b8a9d244; border-radius:16px; }.user-quota strong { display:block; font-size:21px; }.user-quota span { display:block; margin-top:10px; color:#9386a8; font-size:12px; }
.user-password-form { display:flex; flex-direction:column; gap:18px; max-width:440px; }.user-password-form label { display:flex; flex-direction:column; gap:8px; font-size:13px; }.user-password-form input { height:42px; border:1px solid #b8a9d266; background:transparent; color:inherit; border-radius:10px; padding:0 12px; }
.machine-request-card { max-width:560px; }.machine-request-card select,.machine-request-card input[type=number] { height:44px; border:1px solid #b8a9d266; background:transparent; color:inherit; border-radius:10px; padding:0 12px; }.machine-request-panel .admin-request-actions { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }.machine-request-panel .admin-request-actions input { width:220px; height:34px; padding:0 8px; color:var(--admin-text); background:#070e1c; border:1px solid var(--admin-border); border-radius:7px; }
.machine-select-form { display:flex; flex-direction:column; gap:14px; }.machine-select-label { margin:0; color:var(--admin-muted); font-size:13px; }.machine-gpu-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.machine-gpu-option { min-height:44px; padding:8px 6px; border:1px solid #b8a9d266; border-radius:8px; background:transparent; color:inherit; cursor:pointer; }.machine-gpu-option span { display:block; color:var(--admin-muted); font-size:11px; margin-top:3px; }.machine-gpu-option.active { border-color:#6955ff; color:#5c56ff; box-shadow:0 0 0 1px #6955ff33; }.machine-disk-row { display:flex; flex-wrap:wrap; align-items:center; gap:9px; font-size:13px; }.machine-disk-row input[type=number] { width:92px; height:36px; }.machine-disk-row input[type=checkbox] { accent-color:#6955ff; }
.machine-dialog { --admin-panel:#101a2c; --admin-border:#25324a; --admin-text:#e3eaf8; --admin-muted:#92a2bb; position:fixed; inset:50dvh auto auto 50vw; margin:0; transform:translate(-50%,-50%); width:min(560px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 32px); padding:0; border:0; border-radius:22px; background:var(--admin-panel); color:var(--admin-text); color-scheme:dark; overflow:auto; box-shadow:0 30px 100px #0008; }
.machine-dialog,.machine-dialog * { box-sizing:border-box; }
.machine-dialog::backdrop { background:#030712b3; backdrop-filter:blur(4px); }
.machine-dialog .machine-request-card { position:relative; width:100%; max-width:none; padding:36px; background:var(--admin-panel); border-color:var(--admin-border); box-shadow:none; }
.machine-dialog .admin-login-intro { margin:8px 0 28px; padding-right:20px; }
.machine-dialog .admin-login-intro h1 { font-size:25px; line-height:1.4; }
.machine-dialog .machine-select-form { margin-bottom:14px; }
.machine-dialog button,.machine-dialog input { font:inherit; }
.machine-dialog .machine-gpu-option.active { color:#c4b5fd; }
.machine-dialog .admin-primary:disabled { opacity:.55; cursor:default; }
.machine-dialog-close { position:absolute; top:12px; right:12px; display:grid; place-items:center; width:36px; height:36px; border:0; border-radius:9px; background:transparent; color:var(--admin-muted); font-size:24px!important; cursor:pointer; }
.machine-dialog-close:hover { background:#25324a; color:var(--admin-text); }
.machine-pending { display:grid; gap:12px; }
@media(max-width:600px){.machine-dialog .machine-request-card { padding:28px 22px; }.machine-dialog .admin-login-intro h1 { font-size:22px; }}
.admin-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:18px; margin-bottom:24px; }.admin-stat,.admin-panel { padding:24px; border:1px solid var(--admin-border); border-radius:16px; background:var(--admin-panel); }.admin-stat strong { font-size:28px; display:block; }.admin-stat span { color:var(--admin-muted); font-size:12px; }.admin-panel { margin-bottom:22px; }.admin-panel h2 { font-size:16px; margin:0 0 18px; }.admin-inline-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; align-items:end; }.admin-inline-form label { display:flex; flex-direction:column; gap:9px; color:var(--admin-muted); font-size:12px; }.admin-root select,.admin-inline-form input { width:100%; height:42px; padding:0 12px; color:var(--admin-text); background:#070e1c; border:1px solid var(--admin-border); border-radius:9px; box-sizing:border-box; }.admin-root .admin-form select { flex:1; }.admin-table-wrap { overflow:auto; }.admin-table { width:100%; border-collapse:collapse; font-size:12px; }.admin-table th { color:var(--admin-muted); font-weight:500; text-align:left; padding:13px 10px; border-bottom:1px solid var(--admin-border); white-space:nowrap; }.admin-table td { padding:14px 10px; border-bottom:1px solid #25324a88; max-width:300px; overflow-wrap:anywhere; }.admin-table .admin-secondary { padding:6px 9px; margin:3px; white-space:nowrap; }.admin-row-editor { display:flex; flex-wrap:wrap; gap:10px; padding:18px; background:#070e1c; border-radius:10px; }.admin-url { font-size:11px; color:var(--admin-muted); }.admin-asset-link { color:#b597ec; }.admin-empty { color:var(--admin-muted); padding:25px; }.admin-message-global { background:#342a1866; border:1px solid #72604266; padding:12px 16px; border-radius:10px; color:#e9bd79; margin-bottom:20px; font-size:12px; }
[data-theme=dark] .user-toolbar { background:#0f172aef; border-color:#2c3547; }[data-theme=dark] .user-toolbar button { color:#b7bfd2; }[data-theme=dark] .user-task-card { background:#142035; border-color:#35405a; }
@media(max-width:760px){.user-toolbar { padding:0 8px; }.user-toolbar-actions { gap:0; }.user-toolbar button { padding:8px 5px; font-size:11px; }.user-toolbar .user-logo { font-size:12px; }.user-board { padding:0; }.user-quota { grid-template-columns:1fr; }.user-task-grid { grid-template-columns:1fr; }.admin-grid { grid-template-columns:1fr 1fr; }.admin-panel { padding:16px; }.admin-sidebar nav { flex-wrap:wrap; }.admin-inline-form { grid-template-columns:1fr; }}

.user-space-name { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #9575de; font-size: 13px; }
.admin-form select { min-height: 44px; border: 1px solid #d6cce8; border-radius: 9px; padding: 10px; background: var(--admin-field, #fff); color: #292238; }
@media(max-width:600px) { .user-space-name { max-width: 100px; } .user-toolbar-actions { flex-wrap: wrap; } }
