:root{--adc-page-bg: #f5f7fb;--adc-surface: #ffffff;--adc-surface-muted: #f8fafc;--adc-border: #e7ecf3;--adc-border-strong: #d8e0eb;--adc-text-strong: rgba(0, 0, 0, .88);--adc-text-muted: rgba(0, 0, 0, .58);--adc-radius: 8px;--adc-shadow-soft: 0 6px 18px rgba(15, 23, 42, .06);--ant-color-bg-layout: var(--adc-page-bg);--ant-color-bg-container: var(--adc-surface);--ant-color-border-secondary: var(--adc-border);--ant-border-radius: var(--adc-radius);--ant-border-radius-lg: var(--adc-radius)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{background:var(--ant-color-bg-layout, #f5f7fb);color:var(--ant-color-text, rgba(0, 0, 0, .88));font-family:var(--ant-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);line-height:1.5}a{color:var(--ant-color-primary, #1677ff);text-decoration:none}a:hover{color:var(--ant-color-primary-hover, #4096ff)}button,input,textarea,select{font:inherit}.app-shell{min-height:100vh;background:var(--ant-color-bg-layout, #f5f7fb)}.app-sider{min-height:100vh;box-shadow:2px 0 10px #05142d1f}.brand{display:flex;align-items:center;gap:10px;height:64px;padding:0 18px;color:#fff;white-space:nowrap}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--ant-color-primary, #1677ff);font-weight:700}.brand-name{overflow:hidden;font-size:16px;font-weight:650;text-overflow:ellipsis}.app-header{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 24px;background:var(--ant-color-bg-container, #fff);border-bottom:1px solid var(--ant-color-border-secondary, #f0f0f0)}.page-title{margin:0!important}.user-name{color:var(--ant-color-text, rgba(0, 0, 0, .88));font-weight:500}.app-content{min-height:calc(100vh - 64px);padding:24px}.page-stack.ant-space{display:flex;width:100%}.page-spin{display:block;margin:22vh auto 0}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-heading h3{margin-bottom:4px!important}.page-heading-subtitle{display:block;max-width:760px;margin-top:4px;color:var(--adc-text-muted);line-height:1.5}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;max-height:520px;overflow:hidden;opacity:1;transform-origin:top;transition:max-height .24s ease,opacity .2s ease,transform .2s ease}.filter-bar.filter-bar-collapsed,.filter-bar.is-collapsed{max-height:0;opacity:0;pointer-events:none;transform:translateY(-4px)}.filter-bar.filter-bar-expanded,.filter-bar.is-expanded{max-height:520px;opacity:1;transform:translateY(0)}.filter-bar .ant-form-item{margin-right:0;margin-bottom:0}.form-card{max-width:920px}.requirement-attachment-field{width:100%;padding:12px;border:1px dashed var(--adc-border-strong);border-radius:var(--adc-radius);background:var(--adc-surface-muted)}.requirement-attachment-field .ant-space-item,.requirement-attachment-field .ant-upload,.requirement-attachment-field .ant-upload .ant-btn{width:100%}.requirement-attachment-field .ant-upload .ant-btn{justify-content:center}.requirement-attachment-field .ant-upload-list{margin-top:4px}.ant-upload-wrapper .ant-upload-drag{border-color:#91caff;border-style:dashed;background:linear-gradient(180deg,#f8fbff,#fff);box-shadow:inset 0 0 0 1px #1677ff0a;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.ant-upload-wrapper .ant-upload-drag:hover,.ant-upload-wrapper .ant-upload-drag.ant-upload-drag-hover{border-color:var(--ant-color-primary, #1677ff);background:#f0f7ff;box-shadow:inset 0 0 0 1px #1677ff1f}.ant-upload-wrapper .ant-upload-drag .ant-upload-drag-icon .anticon{color:var(--ant-color-primary, #1677ff);font-size:34px}.ant-upload-wrapper .ant-upload-drag .ant-upload-text{font-weight:650}.requirement-table .ant-table-thead>tr>th{background:var(--adc-surface-muted);border-bottom-color:var(--adc-border-strong)}.requirement-table .ant-table-tbody>tr>td{vertical-align:middle}.requirement-table .ant-table-tbody>tr:hover>td{background:#f8fbff}.requirement-title-link{display:inline-block;max-width:min(100%,520px);overflow:hidden;color:var(--adc-text-strong);font-weight:650;line-height:1.4;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.requirement-title-link:hover{color:var(--ant-color-primary-hover, #4096ff)}.requirement-progress-cell{display:grid;grid-template-columns:minmax(64px,1fr) 38px;align-items:center;gap:8px;min-width:118px}.requirement-progress-cell .ant-progress{margin-bottom:0}.requirement-progress-meta{font-size:12px;text-align:right}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px}.version-history-item{padding:8px 10px;border:1px solid transparent;border-radius:var(--adc-radius)}.version-history-item-current{border-color:#91caff;background:#f0f7ff}.version-current-badge .ant-badge-count{background:var(--ant-color-primary, #1677ff);box-shadow:none;font-size:11px}.markdown-body{color:var(--ant-color-text, rgba(0, 0, 0, .88))}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body pre{overflow:auto;padding:12px;border-radius:6px;background:var(--ant-color-fill-quaternary, #f5f5f5)}.markdown-body code{padding:1px 4px;border-radius:4px;background:var(--ant-color-fill-quaternary, #f5f5f5)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:linear-gradient(135deg,#1677ff14,#52c41a14),var(--ant-color-bg-layout, #f5f7fb)}.login-card{width:min(100%,420px);box-shadow:var(--ant-box-shadow-secondary, 0 8px 24px rgba(0,0,0,.08))}.login-title{width:100%;margin-bottom:18px;text-align:center}.login-title h2{margin-bottom:0!important}.download-banner{transition:transform .2s}.download-banner:hover{transform:translateY(-1px)}.mobile-req-card-skeleton{cursor:default;pointer-events:none}.mobile-card-skeleton-line,.mobile-card-skeleton-pill{display:block;background:linear-gradient(90deg,#eef2f7 25%,#f8fafc 37%,#eef2f7 63%);background-size:400% 100%;animation:adc-skeleton 1.2s ease-in-out infinite}.mobile-card-skeleton-line{height:12px;border-radius:999px}.mobile-card-skeleton-title{width:78%;height:16px;margin-bottom:12px}.mobile-card-skeleton-meta{display:flex;align-items:center;gap:8px}.mobile-card-skeleton-pill{width:56px;height:22px;border-radius:999px}.mobile-card-skeleton-short{width:72px}@keyframes adc-skeleton{0%{background-position:100% 50%}to{background-position:0 50%}}.kanban-board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:16px;align-items:start;overflow-x:auto;padding-bottom:4px}.kanban-column{min-width:240px;min-height:520px;padding:12px;border:1px solid var(--ant-color-border-secondary, #f0f0f0);border-radius:8px;background:var(--ant-color-fill-quaternary, #fafafa)}.kanban-column-over{border-color:var(--ant-color-primary, #1677ff);background:var(--ant-color-primary-bg, #e6f4ff)}.kanban-column-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.kanban-list{display:flex;min-height:440px;flex-direction:column;gap:10px}.kanban-card{cursor:grab;border:1px solid var(--ant-color-border-secondary, #f0f0f0);background:var(--ant-color-bg-container, #fff);box-shadow:var(--ant-box-shadow-tertiary, 0 1px 2px rgba(0,0,0,.04))}.kanban-card:active{cursor:grabbing}.kanban-card-disabled{cursor:default}.kanban-card-title{display:block;margin-bottom:10px;color:var(--ant-color-text, rgba(0,0,0,.88));font-weight:650}.kanban-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.service-card{transition:box-shadow .2s}.service-card:hover{box-shadow:0 2px 8px #00000014}.mobile-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.mobile-header{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 12px;background:#fff;border-bottom:1px solid #f0f0f0;position:sticky;top:0;z-index:100;flex-shrink:0}.mobile-content{flex:1;padding:12px 12px 68px;overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-bottom-nav{display:flex;align-items:center;justify-content:space-around;height:56px;background:#fff;border-top:1px solid #f0f0f0;position:fixed;bottom:0;left:0;right:0;z-index:100;padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -1px 8px #0000000f}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:2px;border:none;background:none;cursor:pointer;padding:6px 0;color:#8c8c8c;transition:color .2s;-webkit-tap-highlight-color:transparent}.mobile-nav-item.active{color:#1677ff}.mobile-nav-icon{font-size:20px;line-height:1}.mobile-nav-label{font-size:10px;line-height:1;margin-top:2px}.mobile-card-list{display:flex;flex-direction:column;gap:10px}.mobile-req-card{border:1px solid #f0f0f0;border-radius:8px;padding:12px;background:#fff;cursor:pointer;transition:box-shadow .2s}.mobile-req-card:active{box-shadow:0 2px 8px #0000001a}.mobile-req-card-title{font-size:14px;font-weight:600;color:#000000e0;margin-bottom:8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mobile-req-card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;color:#8c8c8c}.mobile-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mobile-stat-card{text-align:center;padding:12px 8px;border-radius:8px;background:#fff;border:1px solid #f0f0f0}.mobile-stat-card .stat-value{font-size:24px;font-weight:700;line-height:1.2}.mobile-stat-card .stat-label{font-size:12px;color:#8c8c8c;margin-top:4px}.mobile-detail-header{margin-bottom:12px}.mobile-detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.mobile-form .ant-form-item{margin-bottom:12px}.mobile-form .ant-form-item-control-input-content>.ant-input,.mobile-form .ant-form-item-control-input-content>.ant-select,.mobile-form .ant-form-item-control-input-content>.ant-input-affix-wrapper,.mobile-form .ant-form-item-control-input-content>.ant-picker{width:100%!important}.mobile-form .ant-cascader-picker{width:100%}.mobile-descriptions-panel .ant-descriptions-row{display:flex;flex-direction:column}.mobile-descriptions-panel .ant-descriptions-item{padding:6px 0!important}.mobile-descriptions-panel .ant-descriptions-item-label{padding-bottom:0!important;font-size:12px;line-height:1.4}.mobile-descriptions-panel .ant-descriptions-item-content{font-size:13px}.mobile-descriptions-panel .ant-descriptions-bordered .ant-descriptions-view{border:none}.mobile-descriptions-panel .ant-descriptions-bordered .ant-descriptions-item-label,.mobile-descriptions-panel .ant-descriptions-bordered .ant-descriptions-item-content{border:none;background:transparent;padding:2px 0}.mobile-report-card{padding:10px 12px}.mobile-report-card .report-status{margin-bottom:6px}.mobile-report-card .report-status .ant-tag{margin-right:4px}.mobile-report-item{padding:10px;border-bottom:1px solid #f0f0f0}.mobile-report-item:last-child{border-bottom:none}.mobile-submit-page{padding:12px}.mobile-submit-page .ant-card{border-radius:8px}.mobile-submit-page .ant-btn{height:44px;font-size:15px}.mobile-tabs .ant-tabs-nav{margin-bottom:8px}.mobile-tabs .ant-tabs-tab{padding:6px 10px;font-size:13px}.mobile-kanban-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:8px}.mobile-kanban-row{display:flex;gap:10px;min-width:max-content}.mobile-kanban-col{min-width:260px;max-width:300px}.mobile-task-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #f0f0f0;gap:8px}.mobile-task-item:last-child{border-bottom:none}.mobile-task-item .task-info{flex:1;min-width:0}.mobile-task-item .task-title{font-size:14px;font-weight:500;line-height:1.4}.mobile-task-item .task-meta{font-size:12px;color:#8c8c8c;margin-top:2px}.mobile-batch-bar{position:fixed;bottom:56px;left:0;right:0;background:#e6f4ff;border-top:1px solid #91caff;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:99;display:flex;align-items:center;justify-content:space-between;gap:8px}@media(max-width:960px){.app-header{padding:0 16px}.app-content{padding:16px}.detail-grid{grid-template-columns:1fr}}@media(max-width:640px){.page-heading{flex-direction:column;align-items:stretch}.filter-bar .ant-form-item,.filter-bar .ant-input-affix-wrapper,.filter-bar .ant-select,.filter-bar .ant-space{width:100%!important}.app-header .page-title{display:none}.ant-statistic-title{font-size:12px!important}.ant-statistic-content{font-size:18px!important}.ant-card-body{padding:12px!important}.ant-card-head{min-height:40px;padding:0 12px!important}.ant-card-head-title{font-size:14px!important}.ant-table-cell{font-size:12px!important;padding:6px 8px!important}.ant-btn{font-size:13px!important}.ant-form-item-label>label{font-size:13px!important}}@media(max-width:767px){.filter-bar.ant-form{flex-direction:column}.filter-bar .ant-form-item{width:100%!important;min-width:0!important}.filter-bar .ant-form-item .ant-input,.filter-bar .ant-form-item .ant-select,.filter-bar .ant-form-item .ant-input-affix-wrapper{width:100%!important}.detail-grid{grid-template-columns:1fr!important}.kanban-board{grid-template-columns:1fr;gap:12px}.kanban-column,.kanban-list{min-height:auto}.desktop-table-view{display:none!important}.mobile-card-list{display:flex!important}.app-header{display:none!important}.app-content{padding-bottom:0}.detail-grid .ant-card-head-title{font-size:14px}.report-checklist-table{display:none!important}.report-checklist-cards{display:block!important}.ant-modal{max-width:100vw!important;margin:0!important;top:0!important}.ant-modal-content{border-radius:0!important;min-height:100vh}.ant-modal-header{border-radius:0!important}.stats-grid-3{grid-template-columns:repeat(2,1fr)!important}}@media(min-width:768px){.mobile-card-list,.mobile-shell,.report-checklist-cards{display:none!important}}@media(max-width:480px){.login-page{padding:16px;align-items:flex-start;padding-top:10vh}.login-card{max-width:100%}.login-title h2{font-size:20px!important}}@media(max-width:767px){.download-banner{padding:12px!important}.download-banner .ant-space{flex-wrap:wrap}}
