:root{color:#111827;background:#f6f7f9;color-scheme:light;font-family:Inter,PingFang SC,Hiragino Sans GB,Microsoft YaHei,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.48;--bg: #f6f7f9;--bg-soft: #eef0f3;--surface: #ffffff;--surface-raised: #ffffff;--surface-hover: #f8fafc;--border: #d9dee7;--border-soft: #e8ebf0;--text: #111827;--text-strong: #0f172a;--muted: #6b7280;--muted-strong: #4b5563;--green: #22c55e;--green-strong: #16a34a;--green-soft: rgba(34, 197, 94, .11);--green-border: rgba(22, 163, 74, .28);--amber: #f59e0b;--red: #ef4444;--blue-black: #0f172a;--radius: 8px;--pill-radius: 999px;--shadow: 0 4px 16px rgba(15, 23, 42, .045);--shadow-hover: 0 8px 22px rgba(15, 23, 42, .065);--shadow-focus: 0 0 0 3px rgba(34, 197, 94, .14);--content-max-width: 1440px;--content-padding: 24px}*{box-sizing:border-box}html,body,#root{height:100%}html{scrollbar-color:#cfd6e2 transparent;scrollbar-width:thin}body{margin:0;min-width:320px;overflow:hidden}button,input,textarea,select{font:inherit}button{align-items:center;background:var(--blue-black);border:1px solid var(--blue-black);border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;gap:8px;justify-content:center;min-height:32px;padding:6px 12px;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}button:hover{background:#111827;box-shadow:var(--shadow)}button svg{stroke-width:2}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid rgba(34,197,94,.38);outline-offset:2px}button:disabled{box-shadow:none;cursor:not-allowed;opacity:.48;transform:none}button.danger-button{background:#e11d2e;border-color:#e11d2e}button.danger-button:hover{background:#be123c;border-color:#be123c}input,textarea,select{background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--text);min-height:34px;padding:7px 10px;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;width:100%}input:hover,textarea:hover,select:hover{border-color:#cfd6e2}textarea{min-height:130px;resize:vertical}::placeholder{color:#9ca3af}*::-webkit-scrollbar{height:10px;width:10px}*::-webkit-scrollbar-thumb{background:#cfd6e2;border:3px solid transparent;border-radius:999px;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#b8c2d1;background-clip:padding-box}.app-shell{--sidebar-width: 248px;--sidebar-inset: 12px;--sidebar-gap: 8px;background:var(--bg);display:grid;grid-template-columns:calc(var(--sidebar-width) + var(--sidebar-inset) + var(--sidebar-gap)) minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:100dvh;min-height:0;overflow:hidden;transition:grid-template-columns .2s ease}.app-shell.sidebar-collapsed{--sidebar-width: 72px}.brand{align-items:center;color:var(--text-strong);display:flex;font-weight:700;gap:9px;min-width:0}.brand svg{color:var(--green-strong);flex:0 0 auto}.brand.large{font-size:20px;margin-bottom:8px}.status-chip{align-items:center;background:#f3f4f6;border:1px solid var(--border-soft);border-radius:999px;color:var(--muted-strong);display:inline-flex;font-size:12px;line-height:1;min-height:22px;padding:4px 8px;white-space:nowrap}.sidebar{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 8px 20px #0f172a0b;display:flex;flex-direction:column;gap:12px;height:calc(100dvh - var(--sidebar-inset) * 2);min-height:0;overflow:visible;padding:14px;position:relative;transition:padding .2s ease}.sidebar-header{align-items:center;display:flex;gap:8px;justify-content:space-between;min-height:30px}.sidebar-header .brand{flex:1;overflow:hidden;padding:0 4px}.sidebar-toggle{background:#f8fafc;border-color:var(--border-soft);border-radius:10px;box-shadow:none;color:var(--muted-strong);flex:0 0 auto;min-height:34px;padding:0;width:34px}.sidebar-toggle:hover{background:#f6f7f9;border-color:#d5dbe5;box-shadow:none;color:var(--text-strong)}.nav-list{align-content:start;display:grid;flex:1;gap:6px;grid-auto-rows:max-content;min-height:0;overflow-y:auto;padding-right:2px}.nav-list button,.ghost-button{background:transparent;border-color:transparent;border-radius:10px;box-shadow:none;color:var(--muted-strong);justify-content:flex-start;position:relative;width:100%}.ghost-button{align-self:start;margin-top:2px}.nav-list button svg,.ghost-button svg{color:#9ca3af}.nav-list button svg:last-child{margin-left:auto;opacity:.46}.nav-list button:hover,.ghost-button:hover{background:#f6f7f9;border-color:var(--border-soft);box-shadow:none;color:var(--text-strong)}.nav-list button.is-disabled{color:#b3bac5;cursor:not-allowed}.nav-list button.is-disabled svg{color:#c4c9d2}.nav-list button.is-disabled:hover,.nav-list button.is-disabled:focus-visible{background:transparent;border-color:transparent;box-shadow:none;color:#aeb5c0;transform:none}.nav-list button.is-disabled:after{background:var(--blue-black);border:1px solid rgba(15,23,42,.12);border-radius:8px;box-shadow:var(--shadow-hover);color:#fff;content:attr(data-hint);font-size:12px;line-height:1;opacity:0;padding:7px 9px;pointer-events:none;position:absolute;right:8px;top:50%;transform:translate(-4px,-50%);transition:opacity .18s ease,transform .18s ease;white-space:nowrap;z-index:30}.nav-list button.is-disabled:hover:after,.nav-list button.is-disabled:focus-visible:after{opacity:1;transform:translateY(-50%)}.nav-list button.active{background:var(--green-soft);border-color:var(--green-border);color:var(--green-strong)}.nav-list button.active svg{color:var(--green-strong)}.nav-alert-badge{align-items:center;background:#0ea5e9;border:2px solid #ffffff;border-radius:999px;box-shadow:0 4px 10px #0ea5e938;color:#fff;display:inline-flex;font-size:11px;font-weight:800;height:20px;justify-content:center;line-height:1;min-width:20px;padding:0 5px;position:absolute;right:26px;top:50%;transform:translateY(-50%)}.sidebar-section{border-top:1px solid var(--border-soft);display:grid;margin-top:auto;padding-top:10px}.section-label{color:var(--muted);font-size:12px;letter-spacing:0}.account-block{align-items:center;border-radius:8px;color:var(--text-strong);display:grid;gap:6px;grid-template-columns:28px minmax(0,1fr) 30px 30px 30px;min-height:42px;padding:6px 4px 6px 6px}.account-block:hover{background:#f8fafc}.account-avatar{align-items:center;background:var(--green-soft);border:1px solid var(--green-border);border-radius:50%;color:var(--green-strong);display:inline-flex;font-size:12px;font-weight:700;height:28px;justify-content:center;width:28px}.account-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-icon-button{background:transparent;border-color:transparent;box-shadow:none;color:var(--muted-strong);min-height:30px;padding:0}.account-icon-button:hover{background:#fff;border-color:var(--border-soft);box-shadow:var(--shadow);color:var(--text-strong)}.muted{color:var(--muted)}@media (min-width: 981px){.sidebar{left:var(--sidebar-inset);position:fixed;top:var(--sidebar-inset);width:var(--sidebar-width);z-index:20}.sidebar.is-collapsed{align-items:center;padding:16px 12px}.sidebar.is-collapsed .sidebar-header{display:grid;gap:8px;justify-items:center;width:100%}.sidebar.is-collapsed .brand{justify-content:center;position:relative;width:100%}.sidebar.is-collapsed .brand span,.sidebar.is-collapsed .nav-list button span,.sidebar.is-collapsed .ghost-button span,.sidebar.is-collapsed .section-label,.sidebar.is-collapsed .account-block,.sidebar.is-collapsed .nav-list button svg:last-child{display:none}.sidebar.is-collapsed .nav-list,.sidebar.is-collapsed .sidebar-section{width:100%}.sidebar.is-collapsed .sidebar-section{justify-items:center;padding-top:12px}.sidebar.is-collapsed .nav-list{overflow:visible;padding-right:0}.sidebar.is-collapsed .nav-list button,.sidebar.is-collapsed .ghost-button{justify-content:center;min-height:40px;padding:0}.sidebar.is-collapsed .nav-alert-badge{min-width:16px;padding:2px 4px;right:4px;top:5px;transform:none}.sidebar.is-collapsed .ghost-button,.sidebar.is-collapsed .sidebar-toggle{width:40px}.sidebar .ghost-button{align-self:flex-start;justify-content:center;min-height:34px;padding:0;width:34px}.sidebar-section-head .ghost-button{margin-top:0}.sidebar .ghost-button span{display:none}.sidebar.is-collapsed .brand:after,.sidebar.is-collapsed .nav-list button:after,.sidebar.is-collapsed .ghost-button:after{background:var(--blue-black);border:1px solid rgba(15,23,42,.12);border-radius:8px;box-shadow:var(--shadow-hover);color:#fff;content:attr(data-label);font-size:12px;left:calc(100% + 12px);line-height:1;opacity:0;padding:7px 9px;pointer-events:none;position:absolute;right:auto;top:50%;transform:translate(-4px,-50%);transition:opacity .18s ease,transform .18s ease;white-space:nowrap;z-index:30}.sidebar.is-collapsed .brand:hover:after,.sidebar.is-collapsed .nav-list button:hover:after,.sidebar.is-collapsed .nav-list button:focus-visible:after,.sidebar.is-collapsed .ghost-button:hover:after,.sidebar.is-collapsed .ghost-button:focus-visible:after{opacity:1;transform:translateY(-50%)}}.workspace{grid-column:2;height:100%;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;padding:var(--content-padding)}.content-container{margin:0 auto;max-width:var(--content-max-width);padding:var(--content-padding);width:100%}.content-container,.workspace>.view,.workspace>.notice{margin-inline:auto;width:min(100%,var(--content-max-width))}.view{display:grid;gap:16px;min-width:0}.app-footer{color:var(--muted);font-size:12px;line-height:1;margin:18px auto 0;text-align:center;width:min(100%,var(--content-max-width))}.app-footer a{color:inherit;text-decoration:none}.app-footer a:hover{color:var(--muted-strong);text-decoration:underline}.page-header{align-items:center;display:flex;gap:12px;justify-content:space-between;min-height:auto}.page-header-main{display:grid;gap:2px;min-width:0}.page-header-actions{align-items:center;display:flex;flex:0 0 auto;flex-wrap:wrap;gap:10px;justify-content:flex-end}h1,h2,p{margin:0}h1{align-items:center;color:var(--text-strong);display:inline-flex;font-size:20px;font-weight:760;gap:5px;letter-spacing:0;line-height:1.15}h2{color:var(--text-strong);font-size:15px;font-weight:650}.page-header p{color:var(--muted);font-size:13px;line-height:1.55}.page-header p{max-width:520px;padding-top:3px;text-align:right}@media (max-width: 980px){.app-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.sidebar{border-radius:0;border-bottom:1px solid var(--border-soft);border-right:0;box-shadow:none;height:auto;max-height:38dvh;padding:10px 12px}.workspace{grid-column:auto}.sidebar-toggle{display:none}.nav-list{grid-template-columns:repeat(4,minmax(0,1fr))}.nav-list button{justify-content:center}.nav-list button svg:last-child,.sidebar-section{display:none}.article-search-field{width:100%}}@media (max-width: 620px){.workspace{padding:12px}.page-header{align-items:flex-start;display:grid}.page-header p{max-width:none;padding-top:0;text-align:left}h1{font-size:20px}.nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.article-search-field:focus-within{border-color:var(--green-border);box-shadow:var(--shadow-focus)}.app-dropdown{position:relative}.app-dropdown-trigger{align-items:center;background:#f8fafc;border:1px solid transparent;border-radius:8px;box-shadow:none;color:var(--text-strong);display:inline-flex;font-size:13px;font-weight:600;gap:5px;justify-content:center;min-height:36px;padding:0 8px;width:auto}.app-dropdown-trigger:hover{background:#fff;border-color:var(--border-soft);box-shadow:none;transform:none}.app-dropdown-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-dropdown-trigger svg{color:var(--muted-strong);flex:0 0 auto}.app-dropdown-panel{background:#fff;border:1px solid var(--border-soft);border-radius:8px;box-shadow:0 16px 36px #0f172a1f;display:grid;left:0;max-height:280px;overflow:auto;padding:6px;position:absolute;top:calc(100% + 8px);width:max(100%,210px);z-index:35}.app-dropdown-panel button{background:transparent;border-color:transparent;box-shadow:none;color:var(--text-strong);font-size:13px;font-weight:600;justify-content:flex-start;min-height:34px;padding:0 10px;width:100%}.app-dropdown-panel button:hover{background:#f8fafc;box-shadow:none;color:var(--text-strong);transform:none}.app-dropdown-panel button:disabled{color:var(--muted);cursor:not-allowed;opacity:.58}.app-dropdown-panel button:disabled:hover{background:transparent}.app-dropdown-panel button.selected{background:var(--green-soft);color:var(--green-strong)}.app-dropdown-panel button.selected:disabled{background:transparent;color:var(--muted)}.knowledge-empty{color:var(--muted);background:#fff;border:1px dashed var(--border-soft);border-radius:8px;padding:28px;text-align:center}.material-type-icon{align-items:center;background:#fff;border:1px solid var(--border-soft);border-radius:8px;color:var(--green-strong);display:inline-flex;height:42px;justify-content:center;width:42px}.icon-button{background:transparent;border-color:transparent;box-shadow:none;color:var(--muted);flex:0 0 auto;justify-content:center;line-height:1;min-height:34px;padding:0;width:34px}.ghost-button.icon-button{align-self:center;justify-content:center;margin-top:0;min-height:34px;width:34px}.icon-button:hover{background:#f8fafc;border-color:var(--border-soft);box-shadow:none;color:var(--text-strong);transform:none}.icon-button.danger:hover,.danger .icon-button:hover{background:#fef2f2;border-color:#fecaca;color:var(--red)}.surface,.login-form{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.surface:hover{border-color:var(--border);box-shadow:var(--shadow)}.list-pane{overflow:hidden}.help-popover{align-items:center;display:inline-flex;flex:0 0 auto;margin-top:0;position:relative}.help-popover-trigger{align-items:center;background:transparent;border:1px solid #dbe3ea;border-radius:999px;box-shadow:none;color:#94a3b8;display:inline-grid;font-size:0;height:14px;justify-content:center;min-height:14px;padding:0;transform:none;width:14px}.help-popover-trigger>span{align-items:center;display:grid;font-size:9px;font-weight:750;height:10px;justify-items:center;line-height:10px;width:10px}.help-popover-trigger:hover,.help-popover-trigger:focus-visible{background:#eef6f1;border-color:var(--green-border);box-shadow:none;color:var(--green-strong);transform:none}.help-popover-panel{background:#fff;border:1px solid var(--border-soft);border-radius:8px;box-shadow:0 16px 36px #0f172a1f;color:var(--muted-strong);display:none;font-size:12px;font-weight:500;gap:6px;left:-10px;line-height:1.55;padding:10px 11px;position:absolute;top:calc(100% + 9px);width:min(300px,calc(100vw - 48px));z-index:40}.help-popover-panel:before{background:#fff;border-left:1px solid var(--border-soft);border-top:1px solid var(--border-soft);content:"";height:8px;left:13px;position:absolute;top:-5px;transform:rotate(45deg);width:8px}.help-popover:hover .help-popover-panel,.help-popover:focus-within .help-popover-panel{display:grid}.help-popover-panel strong{color:var(--text-strong);font-size:12px}.pane-toolbar{align-items:center;background:#f8fafc;border-bottom:1px solid var(--border-soft);color:var(--text-strong);display:flex;font-size:13px;font-weight:650;gap:10px;justify-content:space-between;min-height:40px;padding:0 12px}.compact-button{min-height:30px;padding:5px 11px}.secondary-button,.text-button{background:#fff;border-color:var(--border-soft);box-shadow:none;color:var(--text-strong)}.secondary-button:hover,.text-button:hover{background:#f8fafc;border-color:var(--border);box-shadow:none;color:var(--text-strong);transform:none}.text-button{border-color:transparent;padding-inline:7px}.error-text{color:var(--red)}.material-status-icon{align-items:center;display:inline-flex;justify-content:center}.material-status-icon.is-success{color:var(--green)}.material-status-icon.is-failed{color:var(--red)}.material-status-icon.is-pending{color:var(--muted)}.material-detail-view{gap:14px}.detail-back{justify-self:start}.empty-detail{color:var(--muted);padding:40px}.mini-pill{background:#ffffffb8;border:1px solid rgba(148,163,184,.24);border-radius:var(--pill-radius);color:var(--text-strong);font-size:12px;padding:3px 8px}.login-screen{background:var(--bg);display:grid;min-height:100vh;place-items:center;padding:16px}.login-form{display:grid;gap:13px;padding:18px;width:min(390px,100%)}.password-field{border-radius:8px;display:grid;grid-template-columns:minmax(0,1fr) 34px;position:relative}.password-field:focus-within{outline:2px solid rgba(34,197,94,.38);outline-offset:2px}.password-field input{border-radius:8px 0 0 8px}.password-field input:focus-visible,.password-field button:focus-visible{outline:none}.password-field button{background:#fff;border:1px solid var(--border);border-left:0;border-radius:0 8px 8px 0;box-shadow:none;color:var(--muted-strong);min-height:34px;padding:0}.password-field button:hover{background:#f8fafc;box-shadow:none;color:var(--text-strong)}.error,.notice{background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius);color:#b91c1c;padding:10px 12px}.notice{background:#ecfdf5;border-color:#bbf7d0;color:#166534}.table-wrap{overflow-x:auto}table{border-collapse:collapse;min-width:720px;width:100%}th,td{border-bottom:1px solid var(--border-soft);padding:10px 12px;text-align:left;vertical-align:middle}th{background:#fbfcfd;color:var(--muted);font-size:12px;font-weight:650}td{color:var(--text);font-size:13px}tr{transition:background .18s ease}tr:hover td{background:#fbfcfd}.empty-cell{color:var(--muted);height:88px;text-align:center}.title-cell{color:var(--text-strong);font-weight:600}.status-completed,.status-success,.status-active{background:var(--green-soft);border-color:var(--green-border);color:var(--green-strong)}.status-processing,.status-running,.status-pending{background:#ecfdf5;border-color:#22c55e38;color:#15803d}.status-failed,.status-invalid,.status-too_many{background:#fef2f2;border-color:#fecaca;color:#dc2626}.status-duplicate{background:#fffbeb;border-color:#f59e0b42;color:#b45309}.status-cancelled,.status-draft,.status-archived,.status-disabled{background:#f3f4f6;border-color:#e5e7eb;color:var(--muted-strong)}.status-rejected{background:#fef2f2;border-color:#fecaca;color:#dc2626}.status-published{background:#fffbeb;border-color:#f59e0b42;color:#b45309}.form-actions{align-items:center;display:flex;gap:8px;justify-content:flex-end}input[type=checkbox]{accent-color:var(--green-strong);min-height:auto;padding:0}.article-copy-message,.article-editor-message{background:#ecfdf5;border:1px solid #bbf7d0;border-radius:8px;color:#047857;font-size:13px;padding:8px 10px}.article-search-field{align-items:center;background:#fff;border:1px solid var(--border-soft);border-radius:8px;display:flex;flex:1;gap:8px;min-width:0;padding:0 12px}.article-search-field input{border:0;min-width:0;min-height:38px;padding:0}.article-empty-state,.article-panel-empty{align-items:center;background:#fbfcfd;border:1px dashed var(--border-soft);border-radius:8px;color:var(--muted);display:grid;justify-items:center;min-height:220px;padding:28px;text-align:center}.progress-wrap{align-items:center;color:var(--muted-strong);display:grid;gap:8px;grid-template-columns:90px 44px}.progress-wrap:before{background:#eef0f3;border:1px solid var(--border-soft);border-radius:var(--pill-radius);content:"";grid-column:1;grid-row:1;height:8px}.progress-bar{background:var(--green);border-radius:var(--pill-radius);grid-column:1;grid-row:1;height:8px;max-width:100%}.progress-wrap span:last-child{font-size:12px;grid-column:2}.dialog-shell-panel,.admin-user-modal-panel{background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 20px 70px #0f172a33;display:grid;gap:0;left:50%;max-height:calc(100vh - 48px);overflow:auto;padding:0;pointer-events:auto;position:absolute;top:50%;transform:translate(-50%,-50%);width:min(480px,calc(100vw - 48px))}.dialog-shell-panel>.pane-toolbar,.admin-user-modal-panel>.pane-toolbar{background:#fff;border-bottom:1px solid var(--border-soft);min-height:50px;padding:0 14px 0 16px}.dialog-shell-panel>.pane-toolbar strong,.admin-user-modal-panel>.pane-toolbar strong{color:var(--text-strong);font-size:14px;font-weight:750}.admin-user-modal-body{display:grid;gap:14px;padding:14px 16px 16px}.admin-user-modal-subject{align-items:center;background:#f8fafc;border:1px solid var(--border-soft);border-radius:8px;display:grid;gap:10px;grid-template-columns:30px minmax(0,1fr);min-height:48px;padding:8px 10px}.admin-user-modal-subject>span:last-child{display:grid;gap:2px;min-width:0}.admin-user-modal-subject strong{color:var(--text-strong);font-size:13px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-modal-subject small{color:var(--muted);font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-modal-panel label{color:var(--text-strong);display:grid;font-size:13px;font-weight:650;gap:7px}.admin-user-modal-panel input,.admin-user-modal-panel textarea{color:var(--text-strong);font-size:13px}.admin-user-modal-panel textarea{min-height:82px}.admin-user-modal-actions{background:#fbfcfd;border-top:1px solid var(--border-soft);padding:12px 16px}.article-modal{top:0;right:0;bottom:0;left:0;pointer-events:none;position:fixed;z-index:70}.article-modal-backdrop{display:none}
