/* 基础色彩和间距适用于所有页面。 */
:root{font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#202b42;background:#f7f8fb;font-synthesis:none;--brand:#365eef;--muted:#8490a6;--line:#e8ecf3;--nav:238px}*{box-sizing:border-box}body{margin:0;font-size:14px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #adbcff;outline-offset:3px}button{transition:background .16s,color .16s,box-shadow .16s}h1,h2,h3,p{margin:0}h1{font-size:28px;font-weight:650;letter-spacing:-.7px}h2{font-size:17px;font-weight:650}h3{font-size:15px}small{font-size:12px}svg{width:20px;height:20px;flex-shrink:0}button svg{pointer-events:none}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;overflow-wrap:anywhere}.boot{min-height:100vh;display:grid;place-items:center;color:var(--muted)}
/* 固定导航和工作空间抬头。 */
.shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--nav);background:white;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:32px 20px 22px;z-index:10}.brand{display:flex;align-items:center;gap:11px;font-size:23px;font-weight:750;letter-spacing:-.7px;color:#1c2842}.brand img{width:36px;height:36px}.brand small{color:var(--muted);font-size:10px;letter-spacing:2px;font-weight:500;display:block;margin-top:3px}.nav-label{color:#a1aabd;font-size:11px;letter-spacing:1.5px;margin:44px 14px 16px}.nav{display:grid;gap:8px}.nav button{display:flex;align-items:center;gap:13px;border:0;padding:13px 15px;border-radius:9px;background:transparent;color:#6a7690;text-align:left;font-weight:550;min-height:47px}.nav button:hover{background:#f7f8fc}.nav button.active{background:#edf1ff;color:var(--brand)}.nav button.active::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand);margin-left:auto}.sidebar-foot{margin-top:auto;padding:24px 10px 0}.workflow-note{padding:15px;border-radius:12px;background:#f8f9fc;line-height:1.9;font-size:12px;color:#7f8ca2;margin-bottom:20px}.workflow-note strong{color:#59647b;font-size:12px}.user{display:flex;align-items:center;gap:10px}.avatar{display:grid;place-items:center;width:35px;height:35px;background:#eef1f8;color:#627093;border-radius:50%;font-size:12px;font-weight:650}.user-info{flex:1;min-width:0}.user-info strong{font-size:12px;display:block}.user-info small{font-size:10px;color:var(--muted)}.icon-button{background:none;border:0;color:#8b96a8;padding:6px;border-radius:6px;display:flex;align-items:center}.icon-button:hover{background:#eef1f8;color:#344563}.workspace{margin-left:var(--nav);width:calc(100% - var(--nav))}.topbar{height:77px;padding:0 42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#ffffffbd;gap:16px}.breadcrumb{font-size:12px;color:#939db0;display:flex;align-items:center;gap:12px}.breadcrumb strong{font-weight:500;color:#53627d}.top-actions{display:flex;align-items:center;gap:16px}.status-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:#29ad80;margin-right:7px}.top-date{font-size:12px;color:#8b96aa}.project-select{background:white;border:1px solid var(--line);padding:9px 12px;border-radius:7px;color:#536079;max-width:210px}.content{padding:35px 42px 32px;max-width:1680px;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:27px}.page-head p{color:#8a96aa;margin-top:9px;font-size:13px;line-height:1.7}.eyebrow{font-size:10px;letter-spacing:2px;color:#8c99b1;margin-bottom:9px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:9px 15px;border-radius:7px;border:1px solid #dfe5ee;background:white;color:#5e6b82;font-size:12px;font-weight:550;white-space:nowrap}.btn:hover{background:#f3f5fb}.btn.primary{background:var(--brand);border-color:var(--brand);color:white;box-shadow:0 3px 6px #365eef19}.btn.primary:hover{background:#294dd5}.btn.danger{border-color:#f2ccd0;color:#bc4857}.btn.small{padding:6px 10px;min-height:30px}.btn.link{border:0;background:transparent;color:var(--brand);padding:4px 0;min-height:28px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.panel{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.panel-head{padding:23px 25px;display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head p{font-size:12px;color:#98a2b4;margin-top:6px}.tag{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;font-size:11px;border-radius:5px;line-height:1.5;white-space:nowrap;font-weight:500;background:#f0f2f7;color:#7b88a1}.tag.blue{background:#edf2ff;color:#5475d5}.tag.orange{background:#fff3e5;color:#c6903f}.tag.green{background:#eaf7f1;color:#40967a}.tag.red{background:#fff0f0;color:#ca6370}.tag.purple{background:#f1edff;color:#8e73be}
/* 工作概览的指标和任务分区。 */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:26px}.stat{padding:22px 23px;background:white;border:1px solid var(--line);border-radius:12px}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#8490a4;font-size:12px}.stat-icon{width:33px;height:33px;border-radius:9px;display:grid;place-items:center;background:#eff3ff;color:#7891e2}.stat:nth-child(2) .stat-icon{background:#fff5e9;color:#d3a96c}.stat:nth-child(3) .stat-icon{background:#f2effb;color:#a391c6}.stat:nth-child(4) .stat-icon{background:#edf8f2;color:#75af95}.stat strong{display:block;font-size:34px;font-weight:600;letter-spacing:-1px;margin:12px 0 13px;font-variant-numeric:tabular-nums}.stat small{font-size:11px;color:#a3acbb}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);gap:24px;align-items:start}.dashboard-stack{display:grid;gap:24px}.record{padding:19px 25px;border-top:1px solid #f0f2f6;display:flex;gap:13px;align-items:flex-start;cursor:pointer}.record:hover{background:#fafbff}.record-icon{width:31px;height:31px;border-radius:8px;background:#edf2ff;color:#7896db;display:grid;place-items:center;flex-shrink:0}.record-icon.bug{background:#fff1f0;color:#d48d88}.record-main{min-width:0;flex:1}.record-title{font-size:13px;font-weight:550;line-height:1.7;overflow-wrap:anywhere}.record-meta{font-size:11px;color:#9ba5b7;margin-top:7px;display:flex;gap:12px;flex-wrap:wrap}.record .tag{margin-top:3px}.flow{padding:0 25px 24px}.flow-row{display:flex;gap:12px;align-items:flex-start;margin-top:22px;position:relative}.flow-index{font-size:10px;color:#879bcf;background:#eff3fc;display:grid;place-items:center;width:26px;height:26px;flex-shrink:0;border-radius:50%}.flow-row strong{font-size:12px;font-weight:550;display:block;margin:2px 0 5px}.flow-row p{font-size:11px;line-height:1.8;color:#a0a9b9}.service-row{padding:14px 24px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #f0f2f6;font-size:12px;color:#8290a7}.footnote{margin-top:26px;font-size:11px;color:#a2acbc;display:flex;align-items:center;gap:7px;line-height:1.8}
/* 筛选、分页、表格与空状态。 */
.toolbar{padding:18px 22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.filters{display:flex;gap:7px;flex-wrap:wrap}.filter{border:0;background:transparent;color:#8490a6;font-size:12px;border-radius:6px;padding:8px 11px}.filter.active{background:#edf1fd;color:var(--brand);font-weight:600}.search{display:flex;align-items:center;gap:8px;background:#fafbfc;border:1px solid #e8ecf3;border-radius:7px;padding:0 10px;min-height:35px;color:#a3adbd}.search input{border:0;outline:0;background:none;width:175px;font-size:12px;color:#40506c;padding:8px 0}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:650px;text-align:left}th{font-size:11px;color:#929eb2;background:#fcfcfe;font-weight:500;padding:13px 22px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:17px 22px;border-bottom:1px solid #f0f2f6;font-size:12px;color:#7e8ba2;max-width:420px}tbody tr:last-child td{border-bottom:0}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:#fafbff}.cell-title{color:#394861;font-weight:550;line-height:1.65;overflow-wrap:anywhere}.cell-sub{font-size:10px;color:#a1aabd;margin-top:5px}.empty{padding:55px 24px;text-align:center;color:#9aa6b8}.empty-mark{margin:0 auto 16px;width:50px;height:50px;background:#f3f6fd;color:#98abd8;border-radius:15px;display:grid;place-items:center}.empty h3{font-size:14px;color:#72819c;font-weight:500;margin-bottom:8px}.empty p{font-size:12px;line-height:1.9;max-width:380px;margin:auto}.empty .btn{margin-top:18px}.pagination{border-top:1px solid var(--line);padding:15px 22px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#97a2b6}.alert{padding:14px 18px;background:#fff6e9;border:1px solid #f5e6ce;color:#a8844e;border-radius:8px;margin-bottom:20px;font-size:12px;line-height:1.8}.error{background:#fff3f3;color:#bd5c66;border-color:#f1d5d9}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.project-card{padding:24px}.project-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.project-avatar{width:40px;height:40px;border-radius:10px;background:#edf2ff;color:#6b89d9;display:grid;place-items:center;font-weight:600}.project-card h2{font-size:16px;margin-bottom:7px}.project-card .sources{display:flex;gap:5px;flex-wrap:wrap;margin:22px 0;min-height:25px}.project-card-foot{border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;align-items:center}.project-card-foot small{color:#a2adbd;font-size:10px}.queue-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:23px}.queue-card{padding:19px}.queue-card h3{font-size:12px;color:#7c8ba4;font-weight:500}.queue-card strong{display:block;font-size:27px;margin:17px 0 10px;font-weight:550}.queue-card small{color:#9ba6b7;font-size:10px;line-height:1.8}
/* 登录页以产品信息与独立登录表单分栏。 */
.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:white}.login-story{padding:55px 65px;background:#f2f5fd;display:flex;flex-direction:column;position:relative;overflow:hidden}.login-copy{margin:auto 0;max-width:460px;padding:70px 0}.login-copy h1{font-size:42px;line-height:1.45;letter-spacing:-1px;color:#293f6f}.login-copy h1 span{color:var(--brand)}.login-copy>p{font-size:14px;color:#8a9ab6;line-height:2;margin:22px 0 42px}.login-track{display:grid;gap:14px}.login-track div{display:flex;align-items:center;gap:14px;color:#6e80a1;font-size:13px}.login-track svg{background:white;box-sizing:content-box;padding:11px;border-radius:11px;color:#7e97d5}.login-foot{font-size:11px;color:#a2afc5}.login-form-wrap{display:grid;place-items:center;padding:40px}.login-form{width:100%;max-width:350px}.login-form h2{font-size:25px;font-weight:600;margin-bottom:12px}.login-form>p{font-size:12px;color:#99a4b6;margin-bottom:36px;line-height:1.9}.field{display:grid;gap:8px;margin-bottom:22px}.field label{font-size:12px;color:#6e7b94}.field input,.field textarea,.field select{border:1px solid #dfe5ef;background:white;border-radius:7px;width:100%;padding:12px;color:#3f4f6a;min-height:42px}.field textarea{resize:vertical;min-height:98px;line-height:1.8}.field small{color:#9da8b9;font-size:11px;line-height:1.8}.field input:disabled{background:#f6f7fa;color:#8e99ad}.login-form .btn{width:100%;margin-top:3px;min-height:44px}.login-policy{font-size:11px;color:#a3aec0;text-align:center;margin-top:26px;line-height:1.9}.form-error{font-size:12px;color:#c45a65;line-height:1.8;margin-bottom:14px}
/* 详情侧栏和项目编辑弹层使用原生对话框保持焦点约束。 */
dialog{color:inherit;border:0;padding:0;background:white;box-shadow:0 24px 100px #263d6333}dialog::backdrop{background:#16264655;backdrop-filter:blur(2px)}dialog.drawer{position:fixed;inset:0 0 0 auto;margin:0;height:100dvh;max-height:100dvh;width:min(720px,94vw);max-width:none;border-radius:16px 0 0 16px}dialog.editor{width:min(520px,92vw);border-radius:14px;max-height:90dvh}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:23px 28px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:2}.dialog-head h2{font-size:15px}.dialog-body{padding:27px 28px}.detail-title{font-size:23px;line-height:1.6;font-weight:600;margin:15px 0}.detail-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}.detail-section{margin-top:28px}.detail-section h3{font-size:12px;color:#8290a7;margin-bottom:12px;letter-spacing:.3px}.detail-section p,.detail-section li{font-size:13px;line-height:1.95;color:#53647e;white-space:pre-wrap;overflow-wrap:anywhere}.detail-section ul,.detail-section ol{padding-left:22px;margin:0}.detail-code{font-family:ui-monospace,Consolas,monospace;font-size:11px;line-height:1.9;white-space:pre-wrap;background:#f8f9fc;border:1px solid var(--line);padding:15px;border-radius:8px;overflow-wrap:anywhere;color:#7b88a1}.attachments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.attachment{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fafbfc}.attachment img{width:100%;height:120px;object-fit:contain;display:block}.attachment a{display:block;padding:10px;font-size:11px;overflow-wrap:anywhere}.completion{border:1px solid #daece4;border-radius:9px;background:#f7fcfa;padding:18px;margin-top:20px}.completion h3{color:#559c80}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:8px}.check-label{display:flex;gap:10px;align-items:center;font-size:12px;color:#7d8ba4;margin:20px 0;line-height:1.8}.check-label input{width:16px;height:16px;accent-color:var(--brand)}.token-box{padding:17px;background:#f4f7ff;border:1px solid #dbe3fc;border-radius:8px;overflow-wrap:anywhere;margin:15px 0;font-size:13px;line-height:1.9;color:#4c6ec8}.loading{padding:70px;text-align:center;color:#a0abc0;font-size:13px}.notice{max-width:430px;background:#263c60;color:white;padding:13px 20px;border-radius:9px;box-shadow:0 6px 24px #243c6130;line-height:1.8;font-size:12px;margin-top:10px}#notices{position:fixed;right:28px;bottom:25px;z-index:100}.mobile-brand{display:none}
/* 中等屏幕减少列数，小屏幕保留完整操作和可滚动表格。 */
@media(min-width:1700px){.content{padding-top:45px}.stats{gap:24px}.stat{padding:27px}}@media(max-width:1200px){:root{--nav:210px}.content{padding:28px}.topbar{padding:0 28px}.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:18px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.queue-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stats{gap:12px}.stat{padding:17px}.login-story{padding:40px}.login-copy h1{font-size:34px}}@media(max-width:900px){:root{--nav:180px}.sidebar{padding:27px 12px}.brand{font-size:20px}.brand img{width:31px;height:31px}.top-date{display:none}.content{padding:25px 22px}.topbar{padding:0 22px}.dashboard-grid{grid-template-columns:1fr}.dashboard-stack{grid-template-columns:1fr 1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.login-page{grid-template-columns:1fr 1fr}.login-story{padding:35px}.login-copy h1{font-size:29px}}@media(max-width:640px){.shell{display:block}.sidebar{position:relative;width:100%;height:auto;padding:16px;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:19px}.brand small{display:none}.brand img{width:29px;height:29px}.nav-label,.sidebar-foot{display:none}.nav{display:flex;gap:3px;margin-top:17px;overflow-x:auto}.nav button{font-size:11px;gap:5px;min-height:37px;padding:9px 8px;white-space:nowrap;flex-shrink:0}.nav button svg{width:15px;height:15px}.nav button.active::after{display:none}.workspace{margin-left:0;width:100%}.topbar{height:58px;padding:0 18px}.topbar .breadcrumb{font-size:11px}.project-select{max-width:160px;font-size:11px}.content{padding:24px 16px}.page-head{align-items:flex-start;gap:12px;margin-bottom:21px}h1{font-size:23px}.page-head p{font-size:12px}.page-head>.btn{padding:8px 10px}.stat strong{font-size:29px}.stat-top{font-size:11px}.stat-icon{width:27px;height:27px}.dashboard-stack{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr}.queue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{padding:14px}.filters{gap:2px}.filter{padding:8px;font-size:11px}.search{width:100%}.search input{width:100%}.panel-head{padding:20px}.record{padding:17px 20px}.record .tag{font-size:10px}.login-page{display:block}.login-story{padding:24px;background:#f2f5fd}.login-copy,.login-foot{display:none}.login-form-wrap{padding:60px 28px}.login-form h2{font-size:24px}.dialog-head,.dialog-body{padding:22px}.attachments{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-title{font-size:21px}.pagination{gap:12px}.pagination .actions{gap:6px}#notices{left:16px;right:16px;bottom:16px}.footnote{font-size:10px}}
/* 手机保留退出入口，五个导航项目在单行中完整可见。 */
@media(max-width:640px){.sidebar-foot{display:block;position:absolute;right:16px;top:15px;padding:0;margin:0}.sidebar-foot .workflow-note,.sidebar-foot .user-info,.sidebar-foot .avatar{display:none}.nav{overflow:visible}.nav button{flex:1;min-width:0;flex-direction:column;gap:5px;padding:8px 2px;font-size:10px}.nav button svg{width:17px;height:17px}}
/* 卡片操作增加删除入口后，在窄屏自动换行并保留版本信息。 */
.project-card-foot{gap:12px;flex-wrap:wrap}.project-card-foot>.actions{margin-left:auto}
/* 尊重用户减少动效的系统设置。 */
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* 完整对接文档独立滚动，桌面与手机都可直接操作复制按钮。 */
dialog.editor.onboarding{width:min(780px,92vw)}.onboarding-document{max-height:48dvh;overflow:auto}
