:root{color:#1d1d1f;background:#f5f5f7;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--panel-bg: #ffffff;--panel-border: #d2d2d7;--card-hover-bg: #f9f9fb;--card-hover-border: #b8b8be;--text-muted: #6e6e73;--text-soft: #424245;--brand-blue: #0071e3;--brand-cyan: #32ade6;--brand-violet: #af52de;--pc-1: #5856d6;--pc-2: #007aff;--pc-3: #32ade6;--pc-4: #34c759;--pc-5: #ff9500;--pc-6: #ff3b30;--pc-7: #ff2d55;--pc-8: #af52de;--pc-9: #5ac8fa;--pc-10: #ff9500;--pc-11: #30d158;--pc-12: #bf5af2;--pc-13: #64d2ff;--pc-14: #ffcc00;--pc-15: #5e5ce6;--pc-16: #30d158}*{box-sizing:border-box}.app-loading{min-height:100vh;background:#f5f5f7}html,body,#app{margin:0;min-width:320px;min-height:100vh}body{color:#1d1d1f;background:#f5f5f7}a{color:inherit;text-decoration:none}a:hover{color:var(--brand-blue)}#app{min-height:100vh}.panel-kicker{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#6e6e73;font-weight:600}.full-width{width:100%}.auth-screen{position:relative;min-height:100vh;padding:48px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,460px);gap:28px;align-items:center;overflow:hidden;max-width:1280px;width:100%;margin:0 auto}.auth-page-wrap{min-height:100vh;display:flex;align-items:stretch;background:linear-gradient(160deg,#f5f5f7,#e8e8ed)}.auth-backdrop{position:absolute;width:420px;height:420px;border-radius:50%;filter:blur(80px);opacity:.15;pointer-events:none}.auth-backdrop-a{left:-100px;top:-80px;background:#007aff}.auth-backdrop-b{right:-120px;bottom:0;background:#5ac8fa}.auth-panel{position:relative;z-index:1;border-radius:24px;border:1px solid #d2d2d7;background:#fff;box-shadow:0 4px 24px #0000000f,0 1px 2px #0000000a}.auth-story{padding:42px}.auth-kicker{display:inline-flex;padding:8px 14px;border-radius:999px;background:#f0f0f5;color:#6e6e73;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.auth-story h1{margin:18px 0 16px;font-size:48px;line-height:1.08;font-weight:700;color:#1d1d1f}.auth-story p{max-width:640px;color:#6e6e73;font-size:16px}.auth-notes{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.auth-notes span{padding:9px 14px;border-radius:999px;background:#f0f0f5;color:#424245;font-size:12px;font-weight:500}.auth-form-panel{padding:32px}.auth-form-panel h2{margin:6px 0 18px;font-size:28px;font-weight:700}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.shell-sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;overflow-y:auto;padding:20px 14px;background:#fff;border-right:1px solid #e5e5ea;flex-shrink:0}.brand-block{display:flex;gap:12px;align-items:center;padding:6px 8px;margin-bottom:20px;flex-shrink:0}.brand-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#007aff,#5ac8fa);color:#fff;font-size:18px;font-weight:800}.brand-title{font-size:17px;font-weight:700;color:#1d1d1f}.brand-subtitle{color:#6e6e73;font-size:12px}.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0}.sidebar-admin-section{margin-top:auto;padding-top:12px;border-top:1px solid #e5e5ea}.nav-item-admin{color:#ff9500}.nav-item-admin:hover{background:#ff950014;border-color:#ff950033}.nav-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid transparent;border-radius:12px;background:transparent;color:#424245;font-size:14px;font-weight:500;cursor:pointer;transition:.2s ease}.nav-item:hover,.nav-item.active{background:#f0f0f5;border-color:#e5e5ea;color:#007aff}.nav-item .nav-badge{margin-left:auto;display:flex;align-items:center}.brief-label{color:#6e6e73;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.brief-value{margin-top:10px;font-size:24px;font-weight:700;color:#1d1d1f}.brief-meta{display:flex;flex-wrap:wrap;gap:10px 16px;margin:10px 0 14px;color:#6e6e73;font-size:13px}.shell-main{padding:28px;min-width:0;background:#f5f5f7}.shell-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}.shell-header h1{margin:6px 0 0;font-size:36px;line-height:1.08;font-weight:700;color:#1d1d1f}.header-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.header-user{display:flex;flex-direction:column;align-items:flex-end}.header-user span{color:#6e6e73;font-size:13px}.context-strip{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:18px;margin-bottom:20px;border-radius:16px;background:#fff;border:1px solid #e5e5ea;box-shadow:0 1px 3px #0000000a}.context-main{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:16px;flex:1 1 820px;align-items:stretch}.project-brief-card{padding:18px;border-radius:14px;background:#f9f9fb;border:1px solid #e5e5ea}.brief-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.brief-progress{font-size:28px;font-weight:700;color:#1d1d1f;line-height:1}.context-selectors,.context-tools{display:flex;flex-wrap:wrap;gap:12px}.context-selectors{align-items:center}.context-tools{align-items:flex-start;flex:0 0 auto}.shell-error{margin-bottom:18px}.page-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.content-card,.metric-card,.hero-card{border-radius:16px;border:1px solid #e5e5ea;background:#fff;box-shadow:0 1px 3px #0000000a,0 1px 2px #00000005}.content-card{padding:22px}.dark-surface{background:#f9f9fb}.alt-surface{background:linear-gradient(145deg,#f0f0ff,#f8f7ff);border-color:#d8d8e8}.teal-surface{background:linear-gradient(145deg,#f0fafb,#f5fdfe);border-color:#c8e8ec}.warm-surface{background:linear-gradient(145deg,#fffbf0,#fef8f0);border-color:#ede0c8}.hero-card{padding:28px}.hero-card-large{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;grid-column:span 8;background:linear-gradient(145deg,#fff,#f9f9fb)}.hero-copy h2{margin:8px 0 14px;font-size:34px;font-weight:700;color:#1d1d1f}.hero-copy p{max-width:680px;color:#6e6e73}.hero-stats-inline{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:16px}.hero-stats-inline div{padding:16px;border-radius:14px;background:#f5f5f7;border:1px solid #e5e5ea}.hero-stats-inline span{display:block;color:#6e6e73;font-size:12px}.hero-stats-inline strong{display:block;margin-top:8px;font-size:26px;font-weight:700;color:#1d1d1f}.metric-card{grid-column:span 3;padding:20px;min-width:0}.metric-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#f0f0f5;font-size:20px;color:#007aff}.metric-caption{margin-top:18px;color:#6e6e73;font-size:13px}.metric-number{margin-top:8px;font-size:28px;font-weight:700;color:#1d1d1f;line-height:1.2;word-break:break-all;overflow-wrap:break-word}.accent-blue{background:linear-gradient(145deg,#eef4ff,#f8fbff);border-color:#c8ddf8}.accent-violet{background:linear-gradient(145deg,#f4eeff,#faf7ff);border-color:#ddd0f0}.accent-green{background:linear-gradient(145deg,#eefaf2,#f6fdf8);border-color:#c8e8d2}.accent-orange{background:linear-gradient(145deg,#fff8ee,#fefcf6);border-color:#f0dfc0}.section-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.section-head h3{margin:6px 0 0;font-size:22px;font-weight:700;color:#1d1d1f}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.page-grid{max-width:1600px}.project-mosaic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project-mosaic.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.project-mosaic.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.mosaic-project{padding:18px;border-radius:14px;background:#fff;border:1px solid #e5e5ea}.compact-project{min-height:134px}.mosaic-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.mosaic-title-row h4,.external-preview-card h4{margin:0;font-size:17px;font-weight:600}.mosaic-project p,.external-preview-card p,.mini-item p,.rank-item span{color:#6e6e73;font-size:13px}.rank-list,.mini-list{display:grid;gap:10px}.rank-item,.mini-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:#f9f9fb;border:1px solid #e5e5ea}.mini-item.selectable{cursor:pointer;transition:.2s ease}.mini-item.selectable:hover,.mini-item.selectable.active{transform:translateY(-1px);background:#eef4ff;border-color:#b8d4f8;box-shadow:0 2px 8px #007aff14}.rank-value,.member-score{color:var(--brand-blue);font-weight:700}.stats-list{display:grid;gap:10px}.stats-line{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #e5e5ea}.stats-line span{color:#6e6e73}.stats-line strong{text-align:right;color:#1d1d1f}.focus-stack{display:flex;flex-wrap:wrap;gap:8px}.focus-pill,.subtle-tag{padding:8px 14px;border-radius:999px;background:#f0f0f5;color:#424245;font-size:13px;font-weight:500}.empty-note{color:#6e6e73;font-size:14px;line-height:1.7}.compact-note{margin-top:14px}.side-stack-card{display:flex;flex-direction:column}.status-inline{display:flex;align-items:center;gap:8px}.kanban-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.compact-kanban{grid-template-columns:repeat(5,minmax(0,1fr))}.kanban-column{padding:14px;border-radius:14px;background:#f9f9fb;border:1px solid #e5e5ea}.kanban-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;color:#6e6e73;font-weight:600;font-size:13px}.kanban-card{padding:12px;margin-bottom:8px;border-radius:10px;background:#fff;border:1px solid #e5e5ea;box-shadow:0 1px 2px #0000000a}.kanban-card.overdue{border-color:#ff3b30}.kanban-card.blocked{background:#fff5f5;border-color:#fecaca}.kanban-card-top{display:flex;justify-content:space-between;gap:8px}.kanban-card h4{margin:0;font-size:14px;font-weight:600;color:#1d1d1f}.kanban-card p,.kanban-meta{color:#6e6e73;font-size:12px}.kanban-meta{display:flex;justify-content:space-between;gap:8px;margin:6px 0}.external-preview-card{display:grid;gap:14px}.external-note{color:#007aff}.spaced-list .mini-item{padding:12px 14px}.form-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.el-table{--el-table-tr-bg-color: transparent;--el-table-header-bg-color: #f9f9fb;--el-table-bg-color: transparent;--el-fill-color-lighter: #fafafa;--el-table-row-hover-bg-color: #f0f5ff;--el-fill-color-blank: #ffffff;--el-table-text-color: #1d1d1f;--el-table-row-hover-text-color: #1d1d1f;--el-text-color-regular: #1d1d1f;--el-text-color-primary: #1d1d1f;--el-border-color-lighter: #e5e5ea;border-radius:12px;overflow:hidden}.el-table tr,.el-table th.el-table__cell,.el-table td.el-table__cell,.el-table .cell,.el-table__body tr:hover>td.el-table__cell{color:#1d1d1f}.el-table__body tr:hover>td.el-table__cell{background:#f0f5ff!important}.share-link{color:#007aff}.share-link:hover{color:#0056b3}.external-share-screen{min-height:100vh;padding:40px 24px;background:linear-gradient(160deg,#f5f5f7,#e8e8ed)}.external-share-shell{width:min(1180px,100%);margin:0 auto;display:grid;gap:18px}.external-share-hero{display:flex;justify-content:space-between;gap:20px;padding:28px;border-radius:20px;border:1px solid #e5e5ea;background:#fff;box-shadow:0 2px 12px #0000000f}.external-share-hero h1{margin:8px 0 12px;font-size:38px;line-height:1.08;font-weight:700}.external-share-hero p{margin:0;max-width:640px;color:#6e6e73}.external-share-summary{min-width:220px;padding:20px 22px;border-radius:16px;background:#f9f9fb;border:1px solid #e5e5ea}.external-share-summary span,.external-share-summary small{display:block;color:#6e6e73}.external-share-summary strong{display:block;margin:10px 0 8px;font-size:26px;color:#1d1d1f}.external-share-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.external-share-card{padding:24px}.external-share-progress{font-size:32px;font-weight:700;color:#1d1d1f}.external-share-note{margin:14px 0 0;color:#6e6e73}.external-share-error{border-radius:16px;overflow:hidden}.external-share-requirements{display:grid;gap:16px}.external-share-list{display:grid;gap:14px}.external-share-item{padding:18px;border-radius:14px;background:#fff;border:1px solid #e5e5ea}.external-share-item-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:10px}.external-share-item-head h4{margin:0 0 6px;font-size:17px;font-weight:600}.external-share-item-head p{margin:0;color:#6e6e73;font-size:13px}.el-progress-bar__outer{background-color:#e5e5ea}@media (max-width: 1440px){.hero-card-large{grid-column:span 12;flex-direction:column;align-items:flex-start}.hero-stats-inline{width:100%}.span-7{grid-column:span 7}.span-5{grid-column:span 5}.span-8{grid-column:span 8}.span-4{grid-column:span 4}.project-mosaic.three-col,.kanban-grid,.compact-kanban{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 1280px){.span-7,.span-5{grid-column:span 12}.span-8{grid-column:span 8}.span-4{grid-column:span 4}.project-mosaic.three-col{grid-template-columns:repeat(2,minmax(0,1fr))}.kanban-grid,.compact-kanban{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 1180px){.app-shell{grid-template-columns:1fr}.shell-sidebar{position:relative;height:auto;min-height:auto;flex-direction:row;flex-wrap:wrap;padding:12px 16px;gap:8px;align-items:center;border-right:none;border-bottom:1px solid #e5e5ea}.brand-block{flex:0 0 auto;margin-bottom:0}.sidebar-nav{flex-direction:row;flex-wrap:wrap;gap:4px;flex:1 1 auto;min-width:0}.sidebar-nav .nav-item{padding:8px 12px;font-size:13px;border-radius:10px}.sidebar-footer{flex-direction:row;align-items:center;gap:6px;padding-top:0;margin-top:0;border-top:none;border-left:1px solid #e5e5ea;padding-left:10px;flex-shrink:0}.sidebar-footer .nav-item-admin{padding:8px 12px;font-size:13px;border-radius:10px}.sidebar-user{padding:6px 10px;border-radius:8px}.sidebar-admin-section{margin-top:0}.auth-screen{grid-template-columns:1fr;padding:24px}.context-strip,.shell-header{flex-direction:column;align-items:flex-start}.context-main{grid-template-columns:1fr;width:100%}.span-7,.span-5,.span-8,.span-4{grid-column:span 12}.project-mosaic,.project-mosaic.two-col,.project-mosaic.three-col,.form-grid-2,.kanban-grid,.compact-kanban,.hero-stats-inline,.external-share-grid{grid-template-columns:1fr 1fr}}@media (max-width: 780px){.shell-main,.auth-screen{padding:16px}.shell-sidebar{min-height:auto}.shell-header h1,.auth-story h1,.hero-copy h2,.external-share-hero h1{font-size:28px}.metric-card,.span-12,.span-8,.span-7,.span-5,.span-4{grid-column:span 12}.project-mosaic,.project-mosaic.two-col,.project-mosaic.three-col,.form-grid-2,.kanban-grid,.compact-kanban,.hero-stats-inline,.external-share-grid{grid-template-columns:1fr}.external-share-screen{padding:18px}.external-share-hero{flex-direction:column}}.users-page{display:flex;flex-direction:column;gap:20px;padding-bottom:40px}.users-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px}.users-summary{font-size:14px;color:#6e6e73}.users-summary strong{color:#1d1d1f}.users-table-wrap{overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c7c7cc;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#aeaeb2}.el-dialog{--el-dialog-bg-color: #ffffff;--el-dialog-border-radius: 16px;background:#fff;border:1px solid #e5e5ea;box-shadow:0 12px 48px #0000001f;color:#1d1d1f}.el-dialog__header{border-bottom:1px solid #e5e5ea;padding:20px 24px 16px}.el-dialog__title{color:#1d1d1f;font-size:18px;font-weight:600}.el-dialog__headerbtn .el-dialog__close{color:#8e8e93}.el-dialog__headerbtn:hover .el-dialog__close{color:#1d1d1f}.el-dialog__body{color:#1d1d1f;padding:20px 24px}.el-dialog__footer{border-top:1px solid #e5e5ea;padding:16px 24px 20px}.el-dialog .el-form-item__label{color:#6e6e73}.el-dialog .el-input__wrapper,.el-dialog .el-textarea__inner{background:#f9f9fb;border-color:#d2d2d7;box-shadow:none;color:#1d1d1f}.el-dialog .el-input__inner,.el-dialog .el-textarea__inner{color:#1d1d1f;background:transparent}.el-dialog .el-input__wrapper:hover,.el-dialog .el-textarea__inner:hover{border-color:#007aff}.el-dialog .el-select .el-input__wrapper{background:#f9f9fb}.el-overlay{background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active,textarea:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #ffffff inset!important;-webkit-text-fill-color:#1d1d1f!important;caret-color:#1d1d1f;transition:background-color 5000s ease-in-out 0s}.sidebar-nav{flex:1}.sidebar-footer{display:flex;flex-direction:column;gap:8px;padding-top:12px;margin-top:12px;border-top:1px solid #e5e5ea;flex-shrink:0}.sidebar-user{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;background:#f9f9fb}.sidebar-user-info{display:flex;flex-direction:column;gap:2px;min-width:0}.sidebar-user-info strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1d1d1f}.sidebar-user-info span{font-size:12px;color:#6e6e73}.sidebar-logout{flex-shrink:0;width:32px;height:32px;display:grid;place-items:center;border:1px solid #e5e5ea;border-radius:8px;background:transparent;color:#8e8e93;cursor:pointer;transition:.2s ease}.sidebar-logout:hover{background:#fff5f5;border-color:#fecaca;color:#ff3b30}.shell-header-title h1{margin:6px 0 0;font-size:34px;line-height:1.08}.dialog-context-tip{padding:12px 16px;background:#f0f5ff;border-radius:8px;margin-bottom:20px;font-size:13px;color:#424245;border:1px solid #d8e8f8}.projects-list-page{padding-bottom:40px}.projects-list-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.projects-list-sub{margin:6px 0 0;color:#6e6e73;font-size:14px}.project-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.project-card{padding:20px 22px;border-radius:14px;border:1px solid #e5e5ea;background:#fff;cursor:pointer;transition:.2s ease;display:flex;flex-direction:column;gap:14px;border-left:5px solid var(--card-accent, #5856d6);box-shadow:0 1px 3px #0000000a}.project-card:hover{background:#f9f9fb;border-color:#b8b8be;border-left-color:var(--card-accent, #5856d6);transform:translateY(-2px);box-shadow:0 4px 16px #00000014}.project-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.project-card-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.project-index{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;color:#fff;font-size:12px;font-weight:700;flex-shrink:0;box-shadow:0 1px 3px #00000026}.project-card-title-row h3{margin:0;font-size:16px;font-weight:600;color:#1d1d1f}.project-code{color:#007aff;font-size:12px;font-weight:600;opacity:.85}.project-card-meta{margin:0;color:#6e6e73;font-size:13px}.project-card-stats{display:flex;gap:20px}.project-stat{display:flex;flex-direction:column;gap:4px}.project-stat span{font-size:11px;color:#6e6e73;text-transform:uppercase;letter-spacing:.08em}.project-stat strong{font-size:22px;font-weight:700;color:#1d1d1f}.stat-danger{color:#ff3b30}.project-card-progress{display:flex;flex-direction:column;gap:6px}.project-progress-label{display:flex;justify-content:space-between;font-size:13px;color:#6e6e73}.project-progress-label strong{color:#1d1d1f;font-weight:700}.project-card-footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center}.project-card-ops{display:flex;gap:4px;opacity:0;transition:opacity .2s ease}.project-card:hover .project-card-ops{opacity:1}.project-card-hint{font-size:12px;color:#007aff;opacity:.7;transition:opacity .2s}.project-card:hover .project-card-hint{opacity:1}.project-detail-page{display:flex;flex-direction:column;gap:20px;padding-bottom:40px}.detail-breadcrumb{display:flex;align-items:center;gap:8px;font-size:14px;color:#6e6e73}.breadcrumb-sep{color:#c7c7cc}.breadcrumb-current{color:#1d1d1f;font-weight:500}.detail-hero{padding:24px 28px;border-radius:18px;border:1px solid #e5e5ea;background:#fff;box-shadow:0 1px 3px #0000000a;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:16px 24px;align-items:start}.detail-hero-left h2{margin:8px 0 0;font-size:30px;font-weight:700;color:#1d1d1f}.detail-hero-meta{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap;font-size:14px;color:#6e6e73}.risk-badge{color:#ff3b30;font-size:13px}.detail-hero-stats{display:flex;gap:20px;align-items:flex-start}.detail-stat{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.detail-stat span{font-size:12px;color:#6e6e73}.detail-stat strong{font-size:26px;font-weight:700;color:#1d1d1f}.detail-hero-progress{grid-column:1 / -1}.detail-body{display:grid;grid-template-columns:240px 1fr 1fr;gap:16px;align-items:start}.detail-col{min-height:300px;max-height:520px;overflow-y:auto}.task-list{display:flex;flex-direction:column;gap:8px}.task-item{padding:14px;border-radius:12px;background:#f9f9fb;border:1px solid #e5e5ea;display:flex;flex-direction:column;gap:8px}.task-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.task-title{font-size:14px;font-weight:500;line-height:1.4;color:#1d1d1f}.task-item-meta{display:flex;justify-content:space-between;font-size:12px;color:#6e6e73}.task-item-actions{display:flex;gap:6px;flex-wrap:wrap}.mini-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.req-code{color:var(--el-color-primary);font-size:11px;margin-right:4px}.detail-kanban{margin-top:4px}@media (max-width: 1280px){.detail-body{grid-template-columns:220px 1fr 1fr}}@media (max-width: 1024px){.detail-body{grid-template-columns:1fr 1fr}.detail-col-milestones{grid-column:1 / -1;max-height:200px}}@media (max-width: 780px){.detail-body{grid-template-columns:1fr}.detail-col{max-height:300px}.project-cards-grid,.detail-hero{grid-template-columns:1fr}.detail-hero-stats{justify-content:flex-start}}.ext-screen{min-height:100vh;padding:16px;background:linear-gradient(160deg,#f5f5f7,#e8e8ed)}.ext-shell{width:min(760px,100%);margin:0 auto;display:flex;flex-direction:column;gap:14px}.ext-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-radius:14px;background:#fff;border:1px solid #e5e5ea;flex-wrap:wrap;box-shadow:0 1px 3px #0000000a}.ext-brand{display:flex;align-items:center;gap:12px}.ext-brand-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(135deg,#007aff,#5ac8fa);color:#fff;font-size:15px;font-weight:800;flex-shrink:0}.ext-brand-name{font-size:15px;font-weight:700;color:#1d1d1f}.ext-brand-sub{font-size:12px;color:#6e6e73}.ext-header-meta{font-size:13px;color:#6e6e73;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ext-sep{opacity:.4}.ext-card{padding:20px;border-radius:16px;border:1px solid #e5e5ea;background:#fff;display:flex;flex-direction:column;gap:14px;box-shadow:0 1px 3px #0000000a}.ext-kicker{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#6e6e73;font-weight:600;margin-bottom:4px}.ext-section-head h2{margin:0;font-size:20px;font-weight:700;color:#1d1d1f}.ext-empty{color:#6e6e73;font-size:14px;padding:20px 0;text-align:center}.ext-error{border-radius:14px;overflow:hidden}.ext-req-hero{background:#fff}.ext-req-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.ext-req-title{margin:6px 0 8px;font-size:22px;line-height:1.3;font-weight:700;color:#1d1d1f}.ext-req-code{color:#007aff;font-size:14px;margin-right:6px}.ext-req-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:#6e6e73}.ext-risk{color:#ff3b30}.ext-big-percent{font-size:40px;font-weight:700;color:#1d1d1f;line-height:1;flex-shrink:0}.ext-ai-note{font-size:13px;color:#007aff;padding:8px 12px;background:#f0f5ff;border-radius:8px;border:1px solid #d8e8f8}.ext-task-list{display:flex;flex-direction:column;gap:8px}.ext-task-item{padding:14px;border-radius:12px;background:#f9f9fb;border:1px solid #e5e5ea;display:flex;flex-direction:column;gap:8px}.ext-task-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.ext-task-info{display:flex;flex-direction:column;gap:3px;min-width:0}.ext-task-title{font-size:14px;font-weight:500;color:#1d1d1f}.ext-task-meta{font-size:12px;color:#6e6e73}.ext-task-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.ext-task-hours{font-size:12px;color:#6e6e73}.ext-proj-hero{background:#fff}.ext-proj-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.ext-proj-hero-top h1{margin:6px 0 8px;font-size:24px;font-weight:700;color:#1d1d1f}.ext-proj-sub{margin:0;font-size:13px;color:#6e6e73}.ext-proj-summary{display:flex;gap:16px;flex-wrap:wrap}.ext-summary-item{display:flex;flex-direction:column;gap:4px;min-width:80px}.ext-summary-item span{font-size:11px;color:#6e6e73;text-transform:uppercase;letter-spacing:.08em}.ext-summary-item strong{font-size:18px;font-weight:700;color:#1d1d1f}.ext-risk-notice{margin:0;font-size:13px;color:#ff9500}.ext-req-list{display:flex;flex-direction:column;gap:12px}.ext-req-item{padding:14px;border-radius:12px;background:#f9f9fb;border:1px solid #e5e5ea;display:flex;flex-direction:column;gap:8px}.ext-req-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.ext-req-item-head h3{margin:0 0 4px;font-size:15px;font-weight:600}.ext-req-item-head p{margin:0;font-size:12px;color:#6e6e73}.ext-req-item-head strong{font-size:18px;flex-shrink:0;color:#1d1d1f}.ext-footer{text-align:center;font-size:12px;color:#c7c7cc;padding:12px 0 8px}@media (max-width: 480px){.ext-screen{padding:10px}.ext-card{padding:16px}.ext-req-hero-top,.ext-proj-hero-top{flex-direction:column}.ext-big-percent{font-size:32px}.ext-proj-hero-top h1{font-size:20px}.ext-req-title{font-size:18px}.ext-header{padding:12px 14px}.ext-proj-summary{gap:12px}}.el-loading-mask{background-color:#f5f5f7cc!important;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.el-loading-spinner .el-loading-text{color:#6e6e73}.el-loading-spinner .path{stroke:#007aff}.el-loading-spinner .circular{width:42px;height:42px}
