:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#1f2937;background:#f5f7fa;font-synthesis:none;letter-spacing:0}*{box-sizing:border-box}body{margin:0;min-width:1100px;min-height:100vh}button,input{font:inherit;letter-spacing:0}button{cursor:pointer}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;width:224px;padding:20px 14px;border-right:1px solid #e5e7eb;background:#fff}.brand-block{display:flex;align-items:center;gap:12px;padding:4px 10px 22px}.brand-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:7px;background:#2563eb;color:#fff;font-size:18px;font-weight:700}.brand-block strong,.brand-block span{display:block}.brand-block strong{font-size:15px}.brand-block span{margin-top:3px;color:#9ca3af;font-size:11px}.sidebar nav{display:flex;flex:1;flex-direction:column;gap:3px}.sidebar a,.logout-button{display:flex;align-items:center;gap:11px;height:42px;padding:0 12px;border:0;border-radius:6px;background:transparent;color:#6b7280;font-size:13px;text-decoration:none}.sidebar a:hover,.sidebar a.router-link-exact-active{background:#eef4ff;color:#1d4ed8}.logout-button{width:100%}.logout-button:hover{background:#fef2f2;color:#b91c1c}.main-area{flex:1;min-width:0;margin-left:224px}.topbar{display:flex;align-items:center;justify-content:space-between;height:68px;padding:0 28px;border-bottom:1px solid #e5e7eb;background:#fff}.topbar strong,.topbar span{display:block}.topbar strong{font-size:15px}.topbar span{margin-top:4px;color:#9ca3af;font-size:11px}.environment-badge{padding:6px 10px;border:1px solid #d1d5db;border-radius:5px;color:#6b7280;font-size:11px}.page-content{padding:26px 28px 48px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-heading h1{margin:0;font-size:22px}.section-heading p{margin:6px 0 0;color:#9ca3af;font-size:12px}.icon-command{display:grid;width:36px;height:36px;place-items:center;border:1px solid #dbe0e7;border-radius:6px;background:#fff;color:#4b5563}.heading-actions{display:flex;align-items:center;gap:8px}.primary-command{display:flex;align-items:center;gap:7px;height:36px;padding:0 13px;border:0;border-radius:6px;background:#2563eb;color:#fff;font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-card{padding:20px;border:1px solid #e3e7ed;border-radius:7px;background:#fff}.metric-card>span{color:#6b7280;font-size:12px}.metric-card strong{display:block;margin-top:13px;font-size:23px}.metric-card strong.green{color:#138a62}.metric-card strong.amber{color:#b76d08}.metric-card strong.gray{color:#64748b}.metric-card p{margin:13px 0 0;color:#9ca3af;font-size:11px;line-height:1.5}.workflow-band{margin-top:20px;padding:22px;border:1px solid #e3e7ed;background:#fff}.workflow-band h2{margin:0 0 18px;font-size:15px}.workflow-steps{display:flex;align-items:center;color:#475569;font-size:12px}.workflow-steps i{flex:1;height:1px;margin:0 16px;background:#dbe2ea}.table-toolbar{display:flex;align-items:center;width:300px;height:38px;margin-bottom:14px;padding:0 11px;border:1px solid #dbe0e7;border-radius:6px;background:#fff;color:#9ca3af}.table-toolbar input{flex:1;min-width:0;margin-left:8px;border:0;outline:0;color:#374151;font-size:12px}.table-wrap{overflow:auto;border:1px solid #e3e7ed;background:#fff}table{width:100%;border-collapse:collapse;table-layout:fixed}th,td{overflow:hidden;height:46px;padding:0 12px;border-bottom:1px solid #edf0f4;color:#4b5563;font-size:11px;text-align:left;text-overflow:ellipsis;white-space:nowrap}th{background:#f8fafc;color:#64748b;font-weight:600}tbody tr:hover{background:#fafcff}.row-actions{display:flex;align-items:center;gap:6px}.row-actions button{display:grid;width:28px;height:28px;place-items:center;border:1px solid #dbe0e7;border-radius:5px;background:#fff;color:#4b5563}.row-actions button:first-child:hover{border-color:#86d9bc;color:#138a62}.row-actions button:last-child:hover{border-color:#f2a7a0;color:#c64035}.state-message{display:grid;min-height:260px;place-items:center;border:1px solid #e3e7ed;background:#fff;color:#9ca3af;font-size:13px}.state-message.error{color:#b42318}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px;color:#6b7280;font-size:12px}.pagination button{display:grid;width:32px;height:32px;place-items:center;border:1px solid #dbe0e7;border-radius:5px;background:#fff;color:#4b5563}.pagination button:disabled{cursor:default;opacity:.4}.login-page{display:grid;min-height:100vh;place-items:center;background:#f3f6fa}.login-panel{width:360px;padding:34px;border:1px solid #e0e5eb;border-radius:8px;background:#fff;box-shadow:0 14px 40px #18274b14}.login-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:7px;background:#eef4ff;color:#2563eb}.login-panel h1{margin:18px 0 0;font-size:21px}.login-panel>p{margin:7px 0 24px;color:#9ca3af;font-size:12px}.login-panel label{display:block;margin-top:15px;color:#4b5563;font-size:12px}.login-panel input{display:block;width:100%;height:42px;margin-top:7px;padding:0 11px;border:1px solid #dbe0e7;border-radius:6px;outline:0}.login-panel input:focus{border-color:#4f7fe8;box-shadow:0 0 0 3px #edf3ff}.login-panel>button{width:100%;height:42px;margin-top:22px;border:0;border-radius:6px;background:#2563eb;color:#fff;font-weight:600}.login-panel>button:disabled{opacity:.6}.form-error{margin-top:12px;color:#b42318;font-size:12px}.editor-mask{position:fixed;z-index:20;inset:0;display:grid;place-items:center;background:#0f172a6b}.editor-panel{width:720px;padding:22px;border-radius:8px;background:#fff;box-shadow:0 20px 60px #0f172a33}.editor-header{display:flex;align-items:center;justify-content:space-between}.editor-header strong,.editor-header span{display:block}.editor-header strong{font-size:16px}.editor-header span{margin-top:4px;color:#9ca3af;font-size:11px}.editor-header>button{display:grid;width:32px;height:32px;place-items:center;border:0;border-radius:5px;background:#f3f4f6;color:#6b7280}.editor-panel textarea{width:100%;height:400px;margin-top:18px;padding:14px;resize:vertical;border:1px solid #dbe0e7;border-radius:6px;outline:0;background:#f8fafc;color:#334155;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:0}.editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.editor-actions button{height:36px;padding:0 16px;border:1px solid #dbe0e7;border-radius:6px;background:#fff;color:#4b5563;font-size:12px}.editor-actions button.primary{border:0;background:#2563eb;color:#fff}.structured-editor{max-height:calc(100vh - 80px);overflow:auto}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.form-grid label{display:flex;flex-direction:column;gap:7px;color:#667085;font-size:12px}.form-grid label.wide{grid-column:1 / -1}.form-grid input,.form-grid textarea{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid #dbe0e7;border-radius:5px;background:#fff;color:#1f2937;font-size:13px}.form-grid input[type=checkbox]{width:18px;height:18px}.form-grid textarea{min-height:88px;margin-top:0;resize:vertical;background:#fff;color:#1f2937;font:inherit;line-height:1.5}.history-panel{width:min(780px,calc(100vw - 80px));max-height:calc(100vh - 80px);overflow:auto;padding:24px;border-radius:8px;background:#fff;box-shadow:0 20px 60px #0f172a33}.history-row{padding:14px 0;border-bottom:1px solid #edf0f4}.history-row strong{color:#1d4ed8;font-size:13px}.history-row span{margin-left:10px;color:#98a2b3;font-size:11px}.history-row pre{max-height:150px;overflow:auto;margin:9px 0 0;padding:10px;background:#f8fafc;color:#475467;font-size:11px;white-space:pre-wrap}
