:root{--app-font-sans:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--app-type-page-title:34px;--app-type-section-title:24px;--app-type-content:19px;--app-type-body:18px;--app-type-caption:17px;--app-bg:#edf4fd;--app-canvas:#eff5fe;--app-chrome:#f4f7fd;--app-panel:#f6f8fe;--app-blue-bright:#0086ff;--app-action-light:#4ea8fe;--app-action-shadow:#0479e82e;--app-icon-blue:#e3effd;--app-icon-blue-deep:#d6e7fd;--app-table-header:#e5effd;--app-control:#f7f9fd;--app-control-border:#ccd9f0;--app-danger:#d32e36;--app-gray-chip:#e7ebf4;--app-halo:#e8f1fc;--app-surface:#fbfdff;--app-white:#fff;--app-heading:#0b153f;--app-text:#141b2e;--app-secondary:#334368;--app-muted:#50607d;--app-placeholder:#626f88;--app-link:#006cdb;--app-border:#e1e9f7;--app-primary:#2563eb;--app-selected:#eaf2ff;--app-mint:#e4f8f2;--app-mint-ink:#0a8069;--app-peach:#fff1e5;--app-peach-ink:#b85b16;--app-lavender:#efebff;--app-lavender-ink:#6e50d2;--app-shadow:0 7px 20px #4c85d311;color:var(--app-text);font-family:var(--app-font-sans);background:linear-gradient(145deg, var(--app-bg), var(--app-halo))}*{box-sizing:border-box}body{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;font-size:14px;line-height:1.6}input{font-family:inherit;font-size:inherit}a{color:var(--app-primary);text-decoration:none}button{font:inherit}h1,h2,p{margin:0}h1,h2{color:var(--app-heading)}h1{font-size:28px;line-height:1.4}h2{font-size:17px}:focus-visible{outline:2px solid var(--app-primary);outline-offset:3px}.page-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-subtitle{color:var(--app-muted);margin-top:4px}.surface{background:var(--app-surface);border:1px solid var(--app-border);box-shadow:var(--app-shadow);border-radius:14px}.panel{padding:18px}.toolbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.toolbar>.toolbar-search{flex:0 280px;min-width:0}.toolbar-select{width:150px}.pagination{justify-content:flex-end;margin-top:16px;display:flex}.form-narrow{width:min(100%,460px)}.error-line{margin:12px 0}.muted{color:var(--app-muted)}.numeric{font-variant-numeric:tabular-nums}.list-card{flex-direction:column;flex:1;min-height:0;display:flex}.list-card>:not(.list-table){flex:none}.list-table{flex:1;min-height:0}
