:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--bg: #f8fafc;--surface: #ffffff;--surface-muted: #f8fafc;--text: #0f172a;--muted: #64748b;--faint: #94a3b8;--border: #e2e8f0;--border-soft: #f1f5f9;--accent: #4f46e5;--accent-strong: #4338ca;--blue: #2563eb;--emerald: #059669;--rose: #e11d48;--amber: #d97706;--indigo-soft: #eef2ff;--shadow: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 12px 30px rgba(15, 23, 42, .08)}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--bg)}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:var(--bg)}#root{min-height:100vh}button,input,select,textarea{font:inherit}button{color:inherit}.app-shell{display:flex;height:100vh;min-height:0;overflow:hidden;background:var(--bg)}.sidebar{display:flex;flex:0 0 256px;flex-direction:column;min-width:256px;border-right:1px solid var(--border);background:var(--surface)}.brand-bar{display:flex;align-items:center;gap:10px;height:64px;padding:0 24px;border-bottom:1px solid var(--border-soft);color:var(--text);font-size:20px;font-weight:800;letter-spacing:0}.brand-icon{display:grid;place-items:center;width:28px;height:28px;color:var(--accent)}.brand-icon .icon{width:24px;height:24px;fill:currentColor;stroke-width:0}.sidebar-nav{display:grid;gap:4px;flex:1;align-content:start;padding:24px 16px;overflow-y:auto}.sidebar-footer{padding:16px;border-top:1px solid var(--border)}.nav-item{display:flex;align-items:center;gap:12px;width:100%;min-height:42px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:#475569;font-size:14px;font-weight:650;text-align:left;cursor:pointer;transition:background .16s ease,color .16s ease}.nav-item:hover{background:#f8fafc;color:var(--text)}.nav-item.is-active{background:var(--indigo-soft);color:#4338ca}.nav-item .icon{width:20px;height:20px;color:currentColor}.main-pane{display:flex;flex:1;flex-direction:column;min-width:0;min-height:0}.top-header{z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;height:64px;padding:0 24px;border-bottom:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow)}.search-field{position:relative;flex:1;max-width:448px}.search-field .icon{position:absolute;top:50%;left:12px;width:16px;height:16px;color:var(--faint);transform:translateY(-50%)}.search-field input{width:100%;height:38px;padding:0 14px 0 40px;border:1px solid var(--border);border-radius:8px;outline:0;background:var(--surface-muted);color:var(--text);font-size:14px;transition:border .16s ease,box-shadow .16s ease,background .16s ease}.search-field input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px #4f46e524}.search-field input::placeholder{color:var(--faint)}.header-actions,.user-menu,.page-heading,.page-actions,.panel-toolbar,.tabs,.filter-button,.primary-button,.secondary-button,.save-button,.danger-button,.row-actions,.status-line,.open-link{display:flex;align-items:center}.header-actions{flex:0 0 auto;gap:20px}.edit-state{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid #c7d2fe;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:12px;font-weight:800}.edit-state.is-dirty{border-color:#fed7aa;background:#fff7ed;color:#c2410c}.icon-action{position:relative;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:#475569;cursor:pointer;transition:background .16s ease,color .16s ease}.icon-action:hover{background:#f8fafc;color:var(--text)}.icon-action span{position:absolute;top:7px;right:7px;width:10px;height:10px;border:2px solid var(--surface);border-radius:999px;background:var(--rose)}.user-menu{gap:12px;min-height:40px;padding:0 0 0 20px;border:0;border-left:1px solid var(--border);background:transparent;cursor:pointer}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:999px;background:var(--accent);color:#fff;font-size:14px;font-weight:800;box-shadow:var(--shadow)}.user-copy{display:grid;gap:1px;text-align:left}.user-copy strong{color:#334155;font-size:14px;font-weight:650}.user-copy small{color:var(--muted);font-size:12px}.user-menu .icon{width:16px;height:16px;color:var(--faint)}.content-scroll{flex:1;min-height:0;overflow:auto;padding:24px}.page-heading{justify-content:space-between;gap:20px;margin-bottom:24px}.page-actions{flex:0 0 auto;gap:10px;flex-wrap:wrap;justify-content:flex-end}.page-heading h1{margin:0;color:var(--text);font-size:28px;line-height:1.2;font-weight:800;letter-spacing:0}.page-heading p{margin:6px 0 0;color:var(--muted);font-size:14px;line-height:1.5}.primary-button,.secondary-button,.save-button,.danger-button{justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}.primary-button{border:0;background:var(--accent);color:#fff;box-shadow:0 10px 18px #4f46e52e}.secondary-button,.save-button{border:1px solid var(--border);background:var(--surface);color:#334155}.save-button{border-color:#c7d2fe;background:#eef2ff;color:#4338ca}.danger-button{border:1px solid #fecdd3;background:#fff1f2;color:#be123c}.primary-button:hover{background:var(--accent-strong);box-shadow:0 14px 28px #4f46e53d;transform:translateY(-1px)}.secondary-button:hover,.save-button:hover{border-color:#c7d2fe;background:var(--indigo-soft);color:#4338ca;transform:translateY(-1px)}.danger-button:hover{background:#ffe4e6;transform:translateY(-1px)}.primary-button:active{transform:translateY(0) scale(.98)}.primary-button .icon,.secondary-button .icon,.save-button .icon,.danger-button .icon{width:16px;height:16px}.primary-button:disabled,.secondary-button:disabled,.save-button:disabled,.danger-button:disabled{cursor:not-allowed;opacity:.58;transform:none;box-shadow:none}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:24px}.stat-card{min-width:0;padding:20px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);transition:box-shadow .16s ease,transform .16s ease}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card h2{margin:0;color:var(--muted);font-size:14px;font-weight:650}.stat-card div{display:flex;align-items:baseline;gap:12px;margin-top:8px}.stat-card strong{color:var(--text);font-size:34px;line-height:1;font-weight:800}.stat-card span{color:var(--emerald);font-size:14px;font-weight:700}.stat-card p{margin:7px 0 0;color:var(--muted);font-size:14px}.data-panel{overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.panel-toolbar{justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--border-soft)}.tabs{gap:4px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{min-height:36px;padding:0 14px;white-space:nowrap;border:0;border-radius:6px;background:transparent;color:#475569;font-size:14px;font-weight:650;cursor:pointer;transition:background .16s ease,color .16s ease}.tabs button:hover{background:#f1f5f9;color:var(--text)}.tabs button.is-active{background:var(--indigo-soft);color:#4338ca}.filter-button{flex:0 0 auto;justify-content:center;gap:8px;min-height:36px;padding:0 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted);color:#475569;font-size:14px;font-weight:650;cursor:pointer;transition:background .16s ease,color .16s ease}.filter-button:hover{background:#f1f5f9;color:var(--text)}.filter-button .icon{width:16px;height:16px}.table-scroll{overflow-x:auto}table{width:100%;min-width:860px;border-collapse:collapse;text-align:left;white-space:nowrap}thead{border-bottom:1px solid var(--border);background:var(--surface-muted);color:var(--muted)}th,td{padding:16px 24px;vertical-align:middle}th{font-size:14px;font-weight:650}tbody tr{border-bottom:1px solid var(--border-soft);transition:background .16s ease}tbody tr:hover{background:#f8fafcdb}tbody tr:last-child{border-bottom:0}.mono{max-width:170px;overflow:hidden;color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;text-overflow:ellipsis}.row-title{display:block;max-width:360px;overflow:hidden;color:var(--text);font-size:14px;font-weight:700;text-overflow:ellipsis}.row-subtitle{display:block;max-width:420px;overflow:hidden;margin-top:4px;color:var(--muted);font-size:12px;text-overflow:ellipsis}.status-stack{display:grid;gap:8px;min-width:210px}.status-line{gap:8px}.status-line .icon{width:16px;height:16px}.status-badge,.priority{display:inline-flex;align-items:center;width:fit-content;max-width:100%;border:1px solid transparent;font-size:12px;font-weight:700;line-height:1}.status-badge{padding:5px 8px;border-radius:999px}.status-running{border-color:#bfdbfe;background:#dbeafe;color:#1d4ed8}.status-pending{border-color:#fde68a;background:#fef3c7;color:#b45309}.status-review{border-color:#c7d2fe;background:#e0e7ff;color:#4338ca}.status-completed{border-color:#a7f3d0;background:#d1fae5;color:#047857}.status-failed{border-color:#fecdd3;background:#ffe4e6;color:#be123c}.progress-value{margin-left:auto;color:var(--muted);font-size:12px}.progress-track{height:6px;overflow:hidden;border-radius:999px;background:#f1f5f9}.progress-track span{display:block;height:100%;border-radius:inherit;transition:width .22s ease}.progress-running{background:var(--blue)}.progress-pending{background:#f59e0b}.progress-review{background:var(--accent)}.progress-completed{background:var(--emerald)}.priority{padding:6px 10px;border-radius:6px}.priority-critical{border-color:#fee2e2;background:#fef2f2;color:#b91c1c}.priority-high{border-color:#ffedd5;background:#fff7ed;color:#c2410c}.priority-medium{border-color:#dbeafe;background:#eff6ff;color:#1d4ed8}.priority-low{border-color:#e2e8f0;background:#f8fafc;color:#475569}.muted{color:var(--muted);font-size:14px}.align-right{text-align:right}.row-action{display:inline-grid;place-items:center;width:32px;height:32px;border:0;border-radius:6px;background:transparent;color:var(--faint);cursor:pointer;opacity:0;transition:background .16s ease,color .16s ease,opacity .16s ease}tr:hover .row-action,.row-action:focus-visible,.is-editing .row-action{opacity:1}.row-action:hover{background:var(--indigo-soft);color:var(--accent)}.row-action .icon{width:16px;height:16px}.row-actions{justify-content:flex-end;gap:10px}.open-link{justify-content:flex-end;gap:6px;color:var(--accent);font-size:14px;font-weight:700;text-decoration:none}.open-link:hover{color:var(--accent-strong)}.open-link .icon{width:16px;height:16px}.empty-state{display:grid;place-items:center;gap:12px;min-height:260px;color:var(--muted);font-size:14px}.empty-state .icon{width:34px;height:34px;color:#cbd5e1}.panel-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-top:1px solid var(--border-soft);background:#f8fafc94;color:var(--muted);font-size:14px}.toast{position:fixed;right:24px;bottom:24px;z-index:20;max-width:min(420px,calc(100vw - 32px));padding:12px 14px;border:1px solid #c7d2fe;border-radius:8px;background:#eef2ff;color:#3730a3;font-size:14px;font-weight:650;box-shadow:var(--shadow-md)}.modal-backdrop,.drawer-backdrop{position:fixed;inset:0;z-index:40;background:#0f172a47;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-backdrop{display:grid;place-items:center;padding:24px}.auth-card{width:min(430px,100%);padding:26px;border:1px solid rgba(255,255,255,.84);border-radius:12px;background:var(--surface);box-shadow:0 24px 70px #0f172a2e}.auth-mark{width:fit-content;margin-bottom:22px;padding:8px 11px;border-radius:8px;background:var(--accent);color:#fff;font-size:13px;font-weight:850}.auth-card h2{margin:0;color:var(--text);font-size:24px;line-height:1.2}.auth-card p{margin:10px 0 20px;color:var(--muted);font-size:14px;line-height:1.7}.auth-error{margin-top:-2px;color:var(--rose);font-size:13px;font-weight:700}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.drawer-backdrop{display:flex;justify-content:flex-end}.edit-drawer{display:flex;flex-direction:column;width:min(460px,100%);height:100vh;overflow:auto;border-left:1px solid var(--border);background:var(--surface);box-shadow:-24px 0 70px #0f172a29}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px;border-bottom:1px solid var(--border)}.drawer-head p{margin:0 0 6px;color:var(--accent);font-size:12px;font-weight:850}.drawer-head h2{max-width:330px;margin:0;overflow-wrap:anywhere;color:var(--text);font-size:20px;line-height:1.35}.icon-only{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:#475569;cursor:pointer}.icon-only:hover{background:#f8fafc;color:var(--text)}.icon-only .icon{width:16px;height:16px}.edit-form{display:grid;gap:16px;padding:24px}.field,.check-field{display:grid;gap:8px}.field span,.check-field span{color:#475569;font-size:12px;font-weight:800}.field input,.field select,.field textarea{width:100%;border:1px solid var(--border);border-radius:8px;outline:0;background:var(--surface);color:var(--text);font-size:14px;transition:border .16s ease,box-shadow .16s ease}.field input,.field select{height:40px;padding:0 12px}.field textarea{min-height:120px;padding:11px 12px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f46e524}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.range-field span{display:flex;justify-content:space-between}.range-field strong{color:var(--accent)}.range-field input{padding:0;accent-color:var(--accent)}.check-field{grid-template-columns:18px 1fr;align-items:center;gap:10px}.check-field input{width:16px;height:16px;accent-color:var(--accent)}.drawer-actions{display:flex;justify-content:space-between;gap:12px;margin-top:auto;padding:18px 24px 24px;border-top:1px solid var(--border);background:var(--surface-muted)}.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.spin{animation:spin .95s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:1060px){.stats-grid{grid-template-columns:1fr;gap:16px}}@media(max-width:860px){.app-shell{display:block;height:auto;min-height:100vh;overflow:visible}.sidebar{display:none}.top-header{position:sticky;top:0;padding:12px 16px;height:auto;align-items:stretch;flex-direction:column}.search-field{max-width:none}.header-actions{justify-content:space-between;gap:12px}.user-menu{flex:1;justify-content:flex-end;border-left:0;padding-left:0}.content-scroll{padding:20px 16px;overflow:visible}.page-heading{align-items:stretch;flex-direction:column}.page-actions{justify-content:stretch}.page-actions .primary-button,.page-actions .secondary-button,.page-actions .save-button,.page-actions .danger-button{width:100%}.panel-toolbar{align-items:stretch;flex-direction:column;padding:14px}.filter-button{width:100%}.panel-footer{align-items:flex-start;flex-direction:column;padding:14px}}@media(max-width:560px){.user-copy{display:none}.page-heading h1{font-size:24px}.stat-card{padding:16px}.stat-card strong{font-size:30px}th,td{padding:14px 16px}.toast{right:16px;bottom:16px}.modal-actions,.drawer-actions,.field-grid{grid-template-columns:1fr}.modal-actions,.drawer-actions{flex-direction:column-reverse}.edit-drawer{width:100%}.drawer-head,.edit-form,.drawer-actions{padding-right:16px;padding-left:16px}}
