:root{color:#24435f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#eef7ff;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(circle at 100% 0,#7dc3ff61,#0000 28%),linear-gradient(#f6fbff 0%,#eaf5ff 100%);min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;border:0}#root{min-height:100vh}.layout{grid-template-columns:248px 1fr;height:100vh;display:grid;overflow:hidden}.sidebar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;border-right:1px solid #93c5fd73;padding:28px 18px;position:relative;overflow-y:auto}.sidebar-collapsed{padding-left:12px;padding-right:12px}.brand{margin-bottom:24px}.brand-logo{object-fit:contain;background:#ffffffeb;border:1px solid #bfdbfed9;border-radius:14px;width:auto;max-width:100%;height:56px;margin-bottom:12px;padding:8px 10px;display:block}.brand-title,.topbar-title,.metric-value,h1,h2,h3{color:#16324b;margin:0}.brand-title{font-size:22px;font-weight:700}.brand-subtitle,.topbar-subtitle,.panel-description,.metric-label,.metric-trend,.report-list,.topbar-user,.menu-hint{color:#6b8aa5;margin:0}.menu{gap:10px;display:grid}.menu-item{color:#44708e;border-radius:14px;padding:13px 14px;transition:background-color .2s,color .2s,box-shadow .2s}.menu-main{align-items:center;gap:10px;display:inline-flex}.menu-icon{text-align:center;flex:0 0 18px;width:18px}.menu-toggle{background:0 0;justify-content:space-between;align-items:center;width:100%;display:flex}.sidebar-tools{margin-bottom:14px}.sidebar-toggle{width:100%}.menu-item:hover,.menu-item-active{color:#155b8f;background:linear-gradient(135deg,#dff1ff 0%,#cde8ff 100%);box-shadow:inset 0 0 0 1px #7dc3ff73}.submenu{border-left:1px solid #bfdbfee6;gap:8px;margin-top:8px;margin-left:14px;padding-left:10px;display:grid}.submenu-item{color:#5b7c97;border-radius:12px;padding:10px 12px;font-size:14px}.menu-caret{color:#7fa5c2;font-size:12px;transition:transform .2s}.menu-caret-open{transform:rotate(180deg)}.submenu-item:hover,.submenu-item-active{color:#155b8f;background:#bae6fd73}.menu-hint{padding:8px 12px}.content-area{padding:24px;overflow-y:auto}.sidebar-resizer{cursor:col-resize;width:6px;height:100%;position:absolute;top:0;right:0}.topbar{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.topbar-actions{align-items:center;gap:12px;display:flex}.topbar-title{font-size:28px;font-weight:700}.topbar-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.module-badge{color:#2e5b79;background:#bae6fd8c;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.topbar-user{background:#ffffffd1;border:1px solid #93c5fd73;border-radius:999px;padding:10px 14px}.main-content{gap:20px;display:grid}.panel,.subpanel,.metric-card,.login-card,.modal-card{background:#ffffffe6;border:1px solid #93c5fd5c;border-radius:22px;box-shadow:0 10px 30px #7ea6c91f}.panel{padding:24px}.panel-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.panel-description{margin-top:6px}.action-btn,.login-card button{color:#fff;background:linear-gradient(135deg,#5fb8ff 0%,#7cd4ff 100%);border-radius:12px;padding:11px 18px;font-weight:700}.ghost-btn{color:#3c6786;background:#f7fbff;border:1px solid #93c5fd73;border-radius:12px;padding:10px 14px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.metric-card{padding:18px}.metric-label{font-size:14px}.metric-value{margin-top:12px;font-size:34px;font-weight:700}.metric-trend{margin-top:8px;font-size:14px}.dashboard-shell{gap:20px;display:grid}.dashboard-hero{background:radial-gradient(circle at 100% 0,#8ad4ff73,#0000 36%),linear-gradient(135deg,#fffffff0,#f0f9fff5);grid-template-columns:1.4fr .8fr;align-items:stretch;gap:18px;display:grid}.hero-kicker,.hero-description,.hero-highlight-label,.hero-highlight-note,.section-note,.board-subtitle,.timeline-note{color:#6b8aa5;margin:0}.hero-kicker{letter-spacing:.08em;text-transform:uppercase;font-size:12px}.hero-title{color:#16324b;margin:10px 0 8px;font-size:34px}.hero-description{max-width:720px;line-height:1.7}.hero-highlight{background:linear-gradient(#62b8ff26,#ffffffb8);border:1px solid #93c5fd73;border-radius:20px;padding:20px}.hero-highlight-value{color:#1d5882;margin:12px 0 8px;font-size:42px;font-weight:700}.dashboard-metric-card{background:linear-gradient(#fffffff2,#f0f9ffe6)}.metric-foot,.section-head,.status-row-head,.board-item,.alert-item,.timeline-item{justify-content:space-between;align-items:center;gap:12px;display:flex}.metric-tone,.board-badge,.alert-level{border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.metric-tone,.board-badge{color:#2e5b79;background:#bae6fd8c}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.status-stack,.board-list,.alert-list,.timeline-list{gap:14px;margin-top:16px;display:grid}.status-bar-track{background:#bfdbfe73;border-radius:999px;height:10px;margin-top:8px;overflow:hidden}.status-bar-fill{border-radius:inherit;background:linear-gradient(90deg,#69bfff,#98ddff);height:100%}.board-item,.alert-item,.timeline-item{background:#f8fcff;border:1px solid #bfdbfeb3;border-radius:16px;align-items:flex-start;padding:14px}.board-time{color:#2492dc;margin:0 0 6px;font-size:12px}.board-title{color:#24435f;margin:0;font-weight:600}.alert-level-高{color:#b24d4d;background:#ffc4c494}.alert-level-中{color:#a57015;background:#ffe4b08c}.alert-level-提醒{color:#2e5b79;background:#bae6fd8c}.timeline-item{justify-content:flex-start}.timeline-dot{background:linear-gradient(#68beff,#8fd8ff);border-radius:999px;flex:none;width:12px;height:12px;margin-top:5px}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid #bfdbfecc;padding:14px 12px}.data-table th{color:#315777;font-weight:600}.data-table td{color:#436987}.compact-table th,.compact-table td{padding:12px 10px}.toolbar{flex-wrap:wrap;gap:12px;margin-bottom:18px;display:flex}.filter-input{color:#24435f;background:#fafdff;border:1px solid #93c5fd73;border-radius:12px;min-width:220px;padding:12px 14px}.table-link{color:#2492dc;background:0 0;padding:0}.pagination{justify-content:flex-end;align-items:center;gap:12px;margin-top:16px;display:flex}.pagination-text{color:#6b8aa5}.state-text{color:#5c7d98;margin:8px 0 16px}.state-error{color:#d46f6f}.state-success{color:#2a8b61}.permission-note{color:#5f7e97;background:#eff8ffcc;border:1px dashed #93c5fdb3;border-radius:12px;margin-bottom:14px;padding:12px 14px}.status-tag{border-radius:999px;align-items:center;padding:5px 10px;font-size:12px;font-weight:700;display:inline-flex}.status-success{color:#178a5c;background:#78e0b938}.status-warning{color:#b07d12;background:#ffdf8357}.status-muted{color:#637f96;background:#bfdbfe80}.modal-backdrop{background:#b9ddf573;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{width:min(100%,640px);padding:20px}.modal-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px;display:grid}.subpanel{padding:20px}.hierarchy-panel{margin-bottom:18px}.permission-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:6px;display:grid}.tree-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.tree-node{color:#315777;background:#f7fbff;border:1px solid #bfdbfee6;border-radius:12px;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;display:flex}.tree-meta{color:#6b8aa5;font-size:12px}.row-actions{flex-wrap:wrap;gap:12px;display:flex}.row-selected{background:#bae6fd4d}.spaced-subpanel{margin-top:12px}.permission-card{background:#f7fbff;border:1px solid #bfdbfee6;border-radius:14px;padding:12px}.permission-list{gap:8px;margin-top:10px;display:grid}.check-row{color:#355b78;align-items:center;gap:8px;display:flex}.modal-actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.chip-list{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.settings-link-grid{gap:12px;margin-top:12px;display:grid}.settings-link-card{color:#315777;background:#f8fcff;border:1px solid #bfdbfecc;border-radius:16px;gap:6px;padding:14px;display:grid}.settings-link-card span{color:#6b8aa5;font-size:14px}.info-chip{color:#2d5a78;background:#bae6fd73;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;display:inline-flex}.report-list{padding-left:18px}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:min(100%,420px);padding:32px}.login-brand-block{text-align:center;justify-items:center;display:grid}.login-logo-wrap,.hero-brand-row{align-items:center;display:flex}.login-logo-wrap{justify-content:center;margin-bottom:10px}.page-logo{object-fit:contain;width:auto;max-width:min(100%,240px);height:72px;display:block}.hero-logo{height:64px;margin-bottom:8px}.login-card h1{margin-top:0;font-size:30px}.login-card form,.login-card label{display:grid}.login-card label{color:#3d607b;gap:8px;margin-top:16px}.login-card input{color:#24435f;background:#fafdff;border:1px solid #93c5fd73;border-radius:12px;width:100%;padding:13px 14px}.login-card button{width:100%;margin-top:24px}@media (width<=1080px){.metric-grid,.analytics-grid,.dashboard-grid,.dashboard-hero{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.layout{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #93c5fd73;border-right:0}}@media (width<=640px){.content-area,.panel,.login-card{padding:16px}.topbar,.panel-header,.topbar-actions{flex-direction:column;align-items:stretch}.toolbar,.pagination,.modal-header,.form-grid{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.metric-grid,.analytics-grid,.dashboard-grid,.dashboard-hero,.permission-cards{grid-template-columns:1fr}.data-table{display:block;overflow-x:auto}}
