:root{color:#1f2937;background:#f5f6f8;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh;display:grid;grid-template-columns:296px minmax(0,1fr);background:linear-gradient(180deg,#4b556314,#4b556300),#f5f6f8}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:16px;border-right:1px solid #e5e7eb;background:#fffffff5;padding:24px 18px;overflow-y:auto}.sidebar-brand{color:#111827;font-size:19px;font-weight:900;line-height:1.35}.sidebar-primary{min-height:40px;border:0;border-radius:8px;background:#4b5563;color:#fff;padding:0 16px;cursor:pointer;font-weight:800}.sidebar-section{display:grid;gap:12px;border-top:1px solid #e5e7eb;padding-top:16px}.sidebar-section>strong,.sidebar-section-head strong{color:#111827;font-size:14px}.sidebar-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.sidebar-section-head button{min-height:30px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#4b5563;padding:0 12px;cursor:pointer;font-weight:800}.sidebar-auth{display:grid;gap:10px}.topbar{position:relative;height:52px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;background:#4b5563;color:#fff}.brand{font-size:15px;font-weight:700}.topnav{display:flex;align-items:center;gap:22px;font-size:13px;color:#ffffffd1}.topnav button,.auth-buttons button,.user-actions button{border:0;background:transparent;color:#ffffffdb;padding:0;cursor:pointer;font-size:13px}.topbar-right{display:flex;align-items:center;gap:22px}.auth-area{position:relative}.auth-buttons,.user-actions{display:flex;align-items:center;gap:10px}.auth-buttons button,.user-actions button{min-height:30px;border:1px solid rgba(255,255,255,.42);border-radius:8px;padding:0 12px;font-weight:700}.user-badge{display:inline-flex;align-items:center;min-height:30px;max-width:160px;border-radius:999px;background:#ffffff29;padding:0 12px;overflow:hidden;color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:800}.auth-popover{position:absolute;top:40px;right:0;width:280px;display:grid;gap:10px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:16px;box-shadow:0 16px 42px #11182729;z-index:30}.auth-popover strong{color:#111827;font-size:15px}.auth-popover input{height:38px;border:1px solid #d1d5db;border-radius:8px;padding:0 12px;outline:none}.auth-popover p{margin:0;color:#b42318;font-size:12px;line-height:1.5}.auth-popover div{display:flex;gap:10px}.auth-popover div button{min-height:36px;border:0;border-radius:8px;background:#4b5563;color:#fff;padding:0 16px;cursor:pointer;font-weight:800}.auth-popover div button:last-child{border:1px solid #d1d5db;background:#fff;color:#4b5563}.sidebar .auth-buttons,.sidebar .user-actions{align-items:stretch;flex-direction:column;width:100%}.sidebar .auth-buttons button,.sidebar .user-actions button{min-height:38px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#4b5563;padding:0 12px;font-weight:800}.sidebar .auth-buttons button:first-child,.sidebar .user-actions button{background:#4b5563;color:#fff}.sidebar .user-badge{justify-content:center;min-height:38px;max-width:none;border:1px solid #e5e7eb;border-radius:8px;background:#f3f4f6;color:#111827}.sidebar .auth-popover{position:static;width:100%;box-shadow:none}.sidebar-history{min-height:0;flex:1}.sidebar-history-list{overflow-y:auto;padding-right:2px}.sidebar-history-list button{grid-template-columns:1fr;gap:8px}.sidebar-history-list span:last-child{white-space:normal;line-height:1.5}.error-banner.compact{margin-top:0}.page{width:min(960px,calc(100% - 32px));margin:0 auto;padding:34px 0 48px}.page-title{display:flex;align-items:center;justify-content:flex-start;gap:16px;margin-bottom:18px}.eyebrow{margin:0 0 4px;color:#4b5563;font-size:12px;font-weight:800;letter-spacing:0}h1{margin:0;color:#111827;font-size:26px;line-height:1.25}.ghost-button,.action-row button,.error-state button{min-height:40px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#4b5563;padding:0 18px;cursor:pointer;font-weight:700}.steps{display:grid;grid-template-columns:repeat(3,1fr);align-items:start;margin:0 0 28px}.step-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.step-dot{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e5e7eb;color:#6b7280;font-weight:800;z-index:1}.step-dot.active,.step-dot.done{background:#4b5563;color:#fff}.step-item span{color:#6b7280;font-size:13px}.step-item .active-label{color:#4b5563;font-weight:800}.step-line{position:absolute;top:17px;left:calc(50% + 24px);width:calc(100% - 48px);height:2px;background:#e5e7eb}.step-line.done{background:#4b5563}.panel{background:#fffffff5;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 12px 34px #11182714}.template-panel,.upload-panel{position:relative;padding:26px}.input-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,240px) auto;gap:12px}.input-row input,.input-row select{min-width:0;height:44px;border:1px solid #d1d5db;border-radius:8px;padding:0 14px;outline:none;background:#fff;color:#1f2937}.input-row select{cursor:pointer}.input-row input:focus,.input-row select:focus{border-color:#4b5563;box-shadow:0 0 0 3px #4b556324}.input-row button,.primary-wide{min-height:44px;border:0;border-radius:8px;background:#4b5563;color:#fff;padding:0 26px;cursor:pointer;font-weight:800}.input-row button:disabled,.primary-wide:disabled{background:#9ca3af;cursor:default}.suggestions{position:absolute;left:26px;right:26px;top:76px;display:grid;gap:1px;overflow:hidden;border:1px solid #e5e7eb;border-radius:8px;background:#e5e7eb;z-index:10}.suggestions button{display:flex;align-items:center;gap:10px;min-height:42px;border:0;background:#fff;color:#1f2937;padding:0 14px;text-align:left;cursor:pointer}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:24px}.feature-grid div{display:grid;gap:8px;min-height:112px;padding:18px;border:1px solid #e5e7eb;border-radius:8px;background:#fafafa}.feature-grid strong,.upload-box strong,.progress-panel strong,.summary-panel strong,.error-state strong{color:#111827;font-size:15px}.feature-grid span,.upload-box span,.summary-panel span,.error-state p{color:#6b7280;font-size:13px;line-height:1.65}.selected-template{display:flex;align-items:center;gap:10px;margin-bottom:22px;color:#111827;font-weight:700}.selected-template button{margin-left:auto;border:0;background:transparent;color:#4b5563;cursor:pointer;font-weight:800}.upload-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.upload-box{display:grid;gap:14px;padding:18px;border:1px dashed #9ca3af;border-radius:8px;background:#fafafa}.upload-box input{display:none}.upload-box button,.primary-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;width:fit-content;border:0;border-radius:8px;background:#4b5563;color:#fff;padding:0 18px;text-decoration:none;cursor:pointer;font-weight:800}.upload-box p{min-height:22px;margin:0;color:#4b5563;font-size:13px;word-break:break-all}.error-banner{margin-top:16px;border:1px solid #ffc6c6;border-radius:8px;background:#fff4f4;color:#b42318;padding:12px 14px;font-size:13px}.info-banner{margin-bottom:16px;border:1px solid #d1d5db;border-radius:8px;background:#fafafa;color:#4b5563;padding:12px 14px;font-size:13px;font-weight:700}.history-panel{margin-bottom:22px;padding:18px}.history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.history-head strong{color:#111827;font-size:16px}.history-head button{min-height:34px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#4b5563;padding:0 14px;cursor:pointer;font-weight:800}.history-list{display:grid;gap:8px}.history-list button{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;min-height:58px;border:1px solid #e5e7eb;border-radius:8px;background:#fafafa;padding:10px 14px;color:#374151;text-align:left;cursor:pointer}.history-list button:hover{border-color:#9ca3af;background:#f3f4f6}.history-list span:first-child{display:grid;gap:4px;min-width:0}.history-list strong{overflow:hidden;color:#111827;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.history-list em,.muted-text{color:#6b7280;font-size:12px;font-style:normal}.history-list span:last-child{color:#6b7280;font-size:13px;white-space:nowrap}.muted-text{margin:0;line-height:1.65}.primary-wide{margin-top:20px}.progress-panel,.error-state{display:grid;place-items:center;gap:16px;padding:42px 24px;text-align:center}.progress-track{width:min(540px,100%);height:10px;overflow:hidden;border-radius:999px;background:#e5e7eb}.progress-fill{height:100%;border-radius:inherit;background:#4b5563;transition:width .25s ease}.progress-panel p{margin:0;color:#6b7280;word-break:break-all}.summary-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;margin-bottom:16px}.summary-panel>div:first-child{display:grid;gap:5px;min-width:0}.count-group{display:flex;gap:26px;flex-shrink:0}.count-group div{display:grid;justify-items:center;gap:3px}.count-group b{font-size:28px;line-height:1}.count-group span{color:#6b7280;font-size:12px}.error-count b{color:#dc2626}.warning-count b{color:#d97706}.pass-count b{color:#15803d}.issue-list{overflow:hidden}.issue-row{display:grid;grid-template-columns:10px auto auto 1fr;align-items:start;gap:12px;padding:14px 18px;border-bottom:1px solid #e5e7eb}.issue-row:last-child{border-bottom:0}.status-dot{width:8px;height:8px;border-radius:50%;margin-top:8px}.status-dot.error{background:#dc2626}.status-dot.warning{background:#d97706}.status-dot.pass{background:#15803d}.issue-tag,.section-tag{min-height:24px;border-radius:6px;padding:3px 10px;font-size:12px;font-weight:800;white-space:nowrap}.issue-tag.error{background:#fee2e2;color:#991b1b}.issue-tag.warning{background:#fef3c7;color:#92400e}.issue-tag.pass{background:#dcfce7;color:#166534}.section-tag{background:#f3f4f6;color:#4b5563}.issue-row p{margin:0;color:#374151;font-size:14px;line-height:1.65;word-break:break-word}.action-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid #e5e7eb;padding:18px}.topbar{height:auto;align-items:flex-start;flex-direction:column;gap:8px;padding:14px 18px}.topnav{flex-wrap:wrap;gap:12px}.topbar-right,.auth-buttons,.user-actions{align-items:flex-start;flex-direction:column;gap:10px}.auth-popover{left:0;right:auto;width:min(280px,calc(100vw - 36px))}.page{width:min(100% - 24px,960px);padding-top:24px}.page-title,.summary-panel{align-items:flex-start;flex-direction:column}.steps{grid-template-columns:1fr;gap:14px}.step-item{align-items:flex-start;flex-direction:row}.step-line{display:none}.input-row,.feature-grid,.upload-grid,.history-list button{grid-template-columns:1fr}.suggestions{position:static;margin-top:12px}.selected-template{align-items:flex-start;flex-direction:column}.selected-template button{margin-left:0}.count-group{width:100%;justify-content:space-between;gap:12px}.issue-row{grid-template-columns:10px auto 1fr}.section-tag{grid-column:2 / 4;width:fit-content}.issue-row p{grid-column:2 / 4}}
