:root{color-scheme:dark;--bg: #07111f;--bg-elevated: rgba(15, 26, 46, .9);--bg-panel: rgba(17, 29, 51, .88);--border: rgba(145, 175, 235, .22);--border-strong: rgba(125, 174, 255, .38);--text: #eef4ff;--muted: #98a6c8;--accent: #5f9cff;--accent-2: #7ce0ff;--success: #7ce3a3;--warning: #ffd66e;--danger: #ff8f96;--shadow: 0 22px 60px rgba(0, 0, 0, .36);--button-radius: 22px}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;background:radial-gradient(circle at top left,rgba(78,127,255,.18),transparent 30%),radial-gradient(circle at 85% 12%,rgba(0,198,255,.12),transparent 26%),linear-gradient(180deg,#0a1222,#08111f 46%,#040912);color:var(--text);font-family:Avenir Next,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}button{font-size:30px;font-family:inherit}input,textarea,select{font:inherit}.portal-shell{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:100vh}.portal-sidebar{position:sticky;top:0;min-height:100vh;padding:28px 22px 24px;background:linear-gradient(180deg,#0f192cf7,#0a111ffa),radial-gradient(circle at top,rgba(116,166,255,.18),transparent 35%);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:18px;box-shadow:inset -1px 0 #ffffff08}.portal-brand{display:grid;gap:10px}.portal-brand-title{margin:0;font-size:44px;font-weight:800;letter-spacing:.02em}.portal-brand-subtitle{margin:0;color:var(--muted);font-size:18px;line-height:1.6}.portal-user{padding:18px;border-radius:24px;background:#ffffff08;border:1px solid var(--border);display:grid;gap:6px}.portal-user strong{font-size:24px}.portal-user span{color:var(--muted);font-size:16px}.portal-nav{display:grid;gap:12px}.portal-nav-button,.portal-button,.portal-button-secondary,.portal-button-danger{min-height:68px;border:0;border-radius:var(--button-radius);padding:14px 22px;color:#f7fbff;cursor:pointer;transition:transform .18s ease,filter .18s ease,border-color .18s ease,background .18s ease}.portal-nav-button,.portal-button{background:linear-gradient(135deg,#5b89ff,#4dbeff);box-shadow:0 14px 28px #4077ff3d}.portal-button-secondary{background:#ffffff0a;border:1px solid var(--border-strong)}.portal-button-danger{background:linear-gradient(135deg,#cf5068,#f07867);box-shadow:0 14px 28px #f0506838}.portal-nav-button:hover,.portal-button:hover,.portal-button-secondary:hover,.portal-button-danger:hover{transform:translateY(-1px);filter:brightness(1.06)}.portal-nav-button.is-active{background:linear-gradient(135deg,#7ab4ff,#7ce0ff);color:#041322}.portal-nav-spacer{flex:1 1 auto}.portal-main{padding:28px}.portal-page{display:grid;gap:20px}.portal-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:28px 30px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:34px;box-shadow:var(--shadow)}.portal-page-head h2{margin:0;font-size:46px;line-height:1.08}.portal-page-head p{margin:10px 0 0;color:var(--muted);font-size:18px;line-height:1.7}.portal-page-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.portal-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:30px;padding:24px;box-shadow:var(--shadow)}.portal-panel h3{margin:0 0 14px;font-size:28px}.portal-status-row{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;color:var(--muted);font-size:16px}.portal-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:6px 14px;border-radius:999px;background:#ffffff0f;font-weight:700}.portal-status-pill.is-success{color:var(--success)}.portal-status-pill.is-warning{color:var(--warning)}.portal-status-pill.is-danger{color:var(--danger)}.portal-login{max-width:780px;margin:0 auto}.portal-login-card{display:grid;gap:20px}.portal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.portal-field,.portal-field-wide{display:grid;gap:8px}.portal-field-wide{grid-column:1 / -1}.portal-field label,.portal-field-wide label{font-size:18px;color:var(--muted);letter-spacing:.02em}.portal-input,.portal-select,.portal-textarea{width:100%;min-height:64px;border-radius:20px;border:1px solid var(--border);background:#040a14b8;color:var(--text);padding:14px 18px;font-size:22px}.portal-textarea{min-height:180px;resize:vertical}.portal-checkbox-row{display:flex;align-items:center;gap:12px;min-height:64px}.portal-checkbox-row input{width:26px;height:26px}.portal-helper{color:var(--muted);font-size:14px;line-height:1.5}.portal-inline-actions,.portal-toolbar{display:flex;flex-wrap:wrap;gap:12px}.portal-diy-grid{display:grid;grid-template-columns:minmax(380px,.9fr) minmax(340px,.82fr) minmax(320px,.78fr);gap:18px;align-items:start}.portal-preview-frame{display:grid;gap:14px;justify-items:center}.portal-preview-image{width:min(100%,420px);max-height:720px;object-fit:contain;filter:drop-shadow(0 26px 38px rgba(0,0,0,.34))}.portal-preview-empty{width:100%;min-height:620px;border-radius:26px;border:1px dashed rgba(160,188,237,.26);display:grid;place-items:center;color:var(--muted);font-size:18px;text-align:center;padding:24px}.portal-range-field{display:grid;gap:8px}.portal-range-head{display:flex;justify-content:space-between;gap:12px;font-size:16px;color:var(--muted)}.portal-range-field input[type=range]{width:100%}.portal-payload-box,.portal-log-box{min-height:220px;padding:16px;border-radius:20px;background:#030811d6;border:1px solid rgba(255,255,255,.06);color:#d6e5ff;font-family:SFMono-Regular,Menlo,Monaco,monospace;font-size:14px;line-height:1.55;overflow:auto;white-space:pre-wrap;word-break:break-word}.portal-record-list,.portal-job-list,.portal-asset-grid{display:grid;gap:12px}.portal-asset-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start}.portal-record-card,.portal-job-card,.portal-asset-card{padding:16px;border-radius:22px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;display:grid;gap:10px}.portal-record-card.is-active,.portal-job-card.is-active,.portal-asset-card.is-active{border-color:#7cbdff85;box-shadow:inset 0 0 0 1px #7cbdff42}.portal-record-title,.portal-job-title,.portal-asset-title{font-size:22px;font-weight:700}.portal-record-meta,.portal-job-meta,.portal-asset-meta{font-size:15px;color:var(--muted);line-height:1.6}.portal-job-layout{display:grid;grid-template-columns:minmax(320px,.72fr) minmax(360px,1fr);gap:18px}.portal-download-grid{display:grid;grid-template-columns:minmax(360px,.92fr) minmax(320px,.78fr);gap:18px;align-items:start}.portal-form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.portal-form-columns>.portal-panel{padding:0;background:transparent;box-shadow:none;border:0}.portal-empty-state{min-height:220px;border-radius:24px;border:1px dashed rgba(160,188,237,.24);display:grid;place-items:center;text-align:center;color:var(--muted);font-size:18px;padding:24px}.portal-alert{padding:16px 18px;border-radius:20px;font-size:16px;line-height:1.6}.portal-alert.is-danger{background:#eb4c6024;border:1px solid rgba(235,76,96,.28);color:#ffd6db}.portal-alert.is-success{background:#63d58d1f;border:1px solid rgba(99,213,141,.26);color:#dafbe6}.portal-asset-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portal-asset-card img{width:100%;max-height:240px;object-fit:contain;border-radius:16px;background:#00000047}.portal-asset-card .portal-button-secondary{width:100%}.portal-record-card .portal-empty-state{min-height:140px}@media(max-width:1600px){.portal-diy-grid,.portal-download-grid,.portal-job-layout{grid-template-columns:1fr}}@media(max-width:1100px){.portal-shell{grid-template-columns:1fr}.portal-sidebar{position:static;min-height:auto}.portal-main{padding:18px}.portal-page-head{padding:22px}.portal-page-head h2{font-size:38px}.portal-form-grid,.portal-form-columns{grid-template-columns:1fr}}
