
:root{--blue:#2563eb;--blue-dark:#1d4ed8;--blue-light:#eff6ff;--bg:#f8fafc;--ink:#111827;--body:#4b5563;--muted:#6b7280;--line:#e5e7eb;--sm:0 1px 2px #0000000d;--shadow:0 3px 6px #00000012;--md:0 4px 6px -1px #00000016,0 2px 4px -2px #00000012}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.65 "Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif}button,input,select,textarea{font:inherit}button,a,select,summary{touch-action:manipulation}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border:1px solid #d1d5db;border-radius:8px;background:white;box-shadow:var(--sm);color:#374151;font-weight:500;cursor:pointer;transition:transform 150ms ease-out,box-shadow 150ms ease-out,background-color 150ms ease-out,border-color 150ms ease-out}button:hover{transform:translateY(-2px);box-shadow:var(--shadow);background:#f9fafb;border-color:#9ca3af}button:active{transform:translateY(0) scale(.98);box-shadow:var(--sm)}:where(button,a,input,select,textarea,summary,[tabindex]):focus{outline:2px solid #3b82f6;outline-offset:2px}input,select,textarea{padding:8px 12px;background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;color:var(--ink);transition:border-color 150ms ease-out}input:focus,select:focus,textarea:focus{border-color:#3b82f6}button.primary{background:var(--blue);border-color:var(--blue);color:white}button.primary:hover{background:var(--blue-dark);border-color:var(--blue-dark)}button.quiet{border-color:var(--line);background:white}button.small{font-size:12px;padding:6px 12px}.card{padding:24px;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:var(--sm);transition:transform 200ms ease-out,box-shadow 200ms ease-out}.card:hover{transform:translateY(-2px);box-shadow:var(--md)}.icon-container{display:inline-flex;justify-content:center;align-items:center;width:34px;height:34px;border-radius:8px;background:var(--blue-light);color:var(--blue);transition:transform 200ms ease-out,background-color 200ms ease-out,color 200ms ease-out}.icon-container:hover{background:#3b82f6;color:white;transform:scale(1.1)}.icon-container:hover svg{color:white}.icon-container svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.layout{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh}.sidebar{background:white;border-right:1px solid var(--line);padding:28px 20px;display:flex;flex-direction:column;gap:36px}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:600;letter-spacing:-.4px}.side-label{font-size:12px;color:var(--muted);margin:0 0 12px}.project-name{font-size:13px;font-weight:500;color:#374151}.directions{display:grid;gap:12px}.directions button{justify-content:flex-start;padding:12px;font-size:13px;border-color:var(--line)}.directions button.selected{color:#1d4ed8;border-color:#bfdbfe;background:#eff6ff}.sidebar-bottom{margin-top:auto;font-size:12px;color:var(--muted)}.sidebar-bottom button{font-size:12px}.main{min-width:0}.topbar{height:72px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:white;gap:16px}.breadcrumbs{font-size:12px;color:var(--muted)}.breadcrumbs strong{font-weight:500;color:var(--body)}.top-actions{display:flex;align-items:center;gap:12px}.demo-tag{font-size:12px;background:#f9fafb;color:var(--muted)}.avatar{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#f9fafb;color:var(--body);font-size:11px}.workspace{padding:40px;max-width:1392px;margin:0 auto}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}h1{font-size:28px;line-height:1.4;font-weight:600;letter-spacing:-.6px;margin:0 0 8px}h2{font-size:17px;font-weight:600;letter-spacing:-.2px;margin:0}h3{font-size:14px;font-weight:600;margin:0 0 8px}p{margin:0;max-width:70ch}.subtitle{color:var(--muted);font-size:13px}.tabs{display:flex;gap:8px;margin-bottom:32px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:thin}.tabs button{font-size:13px;white-space:nowrap;padding:9px 16px;color:var(--body);border-color:transparent;background:transparent}.tabs button:hover{background:white;border-color:var(--line)}.tabs button.selected{background:white;border-color:var(--line);color:var(--blue)}.requirements-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;align-items:start}.versions-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.versions-header span{color:var(--muted);font-size:12px}.versions-list{display:grid;gap:16px}.version-button{width:100%;flex-direction:column;align-items:flex-start;padding:14px 16px;gap:8px}.version-button.selected{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.version-date{font-size:14px;font-weight:600}.version-meta{font-size:12px;color:var(--muted)}.version-button.selected .version-meta{color:#1d4ed8}.status{font-size:11px;line-height:1.7;display:inline-flex;align-items:center;gap:5px;background:#f3f4f6;color:#4b5563;border-radius:8px;padding:3px 8px;font-weight:500}.status.blue{background:#eff6ff;color:#1d4ed8}.status.green{background:#f0fdf4;color:#166534}.status.amber{background:#fffbeb;color:#92400e}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.subtabs{display:flex;gap:8px;margin-bottom:28px}.subtabs button{font-size:12px;padding:7px 14px}.subtabs .selected{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.rule-list{margin:0;padding:0;list-style:none}.rule-list li{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:22px 0;border-bottom:1px solid #f3f4f6}.rule-list li:first-child{padding-top:0}.rule-list li:last-child{border:0;padding-bottom:0}.rule-title{font-size:14px;color:#374151;margin-bottom:6px;font-weight:500}.rule-text{color:var(--muted);font-size:13px;max-width:65ch}.rule-value{font-size:22px;font-weight:600;white-space:nowrap;color:var(--ink);line-height:1.3}.detail-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}.detail-footer span{color:var(--muted);font-size:12px}.table-wrap{overflow-x:auto;border-radius:8px}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-weight:500;color:var(--muted);background:#f9fafb;font-size:12px}td,th{padding:18px 16px;border-bottom:1px solid #f3f4f6}td{font-size:13px;color:#374151}tbody tr:hover{background:#f9fafb}tbody tr:last-child td{border-bottom:0}.row-title{font-weight:500;color:var(--ink)}.cell-note{font-size:11px;color:var(--muted);margin-top:5px}.text-button{font-size:12px;padding:6px 12px;color:#1d4ed8;border-color:#dbeafe}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px}.toolbar input{width:220px;max-width:100%;font-size:12px}.toolbar select{font-size:12px}.two-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:start}.keyvalues{margin:0}.keyvalues>div{display:flex;align-items:start;justify-content:space-between;gap:24px;padding:18px 0;border-bottom:1px solid #f3f4f6}.keyvalues>div:first-child{padding-top:0}.keyvalues>div:last-child{border:0;padding-bottom:0}.keyvalues dt{font-size:13px;color:var(--muted)}.keyvalues dd{margin:0;text-align:right;font-size:13px;max-width:65ch;overflow-wrap:anywhere}.steps{display:flex;gap:16px;margin:28px 0;list-style:none;padding:0}.steps li{flex:1;color:var(--muted);font-size:12px}.steps strong{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:7px}.steps .current strong{color:#1d4ed8}.steps .line{height:4px;background:#e5e7eb;border-radius:8px;margin-bottom:14px}.steps .done .line{background:#93c5fd}.steps .current .line{background:#2563eb}.muted{color:var(--muted)}.small-note{font-size:12px;color:var(--muted);margin-top:20px;line-height:1.8}.large-value{font-size:36px;font-weight:600;letter-spacing:-1px;margin:12px 0 8px}.budget-line{display:flex;justify-content:space-between;margin:20px 0 8px;font-size:12px;color:var(--body)}.progress{background:#f3f4f6;border-radius:8px;height:8px;overflow:hidden}.progress>span{background:var(--blue);height:100%;display:block}.table-caption{font-size:12px;color:var(--muted);margin-top:24px}.empty{padding:40px 0;text-align:center}.empty h2{margin-bottom:12px}.empty p{margin:0 auto 24px;color:var(--muted);font-size:13px}.footer{margin-top:36px;display:flex;justify-content:space-between;color:var(--muted);font-size:11px;gap:16px}.dialog{max-width:920px;width:calc(100% - 32px);max-height:88vh;border:1px solid var(--line);padding:0;border-radius:12px;background:white;box-shadow:var(--md)}.dialog::backdrop{background:#11182766}.dialog-head{padding:24px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:17px}.dialog-body{padding:24px}.dialog-body p{font-size:13px;color:var(--body);margin-bottom:16px;line-height:1.85}.dialog-body p:last-child{margin-bottom:0}.dialog-body .keyvalues{margin:24px 0}.dialog-actions{display:flex;justify-content:flex-end;gap:16px;margin-top:24px}.filters{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.filters label{font-size:12px;color:var(--body)}.filters select{margin-left:8px;font-size:12px}.chart{width:100%;height:auto;max-height:240px;display:block;margin:20px 0}.chart text{font:11px "Segoe UI","Microsoft YaHei",sans-serif;fill:#6b7280}.legend{display:flex;gap:24px;font-size:12px;color:var(--body);flex-wrap:wrap;margin-bottom:20px}.legend i{display:inline-block;width:8px;height:8px;border-radius:8px;margin-right:8px}.file-info{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.file-info strong{font-size:13px;font-weight:500;overflow-wrap:anywhere}.file-info p{font-size:12px;color:var(--muted);margin-top:6px}pre{background:#f9fafb;color:#374151;border:1px solid var(--line);border-radius:8px;padding:20px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;overflow:auto;font:12px/1.85 ui-monospace,SFMono-Regular,Consolas,monospace}.upload-zone{background:#f9fafb;border:1px dashed #d1d5db;border-radius:12px;padding:24px;text-align:center}.upload-zone input{max-width:100%;margin:16px 0;background:white}.upload-zone p{margin:0 auto}.preview-image{max-width:100%;max-height:360px;border-radius:8px}.preview-frame{width:100%;height:380px;border:1px solid var(--line);border-radius:8px}.preview-block{margin-top:24px}.preview-block h3{overflow-wrap:anywhere}.diff-item{padding:20px 0;border-bottom:1px solid var(--line)}.diff-item:last-child{border:0}.diff-item p{color:var(--muted);font-size:13px;margin-top:8px}.form-stack{display:grid;gap:20px}.form-stack label{font-size:13px;font-weight:500;display:grid;gap:8px}.form-stack input{width:100%}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:12px 20px;border-radius:8px;background:#111827;color:white;font-size:13px;box-shadow:var(--sm);z-index:10}#toast:empty{display:none}
@media(min-width:1500px){.workspace{padding:48px}}
@media(max-width:1100px){.layout{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:24px 16px}.workspace{padding:28px}.topbar{padding:0 28px}.requirements-layout{grid-template-columns:200px minmax(0,1fr)}.card{padding:24px}.tabs{gap:4px}.tabs button{padding:8px 12px}.two-columns{grid-template-columns:1fr}.steps{flex-wrap:wrap}.steps li{min-width:100px}}
@media(max-width:760px){.layout{grid-template-columns:1fr}.sidebar{padding:20px;border-right:0;border-bottom:1px solid var(--line);gap:20px}.brand{font-size:16px}.sidebar .project,.sidebar-bottom,.side-label{display:none}.directions{grid-template-columns:1fr 1fr;gap:16px}.directions button{justify-content:center;padding:9px 12px}.topbar{padding:16px 20px;min-height:64px;height:auto;gap:12px}.breadcrumbs{font-size:11px}.top-actions{gap:8px}.avatar{display:none}.workspace{padding:28px 20px}.pagehead{align-items:flex-start;gap:16px;margin-bottom:24px}h1{font-size:25px}.subtitle{font-size:12px;max-width:28ch}.pagehead>button{padding:8px 12px;font-size:12px;flex-shrink:0}.tabs{gap:8px;margin-bottom:24px}.tabs button{font-size:12px;padding:8px 12px}.requirements-layout{grid-template-columns:1fr}.versions-header{margin-bottom:16px}.versions-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.version-button{padding:12px 8px;gap:6px}.version-date{font-size:12px}.version-meta{font-size:10px}.card{padding:24px}.rule-list li{gap:16px;padding:20px 0}.rule-value{font-size:20px}.rule-text{font-size:12px}.section-heading{gap:12px;margin-bottom:20px}.section-heading h2{font-size:16px}.status{font-size:10px}.detail-footer{align-items:flex-start}.detail-footer span{font-size:11px;max-width:16ch}.toolbar{flex-wrap:wrap;gap:16px}.toolbar input{width:100%}.file-info{flex-wrap:wrap}.filters{gap:12px}.filters select{margin-left:4px}.dialog-head{padding:20px}.dialog-body{padding:20px}.dialog-head h2{font-size:15px}.legend{gap:14px;font-size:11px}.footer{font-size:10px}.dialog-body .table-wrap{margin:0 -4px}td,th{padding:14px 12px}.keyvalues>div{gap:16px}.keyvalues dd{max-width:60%}.subtabs{gap:8px}.subtabs button{padding:7px 12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0ms!important;animation:none!important;scroll-behavior:auto!important}button:hover,.card:hover,.icon-container:hover{transform:none}button:active{transform:scale(.98)}}
