:root{color:#172033;font-family:PingFang SC,Noto Sans SC,Inter,Helvetica Neue,sans-serif;--bg-app: #f4f7f6;--bg-sidebar: #17312d;--bg-sidebar-strong: #102824;--bg-surface: #ffffff;--bg-surface-soft: #f7faf9;--bg-accent-soft: #e0efeb;--bg-hover: #f0f6f4;--text-main: #172033;--text-subtle: #60707c;--text-muted: #8a9aa5;--text-on-dark: #edf5f2;--border-soft: rgba(21, 40, 37, .1);--border-strong: rgba(21, 40, 37, .18);--accent: #0f766e;--accent-deep: #134e4a;--danger: #c84c47;--danger-soft: #f8e2e0;--success: #2d8a56;--success-soft: #e2f2e7;--warning: #b98521;--warning-soft: #f8efd8;--info-soft: #ddebe7;--shadow-card: 0 8px 24px rgba(18, 35, 32, .06);--radius-lg: 14px;--radius-md: 10px;--radius-sm: 8px;--space-1: 6px;--space-2: 10px;--space-3: 14px;--space-4: 18px;--space-5: 24px;--sidebar-width: 272px;--sidebar-collapsed-width: 82px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh;background:var(--bg-app)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(15,118,110,.22);outline-offset:2px}.skip-link{position:fixed;top:10px;left:10px;z-index:20;transform:translateY(-160%);padding:10px 14px;border-radius:var(--radius-sm);background:var(--accent-deep);color:#fff;text-decoration:none}.skip-link:focus{transform:translateY(0)}.app-shell{height:100vh;padding:12px}.workspace{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);height:calc(100vh - 24px);overflow:hidden;background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:18px}.workspace.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed-width) minmax(0,1fr)}.sidebar{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;color:var(--text-on-dark);background:linear-gradient(180deg,var(--bg-sidebar) 0%,var(--bg-sidebar-strong) 100%);border-right:1px solid rgba(255,255,255,.08)}.sidebar-rail-toggle{position:absolute;top:18px;right:-14px;z-index:5;width:28px;height:28px;border:1px solid rgba(15,118,110,.24);border-radius:999px;background:#fff;color:var(--accent-deep);font-size:14px;font-weight:900;box-shadow:0 6px 18px #1223201f}.sidebar-rail-toggle:hover{background:var(--bg-accent-soft)}.sidebar-top{padding:18px 16px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-block{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{width:42px;height:42px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:#ffffff1f;font-size:17px;font-weight:800}.brand-copy h1{margin:0;font-size:18px;line-height:1.2}.brand-copy p,.sidebar-meta p{margin:3px 0 0;color:#edf5f2ad;font-size:12px;line-height:1.4}.sidebar-scroll{min-height:0;overflow-y:auto;padding:12px 10px 16px}.sidebar-scroll::-webkit-scrollbar,.page-scroll::-webkit-scrollbar,.table-wrapper::-webkit-scrollbar{width:10px;height:10px}.sidebar-scroll::-webkit-scrollbar-thumb,.page-scroll::-webkit-scrollbar-thumb,.table-wrapper::-webkit-scrollbar-thumb{background:#17312d38;border-radius:999px}.sidebar-section{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.sidebar-section h2,.sidebar-meta h2{margin:0 8px 5px;font-size:11px;color:#edf5f285;font-weight:700}.nav-list{display:flex;flex-direction:column;gap:3px}.nav-item{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:50px;padding:9px 10px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:#edf5f2d6;text-align:left;transition:background .16s ease,border-color .16s ease,color .16s ease}.nav-item:hover{background:#ffffff14}.nav-item.active{background:#ffffff1f;border-color:#ffffff24;color:#fff}.nav-item-label{font-size:14px;font-weight:700}.nav-item-meta{font-size:11px;color:#edf5f28f;line-height:1.35}.sidebar-meta{padding:12px 16px 16px;border-top:1px solid rgba(255,255,255,.08)}.sidebar.collapsed .brand-copy,.sidebar.collapsed .sidebar-section h2,.sidebar.collapsed .nav-item-meta,.sidebar.collapsed .sidebar-meta{display:none}.sidebar.collapsed .sidebar-top{padding:16px 12px}.sidebar.collapsed .brand-block{justify-content:center}.sidebar.collapsed .sidebar-scroll{padding:12px 8px}.sidebar.collapsed .nav-item{min-height:42px;align-items:center;justify-content:center;padding:8px 6px}.sidebar.collapsed .nav-item-label{max-width:42px;overflow:hidden;font-size:12px;text-align:center;white-space:nowrap;text-overflow:ellipsis}.sidebar.collapsed .nav-item-label:first-letter{font-size:15px}.main-panel{display:flex;flex-direction:column;min-width:0;background:var(--bg-app)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:86px;padding:18px 24px;background:var(--bg-surface);border-bottom:1px solid var(--border-soft)}.toolbar-title h1{margin:0;font-size:24px;line-height:1.2}.toolbar-title p{max-width:760px;margin:5px 0 0;color:var(--text-subtle);line-height:1.45}.toolbar-actions{display:flex;align-items:center;gap:10px}.runtime-pill{display:inline-flex;align-items:center;min-height:38px;padding:0 13px;border-radius:999px;background:var(--success-soft);color:var(--success);font-size:13px;font-weight:800;white-space:nowrap}.runtime-pill.busy{background:var(--warning-soft);color:var(--warning)}.role-switcher{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 10px;border:1px solid var(--border-soft);border-radius:var(--radius-md);background:#fff}.role-switcher label{color:var(--text-subtle);font-size:12px;font-weight:700}.role-switcher select,.filter-bar select,.filter-bar input,.form-grid input,.form-grid select{min-height:38px;padding:0 11px;border-radius:var(--radius-sm);border:1px solid var(--border-soft);background:#fff;color:var(--text-main);outline:none;transition:border-color .16s ease,box-shadow .16s ease}.role-switcher select{min-height:32px;border:0;font-weight:700}.role-switcher select:focus,.filter-bar select:focus,.filter-bar input:focus,.form-grid input:focus,.form-grid select:focus{border-color:#0f766e70;box-shadow:0 0 0 3px #0f766e1f}.page-scroll{flex:1;min-height:0;overflow:auto;padding:18px 24px 24px}.page-stack{display:flex;flex-direction:column;gap:var(--space-4)}.content-card,.form-panel,.history-panel,.table-card,.planning-grid article,.mini-stat,.detail-panel{background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:0}.page-header h3,.form-panel h3,.history-panel h3,.planning-grid h3,.detail-panel h3{margin:0 0 8px;font-size:17px}.page-header p,.form-panel p,.history-panel p,.planning-grid p,.detail-panel p{margin:0;color:var(--text-subtle);line-height:1.5}.page-header-badge,.status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.status-pill.info,.page-header-badge.info{background:var(--info-soft);color:var(--accent-deep)}.status-pill.warning,.page-header-badge.warning{background:var(--warning-soft);color:var(--warning)}.status-pill.success,.page-header-badge.success{background:var(--success-soft);color:var(--success)}.status-pill.danger,.page-header-badge.danger{background:var(--danger-soft);color:var(--danger)}.filter-bar,.form-panel,.history-panel,.content-card{padding:var(--space-4)}.filter-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);align-items:end;background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg)}.filter-field{display:flex;flex-direction:column;gap:6px}.filter-field.span-2{grid-column:span 2}.filter-field label,.form-grid label{font-size:12px;color:var(--text-subtle);font-weight:700}.form-grid{display:grid;grid-template-columns:148px minmax(0,1fr);gap:10px 14px;align-items:center}.form-actions,.action-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--space-3)}.inline-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.inline-form input,.inline-form select{min-height:38px;padding:0 11px;border-radius:var(--radius-sm);border:1px solid var(--border-soft);background:#fff;color:var(--text-main)}.compact-panel{display:flex;flex-direction:column;gap:12px}.mini-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-3)}.mini-stat,.detail-panel{padding:var(--space-3)}.mini-stat span{display:block;color:var(--text-subtle);font-size:12px;font-weight:700}.mini-stat strong{display:block;margin-top:6px;font-size:22px}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.detail-panel p{margin-bottom:6px}.compact-table table{min-width:620px}.btn,.form-actions button,.action-row button,td button{min-height:36px;padding:0 13px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--bg-accent-soft);color:var(--accent-deep);font-weight:800;transition:background .16s ease,border-color .16s ease,color .16s ease}.btn:hover,.form-actions button:hover,.action-row button:hover,td button:hover{background:#d2e8e2}.btn:disabled,.form-actions button:disabled,.action-row button:disabled,td button:disabled{cursor:not-allowed;opacity:.52}.btn-primary,.form-actions button:first-child{background:var(--accent);color:#fff}.btn-primary:hover,.form-actions button:first-child:hover{background:var(--accent-deep)}.btn-secondary{background:#fff;color:var(--text-main);border-color:var(--border-soft)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.table-card{overflow:hidden}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:14px 16px;border-bottom:1px solid var(--border-soft)}.table-toolbar strong{font-size:15px}.table-toolbar p{margin:3px 0 0;color:var(--text-subtle);font-size:13px}.table-wrapper{overflow:auto}.data-table-card{min-height:0}.data-table-scroll{max-height:calc(100vh - 260px);min-height:360px;overflow:auto;outline:none}.data-table{min-width:max(980px,100%)}.data-table thead th{position:sticky;top:0;z-index:2}.sort-header{width:100%;min-height:28px;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;padding:0;border:0;background:transparent;color:inherit;font-weight:800;text-align:left}.sort-header:hover{color:var(--accent-deep)}.sort-header.active{color:var(--accent)}.sort-indicator{color:var(--text-muted);font-size:12px}table{width:100%;min-width:820px;border-collapse:collapse}thead th{padding:11px 14px;background:var(--bg-surface-soft);color:var(--text-subtle);font-size:12px;font-weight:800;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border-soft)}tbody td{padding:11px 14px;color:var(--text-main);border-bottom:1px solid rgba(23,49,45,.07);vertical-align:top}tbody tr:hover td{background:var(--bg-hover)}.alert{padding:12px 14px;border-radius:var(--radius-md);background:var(--danger-soft);border:1px solid rgba(200,76,71,.16);color:var(--danger)}.empty-state{padding:32px 20px;text-align:center;color:var(--text-subtle)}.planning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.planning-grid article{padding:var(--space-3)}pre{margin:0;padding:14px;overflow:auto;border-radius:var(--radius-md);background:#102824;color:#dff3ed;font-size:12px;line-height:1.6}@media (max-width: 1080px){.app-shell{height:auto;min-height:100vh;padding:0}.workspace,.workspace.sidebar-collapsed{grid-template-columns:1fr;height:auto;min-height:100vh;border-radius:0}.sidebar{max-height:42vh}.sidebar.collapsed .brand-copy,.sidebar.collapsed .sidebar-section h2,.sidebar.collapsed .nav-item-meta,.sidebar.collapsed .sidebar-meta,.sidebar.collapsed .sidebar-toggle{display:block}.sidebar.collapsed .nav-item{align-items:flex-start}.nav-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{align-items:flex-start}.toolbar-actions{align-items:stretch}.planning-grid,.mini-stat-grid,.detail-grid,.filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.toolbar{flex-direction:column;padding:16px}.toolbar-title h1{font-size:21px}.toolbar-actions{width:100%;flex-direction:column}.role-switcher{justify-content:space-between}.page-scroll{padding:14px}.nav-list,.planning-grid,.mini-stat-grid,.detail-grid,.filter-bar,.form-grid{grid-template-columns:1fr}.filter-field.span-2{grid-column:auto}table{min-width:680px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
