:root{font-family:Avenir Next,PingFang SC,Helvetica Neue,sans-serif;color:#17313a;background:radial-gradient(circle at top left,rgba(26,153,126,.16),transparent 28%),linear-gradient(135deg,#f4f7f2,#eef4f7 48%,#f9f1e8);--ink-900: #17313a;--ink-700: #31515d;--ink-500: #617983;--line: rgba(23, 49, 58, .1);--surface: rgba(255, 255, 255, .86);--surface-strong: rgba(255, 255, 255, .96);--primary: #1f8f7f;--primary-strong: #186d61;--danger: #c04f5f;--warning: #d08b25;--shadow: 0 20px 50px rgba(23, 49, 58, .12)}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-height:100vh;color:var(--ink-900)}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}.app-root{min-height:100vh}.login-shell{display:grid;place-items:center;min-height:100vh;padding:24px}.login-card{width:min(1120px,100%);display:grid;grid-template-columns:1.25fr .95fr;gap:24px}.login-copy,.form-card,.card,.brand-card,.sidebar-meta,.topbar{border:1px solid var(--line);border-radius:26px;background:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.login-copy{padding:40px;background:linear-gradient(135deg,#103942f7,#198272e6),radial-gradient(circle at top right,rgba(255,255,255,.18),transparent 30%);color:#eefbfa}.login-copy p{max-width:640px;line-height:1.7}.login-copy h1,.topbar h1,.brand-card h2,.card h3{margin:0}.form-card{display:grid;gap:16px;padding:28px}.workspace-shell{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;padding:20px}.sidebar{display:flex;flex-direction:column;gap:16px}.brand-card{padding:24px;background:linear-gradient(180deg,#0f2b33f5,#18534deb);color:#eef7f5}.brand-card p,.brand-card small{margin:0;color:#eef7f5d1}.eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;color:#1f8f7fe6}.brand-card .eyebrow{color:#90edd7e6}.nav-list{display:grid;gap:10px}.nav-item,.primary-button,.secondary-button,.danger-button{border-radius:16px;border:1px solid transparent;padding:11px 14px;transition:transform .14s ease,background .14s ease,border-color .14s ease}.nav-item{background:#ffffffa3;color:var(--ink-900);border-color:var(--line);text-align:left}.nav-item.active,.nav-item:hover,.primary-button:hover,.secondary-button:hover,.danger-button:hover{transform:translateY(-1px)}.nav-item.active{background:linear-gradient(90deg,#1f8f7f2e,#2c7fae29);border-color:#1f8f7f4d}.primary-button{background:linear-gradient(90deg,var(--primary),#2f77c4);color:#fff}.secondary-button{background:#ffffffc2;color:var(--ink-900);border-color:var(--line)}.danger-button{background:#c04f5f1a;color:var(--danger);border-color:#c04f5f2e}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.sidebar-meta{display:grid;gap:6px;padding:18px}.sidebar-meta p,.sidebar-meta span,.subtitle,.field small,.hint-box p,.detail-block p,.plain-list{margin:0;color:var(--ink-500)}.content-area{display:flex;flex-direction:column;gap:18px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:24px 28px}.notice{padding:14px 18px;border-radius:18px;border:1px solid}.notice.success{color:var(--primary-strong);background:#1f8f7f1f;border-color:#1f8f7f33}.notice.error{color:#9c3344;background:#c04f5f1a;border-color:#c04f5f2e}.notice.warning{color:#8b5c0a;background:#d08b251f;border-color:#d08b2533}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#17313a6b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000}.modal-card{width:min(440px,100%);display:grid;gap:18px;padding:24px;border-radius:24px;border:1px solid var(--line);background:var(--surface-strong);box-shadow:var(--shadow)}.modal-header h3,.modal-message{margin:0}.modal-message{color:var(--ink-700);line-height:1.7}.modal-actions{display:flex;justify-content:flex-end}.page-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.card{grid-column:span 6;display:grid;gap:18px;padding:22px}.card.wide-card{grid-column:span 12}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.card-header-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:#1f8f7f1f;color:var(--primary-strong);font-size:.84rem;font-weight:600}.metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.metric{padding:16px;border-radius:18px;border:1px solid var(--line);background:var(--surface-strong)}.metric span{display:block;color:var(--ink-500);font-size:.92rem;margin-bottom:8px}.metric strong{font-size:1.7rem}.chart-list,.plain-list{display:grid;gap:12px}.chart-row{display:grid;grid-template-columns:120px minmax(0,1fr) 50px;gap:12px;align-items:center}.chart-track{height:10px;border-radius:999px;background:#31515d1a;overflow:hidden}.chart-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#49a8e0)}.chart-bar.alt{background:linear-gradient(90deg,var(--warning),#f1c367)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.maintenance-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px}.maintenance-form,.maintenance-side,.maintenance-lists{gap:16px}.maintenance-side,.maintenance-lists,.maintenance-list{display:grid}.maintenance-lists{gap:18px}.maintenance-list h4{margin:0}.backup-form{margin-top:4px}.mono-text{font-family:var(--mono);word-break:break-all}.field{display:grid;gap:8px}.field.full-span{grid-column:1 / -1}.field span{font-weight:600;color:var(--ink-700)}.field input,.field select,.field textarea,.filter-row input,.filter-row select,.mini-input{width:100%;padding:11px 12px;border-radius:14px;border:1px solid rgba(49,81,93,.16);background:#fffffff0;color:var(--ink-900)}.hint-box{padding:14px;border-radius:16px;background:#1f8f7f14;border:1px dashed rgba(31,143,127,.24)}.table-wrap{overflow-x:auto}.data-table{width:100%;min-width:820px;border-collapse:collapse}.data-table th,.data-table td{padding:13px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.data-table th{color:var(--ink-500);font-weight:600}.tree-label{display:inline-block;position:relative}.tree-label:before{content:"";position:absolute;left:0;top:50%;width:10px;height:1px;background:#31515d3d}.filter-row,.action-row,.pager,.detail-grid{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.filter-row{align-items:stretch}.inline-actions,.section-stack,.tree-users,.chip-list,.timeline{display:grid;gap:12px}.inline-actions{display:flex;flex-wrap:wrap;justify-content:flex-end}.section-stack{gap:16px}.sub-panel{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;padding:14px;border-radius:18px;border:1px dashed rgba(49,81,93,.18);background:#ffffff8c}.field-checkbox{align-content:end}.field-checkbox input{width:18px;height:18px}.filter-row input,.filter-row select{min-width:180px;flex:1 1 180px}.pager{justify-content:flex-end}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.detail-block{padding:16px;border-radius:18px;border:1px solid var(--line);background:var(--surface-strong)}.detail-block h4{margin:0 0 12px}.tree-user-card{padding:12px;border-radius:16px;border:1px solid rgba(49,81,93,.12);background:#ffffffc7}.tree-user-header{display:flex;gap:10px;align-items:center;justify-content:space-between}.badge.subtle{background:#31515d1a;color:var(--ink-700)}.chip-list{display:flex;flex-wrap:wrap}.chip{padding:6px 10px;border-radius:999px;background:#1f8f7f1a;border:1px solid rgba(31,143,127,.18);color:var(--ink-900);font-size:.85rem}.mono-text{font-family:SFMono-Regular,Menlo,monospace;font-size:.9rem}.timeline-item{display:grid;gap:4px;padding:12px 14px;border-radius:14px;border:1px solid rgba(49,81,93,.12);background:#ffffffc7}.detail-block.full-width{grid-column:1 / -1}.error-text{margin:0;color:#9c3344}@media(max-width:1200px){.workspace-shell,.login-card{grid-template-columns:1fr}.metrics-grid,.form-grid,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card,.card.wide-card{grid-column:span 12}}@media(max-width:760px){.workspace-shell{padding:12px}.topbar,.card,.brand-card,.sidebar-meta,.form-card,.login-copy{border-radius:20px}.topbar,.card-header,.pager,.action-row,.sub-panel,.tree-user-header,.inline-actions{flex-direction:column;align-items:flex-start}.metrics-grid,.form-grid,.detail-grid,.chart-row{grid-template-columns:1fr}}
