@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--font-primary:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font-primary);color:#1c2f3d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f3f7fc;font-weight:400;line-height:1.58}*{box-sizing:border-box}body{min-height:100vh;font-family:var(--font-primary);background:radial-gradient(circle at 0 0,#f0a1002e,#0000 38%),radial-gradient(circle at 100% 0,#288ec338,#0000 34%),radial-gradient(circle at 50% 100%,#174b701a,#0000 45%),#f3f7fc;margin:0;font-weight:400;line-height:1.58}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);color:inherit}h1{letter-spacing:-.03em;font-weight:800;line-height:1.1}h2,h3{letter-spacing:-.02em;font-weight:700;line-height:1.2}:root{--ink-900:#1a2332;--ink-700:#344054;--ink-500:#667085;--ink-400:#98a2b3;--paper:#f2f4f7;--card:#fff;--line:#e4e7ec;--line-soft:#eaecf0;--brand-900:#164050;--brand-700:#1b5e6b;--brand-500:#2490a3;--brand-300:#7ec8d6;--accent:#e8960c;--success:#12805c;--danger:#c4454d;--shadow-soft:0 1px 3px #1018281a, 0 1px 2px #1018280f;--shadow-medium:0 4px 8px -2px #1018281a, 0 2px 4px -2px #1018280f;--radius:8px;--radius-lg:12px;--font-primary:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}.portal-shell,.dashboard-shell,.workspace-shell,button,label,input,select,textarea,table,th,td,.ws-tab,.ws-subtab,.filter-pill,.status-badge{font-family:var(--font-primary)}.portal-shell{width:min(1240px,100% - 2rem);margin:0 auto;padding:1.4rem 0 2.8rem}.hero-banner{border-radius:var(--radius-lg);background:var(--brand-900);color:#f8fbff;box-shadow:var(--shadow-medium);padding:clamp(1.2rem,2vw,2.2rem);animation:.52s ease-out rise;position:relative;overflow:hidden}.hero-banner:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff4d,#0000 62%);border-radius:50%;width:320px;height:320px;position:absolute;top:-80px;right:-120px}.brand-row{justify-content:space-between;align-items:center;gap:.9rem;margin-bottom:.75rem;display:flex}.brand-logo{object-fit:contain;width:clamp(130px,17vw,214px);height:auto}.logo-home-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.logo-home-btn:focus-visible{outline-offset:3px;border-radius:8px;outline:2px solid #ffffffd9}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:#f8fbffd1;margin:0;font-size:.73rem;font-weight:700}.hero-banner h1{font-family:var(--font-primary);letter-spacing:-.03em;color:#fff;max-width:16ch;margin:0;font-size:clamp(1.8rem,3vw,3rem);font-weight:800;line-height:1.1}.subtitle{color:#f5faffe6;max-width:56ch;margin:.8rem 0 0}.hero-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-top:1rem;display:grid}.hero-metric{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#071a2733;border:1px solid #ffffff42;border-radius:14px;flex-direction:column;gap:.2rem;padding:.6rem .7rem;display:flex}.hero-metric span{letter-spacing:.08em;text-transform:uppercase;color:#ecf6ffd9;font-size:.72rem}.hero-metric strong{color:#fff;font-size:1.06rem}.workflow{margin-top:1rem}.utility-bar{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow-soft);grid-template-columns:1fr auto auto;align-items:center;gap:.8rem;margin-top:1rem;padding:.9rem;display:grid}.utility-heading h2{color:var(--ink-900);letter-spacing:.03em;text-transform:uppercase;margin:0;font-size:.96rem}.utility-heading p{color:var(--ink-500);margin:.2rem 0 0;font-size:.82rem}.draft-actions{flex-wrap:wrap;justify-content:flex-end;gap:.45rem;display:flex}.status-block p{margin:0;font-size:.78rem}.status-message{color:var(--success);white-space:nowrap;background:#eaf8f1;border:1px solid #bde5cf;border-radius:999px;padding:.35rem .6rem;font-weight:600}.stepper{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;padding:.75rem;display:flex;position:relative}.step-chip{border:1px solid var(--line);background:var(--card);color:var(--ink-700);cursor:pointer;white-space:nowrap;z-index:1;border-radius:999px;align-items:center;gap:.36rem;padding:.35rem .6rem;font-size:.73rem;font-weight:500;transition:all .14s;display:inline-flex}.step-chip:hover{border-color:var(--brand-300);color:var(--brand-700)}.step-chip span{background:#e8eef7;border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;font-size:.72rem;font-weight:700;display:inline-flex}.step-chip.active{border-color:var(--brand-900);background:var(--brand-900);color:#fff}.step-chip.complete{color:var(--success);background:#ecfdf3;border-color:#abefc6}.step-chip.active span,.step-chip.complete span{background:var(--brand-700);color:#fff}.progress-track{background:#deebf6;border-radius:999px;height:5px;position:absolute;bottom:.32rem;left:.8rem;right:.8rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--brand-700), #37a4d8);height:100%;transition:width .24s}.work-area{grid-template-columns:minmax(0,1.95fr) minmax(290px,1fr);align-items:start;gap:1rem;margin-top:1rem;display:grid}.form-card,.preview-card{border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow-soft);padding:1.1rem}.form-card{background:var(--card)}.form-card h2,.preview-card h3{font-family:var(--font-primary);letter-spacing:-.02em;color:var(--ink-900);margin:0;font-weight:700;line-height:1.2}.preview-card{position:sticky;top:1rem}.preview-card-header{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.75rem;display:flex}.summary-pill{color:var(--brand-900);background:#e9f5fc;border:1px solid #bcdff0;border-radius:999px;padding:.28rem .58rem;font-size:.73rem;font-weight:600}.hint{color:var(--ink-500);margin-top:.42rem;margin-bottom:.9rem;font-size:.91rem}.grid{gap:.78rem;display:grid}.grid.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.one-col{grid-template-columns:1fr}label{color:var(--ink-700);flex-direction:column;gap:.34rem;font-size:.84rem;font-weight:600;display:flex}input,textarea,select{border:1px solid var(--line);border-radius:var(--radius);font-size:.9rem;font-family:var(--font-primary);color:var(--ink-900);background:#fff;padding:.55rem .75rem;font-weight:500;transition:border-color .12s,box-shadow .12s}textarea{resize:vertical;min-height:90px}input:focus,textarea:focus,select:focus{border-color:var(--brand-500);outline:none;box-shadow:0 0 0 3px #1f86b833}input.invalid,textarea.invalid,select.invalid{background:#fff8f9;border-color:#d15c66}.field-error{color:var(--danger);margin-top:-.08rem;font-size:.74rem;font-weight:700}.req{color:var(--danger);margin-left:2px}.error-box{background:#fff4f4;border:1px solid #efc1c5;border-radius:10px;margin-bottom:.8rem;padding:.6rem .7rem}.error-box p{color:#8d2e37;margin:0;font-size:.83rem;font-weight:700}.error-box ul{color:#8d2e37;margin:.35rem 0 0;padding-left:1rem;font-size:.8rem}.actions{justify-content:space-between;gap:.7rem;margin-top:1rem;display:flex}button{border-radius:var(--radius);cursor:pointer;font-family:var(--font-primary);border:1px solid #0000;padding:.55rem 1rem;font-size:.86rem;font-weight:600;transition:all .15s}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{opacity:.46;cursor:not-allowed}.primary{color:#fff;background:var(--brand-900);box-shadow:var(--shadow-soft)}.primary:hover:not(:disabled){filter:brightness(1.05)}.ghost{color:var(--brand-900);border-color:var(--line);background:var(--card)}.ghost:hover:not(:disabled){border-color:var(--brand-300);background:#f0f5f7}.ghost.danger{color:var(--danger);background:#fef3f2;border-color:#fecdca}.checkbox-panel{border:1px solid var(--line-soft);background:#fafcff;border-radius:12px;gap:.46rem;margin:0;padding:.75rem;display:grid}.checkbox-panel legend{color:var(--ink-700);padding:0 .3rem;font-weight:700}.checkbox-row{flex-direction:row;align-items:center;gap:.55rem;font-weight:600;display:flex}.checkbox-row input{width:16px;height:16px}.review-block p{margin-top:0;margin-bottom:1rem}.preview-card ul{gap:.42rem;margin:0;padding:0;list-style:none;display:grid}.preview-card li{border:1px solid var(--line-soft);background:#fbfdff;border-radius:10px;justify-content:space-between;gap:.8rem;padding:.48rem .58rem;font-size:.82rem;display:flex}.preview-card li span{color:var(--ink-500)}.preview-card li strong{color:var(--ink-900);text-align:right}.small-note{color:var(--ink-500);margin-top:1rem;font-size:.85rem}.table-editor{border:1px solid var(--line-soft);border-radius:10px;margin-bottom:.75rem;overflow-x:auto}.table-editor table{border-collapse:collapse;background:#fff;width:100%;font-size:.87rem}.table-editor th{background:var(--paper);color:var(--ink-500);text-align:left;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);padding:.5rem .6rem;font-size:.72rem;font-weight:600}.table-editor td{border-bottom:1px solid #edf2f8;padding:.35rem .4rem}.table-editor td input,.table-editor td select{border:1px solid var(--line);border-radius:7px;width:100%;padding:.4rem .5rem;font-size:.84rem}.empty-row{text-align:center;color:#8698ad;font-style:italic;padding:1.2rem!important}button.small{border-radius:8px;padding:.25rem .5rem;font-size:.78rem}.price-summary{border:1px solid var(--line-soft);background:#f7fbff;border-radius:12px;margin-top:1rem;padding:1rem}.totals{flex-direction:column;align-items:flex-end;gap:.3rem;margin-top:.6rem;font-size:.9rem;display:flex}.grand-total{color:var(--brand-900);font-size:1.08rem}.review-summary{gap:.4rem;display:grid}.review-row{border:1px solid var(--line-soft);background:#f8fbff;border-radius:9px;justify-content:space-between;gap:.8rem;padding:.52rem .7rem;font-size:.88rem;display:flex}.review-row span{color:var(--ink-500)}.export-buttons{gap:.8rem;margin-top:1.1rem;display:flex}.export-buttons .primary{padding:.78rem 1.4rem;font-size:.96rem}.image-upload{flex-direction:column;gap:.34rem;display:flex}.image-upload-label{color:var(--ink-700);font-size:.84rem;font-weight:700}.image-upload-hint{color:var(--ink-500);font-size:.76rem}.image-upload-zone{cursor:pointer;background:#f8fbff;border:2px dashed #b9cadb;border-radius:12px;justify-content:center;align-items:center;transition:border-color .18s,background .18s;display:flex;overflow:hidden}.image-upload-zone:hover{border-color:var(--brand-500);background:#f0f8fd}.image-upload-zone.circle,.image-preview.circle{border-radius:50%}.image-preview{object-fit:cover;width:100%;height:100%}.image-placeholder{color:#8397ac;flex-direction:column;align-items:center;gap:.28rem;font-size:.78rem;display:flex}.image-placeholder-icon{color:#a9bfd3;font-size:1.8rem;font-weight:300}.image-upload-actions{gap:.4rem;display:flex}.image-upload-grid{flex-wrap:wrap;gap:1.15rem;margin-top:.5rem;display:flex}.cert-images-grid,.headshot-grid{flex-wrap:wrap;gap:1rem;margin-top:.5rem;display:flex}.cert-image-card{border:1px solid var(--line-soft);background:#fff;border-radius:12px;width:180px;overflow:hidden}.cert-image-preview{object-fit:cover;width:180px;height:240px;display:block}.cert-image-actions{justify-content:space-between;align-items:center;padding:.4rem;display:flex}.cert-image-label{color:var(--ink-500);font-size:.76rem;font-weight:700}.cert-image-add{cursor:pointer;color:#8397ac;border:2px dashed #b9cadb;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:180px;height:280px;font-size:.82rem;transition:border-color .18s,background .18s;display:flex}.cert-image-add:hover{border-color:var(--brand-500);background:#f0f8fd}.headshot-card{cursor:pointer;flex-direction:column;align-items:center;gap:.3rem;width:102px;display:flex}.headshot-frame{border:3px solid var(--brand-700);background:#f0f7fc;border-radius:50%;justify-content:center;align-items:center;width:82px;height:82px;transition:border-color .18s;display:flex;overflow:hidden}.headshot-card:hover .headshot-frame{border-color:var(--brand-500)}.headshot-img{object-fit:cover;width:100%;height:100%}.headshot-placeholder{color:#a7bed2;font-size:1.4rem}.headshot-name{color:var(--ink-700);text-align:center;font-size:.72rem;font-weight:700;line-height:1.2}.headshot-role{color:var(--ink-500);text-align:center;font-size:.66rem;line-height:1.2}.form-card h3{color:var(--ink-900);border-bottom:2px solid #ecf2fa;margin-top:1.5rem;margin-bottom:.5rem;padding-bottom:.28rem;font-size:1.02rem}.form-card h3:first-child{margin-top:0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1080px){.portal-shell{width:min(1240px,100% - 1.2rem);padding-top:1rem}.work-area{grid-template-columns:1fr}.preview-card{position:static}.utility-bar{grid-template-columns:1fr}.draft-actions{justify-content:flex-start}}@media (width<=760px){.brand-row{flex-direction:column;align-items:flex-start}.hero-metrics,.grid.two-cols{grid-template-columns:1fr}.stepper{padding-bottom:.95rem}.step-chip{font-size:.7rem}.actions{flex-direction:column-reverse}.actions button,.export-buttons .primary{width:100%}.export-buttons{flex-direction:column}}.dashboard-shell{width:min(1400px,100% - 2rem);margin:0 auto;padding:1rem 0 2.5rem}.dash-topbar{background:var(--brand-900);border-radius:var(--radius-lg);color:#fff;box-shadow:var(--shadow-medium);justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 1.5rem;display:flex}.dash-topbar-left{align-items:center;gap:1rem;display:flex}.dash-logo{width:100px;height:auto}.dash-topbar h1{font-size:1.3rem;font-family:var(--font-primary);letter-spacing:-.03em;margin:0;font-weight:700;line-height:1.1}.dash-title-row{align-items:center;gap:.45rem;display:inline-flex}.dash-beta-pill{letter-spacing:.08em;text-transform:uppercase;color:#0a4f60;background:#c9f0ff;border:1px solid #86d3ee;border-radius:999px;justify-content:center;align-items:center;padding:.12rem .42rem;font-size:.62rem;font-weight:700;display:inline-flex}.dash-topbar p{opacity:.85;margin:.15rem 0 0;font-size:.82rem}.dash-metrics{grid-template-columns:repeat(6,1fr);gap:.7rem;margin-top:1rem;display:grid}.dash-metric-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);align-items:flex-start;gap:.65rem;padding:.85rem;transition:transform .15s;display:flex}.dash-metric-card:hover{transform:translateY(-1px)}.dash-metric-card.highlight-amber{background:#fffbf0;border-color:#e68a00}.dash-metric-card.highlight-red{border-color:var(--danger);background:#fef5f5}.dash-metric-icon{background:#f0f5fa;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.6rem;display:flex}.dash-metric-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500);font-size:.72rem;font-weight:600}.dash-metric-value{color:var(--ink-900);font-size:1.5rem;line-height:1.1;display:block}.dash-metric-sub{color:var(--ink-500);font-size:.72rem}.dash-charts-row{grid-template-columns:1fr 1fr;gap:.9rem;margin-top:.9rem;display:grid}.dash-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:1rem}.dash-card h3{color:var(--ink-900);font-size:.95rem;font-family:var(--font-primary);letter-spacing:-.02em;margin:0 0 .7rem;font-weight:700;line-height:1.2}.pipeline-bar{border-radius:10px;gap:2px;height:36px;display:flex;overflow:hidden}.pipeline-segment{color:#fff;justify-content:center;align-items:center;min-width:32px;font-size:.85rem;font-weight:700;transition:flex .3s;display:flex}.pipeline-legend{flex-wrap:wrap;gap:.6rem;margin-top:.6rem;display:flex}.legend-item{color:var(--ink-500);align-items:center;gap:.3rem;font-size:.72rem;display:flex}.legend-dot{border-radius:3px;width:10px;height:10px}.heatmap-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.5rem;display:grid}.heatmap-cell{border:1px solid var(--line);cursor:pointer;border-left:4px solid var(--success);background:#f4faf6;border-radius:10px;flex-direction:column;gap:.2rem;padding:.55rem .65rem;transition:transform .12s,border-color .12s;display:flex}.heatmap-cell:hover{border-color:var(--brand-500);transform:translateY(-1px)}.heatmap-cell.soon{background:#fffbf0;border-left-color:#e68a00}.heatmap-cell.urgent{background:#fff5f0;border-left-color:#e05a00}.heatmap-cell.overdue{border-left-color:var(--danger);background:#fef2f2}.heatmap-name{color:var(--ink-900);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:700;overflow:hidden}.heatmap-days{color:var(--ink-500);font-size:.72rem;font-weight:600}.heatmap-cell.overdue .heatmap-days{color:var(--danger)}.heatmap-cell.urgent .heatmap-days{color:#e05a00}.dash-filter-bar{flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:.9rem;display:flex}.dash-topbar-actions{align-items:center;gap:.55rem;display:flex}.dev-user-switcher{color:#fff;min-width:220px;max-width:280px;height:38px;font:inherit;background:#ffffff1f;border:1px solid #ffffff73;border-radius:8px;padding:0 .75rem;font-size:.86rem;font-weight:600}.dev-user-switcher option{color:var(--ink-900)}.active-role-switcher{color:#ffffffd1;text-transform:uppercase;align-items:center;gap:.4rem;font-size:.75rem;font-weight:700;display:flex}.active-role-switcher select{color:#fff;min-width:170px;height:38px;font:inherit;text-transform:none;background:#ffffff1f;border:1px solid #ffffff73;border-radius:8px;padding:0 .7rem;font-size:.82rem}.active-role-switcher option{color:var(--ink-900)}.dash-modal-backdrop{z-index:50;background:#0f172a6b;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dash-modal{border:1px solid var(--line);background:#fff;border-radius:8px;width:min(100%,760px);max-height:calc(100vh - 2rem);padding:1.25rem;overflow-y:auto;box-shadow:0 24px 60px #0f172a3d}.dash-modal h3{margin:0 0 .35rem}.dash-modal p{color:var(--ink-500);margin:0 0 1rem}.dash-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;margin-top:1rem;display:flex}.new-tender-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.new-tender-grid label{min-width:0}.new-tender-grid input,.new-tender-grid select{width:100%}.new-tender-wide{grid-column:1/-1}.dash-modal .new-tender-error{color:var(--danger);margin:.8rem 0 0;font-size:.8rem;font-weight:600}.dash-search{border:1px solid var(--line);background:var(--card);border-radius:12px;flex:1;min-width:200px;padding:.55rem .8rem;font-size:.88rem}.dash-filter-pills{flex-wrap:wrap;gap:.3rem;display:flex}.filter-pill{border:1px solid var(--line);background:var(--card);color:var(--ink-500);cursor:pointer;border-radius:999px;padding:.3rem .6rem;font-size:.73rem;font-weight:600;transition:all .12s}.filter-pill:hover{background:var(--paper);color:var(--brand-700)}.filter-pill.active{background:var(--brand-900);color:#fff;border-color:var(--brand-900);font-weight:600}.dash-register-area{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:.9rem;margin-top:.9rem;display:grid}.dash-register-area.no-detail{grid-template-columns:minmax(0,1fr)}.dash-register{min-width:0}.register-table{border-collapse:collapse;width:100%;font-size:.82rem}.register-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-500);border-bottom:2px solid var(--line);padding:.55rem .5rem;font-size:.72rem;font-weight:600}.register-filter-row th{background:#f8fafc;border-bottom-width:1px;padding:.4rem .35rem .55rem}.register-filter-row input,.register-filter-row select{background:var(--card);width:100%;min-width:72px;height:32px;color:var(--ink-700);text-transform:none;letter-spacing:normal;border-color:#d0d5dd;border-radius:6px;padding:0 .5rem;font-size:.7rem;font-weight:500}.register-filter-row input::placeholder{color:var(--ink-400)}.register-filter-row input:focus,.register-filter-row select:focus{border-color:var(--brand-500);box-shadow:0 0 0 2px #2490a324}.register-row{cursor:pointer;transition:background .1s}.register-row:hover{background:#f6f9fd}.register-row.selected{background:#ebf5fc}.register-row td{border-bottom:1px solid var(--line-soft);color:var(--ink-700);padding:.55rem .5rem}.register-row.overdue td{color:var(--danger)}.register-row.urgent td:nth-child(5){color:#e05a00;font-weight:700}.ref-cell{font-family:var(--font-primary);font-size:.78rem;font-weight:500}.name-cell{font-weight:700;color:var(--ink-900)!important}.value-cell{text-align:right;font-weight:600}.status-badge{color:#fff;white-space:nowrap;border-radius:999px;padding:.2rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.completion-bar-wrap{align-items:center;gap:.4rem;display:flex}.completion-bar-wrap span{color:var(--ink-500);white-space:nowrap;font-size:.72rem;font-weight:700}.completion-bar{background:linear-gradient(90deg, var(--brand-700), #37a4d8);border-radius:999px;min-width:4px;max-width:80px;height:6px}.empty-state{text-align:center;color:var(--ink-500);padding:2rem;font-style:italic}.dash-detail{position:sticky;top:1rem}.detail-header{align-items:center;gap:.5rem;margin-bottom:.3rem;display:flex}.detail-ref{font-family:var(--font-primary);color:var(--ink-500);font-size:.8rem;font-weight:500}.dash-detail h4{color:var(--ink-900);margin:0 0 .7rem;font-size:1rem}.detail-open-button{width:100%;margin-bottom:.8rem}.detail-rows{gap:.3rem;display:grid}.detail-row{border-bottom:1px solid var(--line-soft);justify-content:space-between;padding:.35rem 0;font-size:.82rem;display:flex}.detail-row span{color:var(--ink-500)}.detail-row strong{color:var(--ink-900)}.detail-notes{border:1px solid var(--line-soft);color:var(--ink-700);background:#f8fbff;border-radius:10px;margin-top:.6rem;padding:.5rem .65rem;font-size:.8rem}.detail-status-change{margin-top:.7rem}.detail-status-change label{font-size:.8rem}.detail-status-change select{width:100%;padding:.45rem;font-size:.85rem}.detail-actions{gap:.5rem;margin-top:.8rem;display:flex}@media (width<=1100px){.dash-metrics{grid-template-columns:repeat(3,1fr)}.dash-register-area{grid-template-columns:1fr}}@media (width<=768px){.dash-metrics{grid-template-columns:repeat(2,1fr)}.dash-charts-row{grid-template-columns:1fr}.dash-topbar{text-align:center;flex-direction:column}.dash-topbar-actions{justify-content:center}.new-tender-grid{grid-template-columns:1fr}.new-tender-wide{grid-column:auto}}.users-shell{padding-bottom:2rem}.users-summary{margin-top:.8rem}.users-grid{grid-template-columns:340px 1fr;align-items:start;gap:.9rem;margin-top:.9rem;display:grid}.users-form{gap:.6rem;display:grid}.users-message{color:var(--ink-500);margin:.7rem 0 0;font-size:.8rem;font-weight:600}.users-role-fieldset,.users-role-editor{border:1px solid var(--line-soft);background:#fbfdff;border-radius:8px;gap:.4rem;padding:.65rem;display:grid}.users-role-fieldset legend{color:var(--ink-700);padding:0 .25rem;font-size:.82rem;font-weight:700}.users-role-check{color:var(--ink-700);align-items:center;gap:.45rem;font-size:.82rem;display:flex}.users-role-check input{width:16px;height:16px;accent-color:var(--brand-500)}.users-role-chips{flex-wrap:wrap;gap:.35rem;margin-top:.35rem;display:flex}.users-role-chip{border:1px solid var(--line-soft);color:var(--ink-700);background:#f4f8fb;border-radius:999px;padding:.15rem .45rem;font-size:.7rem;font-weight:700}.users-role-editor{margin-top:.45rem}.users-list{gap:.6rem;display:grid}.user-row{border:1px solid var(--line-soft);background:#fbfdff;border-radius:12px;justify-content:space-between;align-items:center;gap:.8rem;padding:.65rem .75rem;display:flex}.user-row strong{color:var(--ink-900);font-size:.9rem}.user-row p{color:var(--ink-700);margin:.1rem 0;font-size:.8rem}.user-row span{color:var(--ink-500);font-size:.72rem}.user-row.inactive{opacity:.7}.user-row-actions{flex-shrink:0;gap:.35rem;display:flex}@media (width<=980px){.users-grid{grid-template-columns:1fr}}.ws-shell{background:var(--paper);min-height:100vh}.ws-not-found{text-align:center;padding:4rem}.ws-logo{flex-shrink:0;width:96px;height:auto}.ws-not-found .ws-logo{margin:0 auto .8rem}.ws-header{background:var(--brand-900);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1.5rem;display:flex}.ws-header-left{align-items:center;gap:.8rem;display:flex}.ws-header-left .ghost{color:#fff;white-space:nowrap;background:#ffffff1f;border-color:#ffffff40;padding:.3rem .65rem;font-size:.78rem}.ws-header-left .ghost:hover{background:#ffffff38}.ws-ref{font-family:var(--font-primary);opacity:.8;font-size:.76rem;font-weight:500}.ws-header h1{font-size:1.15rem;font-family:var(--font-primary);letter-spacing:-.03em;margin:0;font-weight:700;line-height:1.1}.ws-header p{opacity:.85;margin:.1rem 0 0;font-size:.78rem}.ws-header-right{align-items:center;gap:.8rem;display:flex}.ws-status-select{border-radius:var(--radius);cursor:pointer;background:#fffffff2;border:1.5px solid;padding:.3rem .55rem;font-size:.8rem;font-weight:600}.ws-header-stats{opacity:.9;gap:.8rem;font-size:.76rem;display:flex}.ws-header-stats span{background:#ffffff26;border-radius:999px;padding:.25rem .5rem}.ws-tab-bar{background:var(--card);border-bottom:1px solid var(--line);gap:0;padding:0 1.5rem;display:flex;overflow-x:auto}.ws-tab{color:var(--ink-500);cursor:pointer;white-space:nowrap;font-size:.82rem;font-weight:600;font-family:var(--font-primary);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.65rem 1rem;transition:color .12s,border-color .12s}.ws-tab:hover{color:var(--brand-700)}.ws-tab.active{color:var(--brand-900);border-bottom-color:var(--brand-700);font-weight:600}.ws-subtab-bar{background:var(--card);border-bottom:1px solid var(--line);gap:.35rem;padding:.5rem 1.5rem;display:flex;overflow-x:auto}.ws-subtab{color:var(--ink-500);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:.3rem;padding:.38rem .85rem;font-size:.78rem;font-weight:600;transition:all .12s;display:flex}.ws-subtab:hover{background:var(--paper);color:var(--brand-700)}.ws-subtab.active{background:var(--brand-900);color:#fff;border-color:var(--brand-900);font-weight:600}.ws-subtab-icon{font-size:.9rem}.ws-stat-badge{border-radius:var(--radius);background:#ffffff1a;border:1px solid #fff3;padding:.2rem .55rem;font-size:.74rem;font-weight:600}.ws-stat-badge.complete{background:#12805c4d;border-color:#12805c66}.ws-content{padding:1.2rem 1.5rem;overflow-y:auto}.ws-content-tabs{max-width:1200px;margin:0 auto}.ws-content h2{font-family:var(--font-primary);color:var(--ink-900);letter-spacing:-.02em;margin:0 0 .2rem;font-size:1.2rem;font-weight:700;line-height:1.2}.ws-required-details{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);margin-bottom:1rem;padding:1rem 1.2rem}.ws-required-header{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.ws-required-actions{align-items:center;gap:.4rem;display:flex}.ws-required-header h3{color:var(--ink-900);letter-spacing:-.02em;margin:0;font-size:.98rem;font-weight:700;line-height:1.2}.ws-required-badge{border-radius:var(--radius);padding:.2rem .5rem;font-size:.72rem;font-weight:600}.ws-required-badge.complete{color:var(--success);background:#ecfdf3;border:1px solid #abefc6}.ws-required-badge.pending{color:#b54708;background:#fffaeb;border:1px solid #fedf89}.ws-required-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-top:.6rem;display:grid}.ws-required-grid label{font-size:.78rem;display:block}.ws-required-grid input,.ws-required-grid select{width:100%;margin-top:.25rem;display:block}.ws-system-managed-field{color:var(--ink-500)}.ws-system-managed-field input{background:var(--paper);border-color:var(--ink-400);color:var(--ink-500)}.ws-optional-field{color:var(--ink-500);font-size:.7rem;font-weight:500}.ws-required-warning{color:var(--danger);margin:.7rem 0 0;font-size:.78rem;font-weight:600}.ws-required-info{color:var(--ink-500);margin:.55rem 0 0;font-size:.76rem;font-weight:600}.ws-overview-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.7rem;margin-top:.8rem;display:grid}.ws-folder-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);cursor:pointer;box-shadow:var(--shadow-soft);align-items:center;gap:.7rem;padding:.8rem;transition:all .15s;display:flex}.ws-folder-card:hover{border-color:var(--brand-300);transform:translateY(-1px)}.ws-folder-card.submission-card{border-color:var(--brand-500);background:linear-gradient(135deg,#f0f8ff,#e8f4fd)}.ws-folder-icon{background:#f0f5fa;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.8rem;display:flex}.ws-folder-info strong{color:var(--ink-900);font-size:.84rem;display:block}.ws-folder-info span{color:var(--ink-500);font-size:.74rem}.ws-section-panel{grid-template-columns:1fr 340px;gap:1rem;margin-top:.8rem;display:grid}.ws-files-area,.ws-notes-area{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:1rem}.ws-files-header{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.ws-files-header h4,.ws-notes-area h4{color:var(--ink-900);margin:0;font-size:.9rem}.ws-drop-zone{border:2px dashed var(--line);border-radius:var(--radius);min-height:120px;padding:.5rem;transition:border-color .2s}.ws-drop-zone.disabled{background:#f8fafd;border-color:#d4dde8}.ws-drop-zone:hover,.ws-drop-zone.drag-over{border-color:var(--brand-500)}.ws-drop-zone.disabled:hover{border-color:#d4dde8}.ws-drop-placeholder{color:var(--ink-500);flex-direction:column;justify-content:center;align-items:center;gap:.4rem;padding:2rem;display:flex}.ws-drop-placeholder span{font-size:2rem}.ws-drop-placeholder p{margin:0;font-size:.82rem}.ws-gate-note{color:var(--danger);font-weight:600;margin-top:.3rem!important;font-size:.74rem!important}.ws-file-list{flex-direction:column;gap:.35rem;display:flex}.ws-file-item{border-radius:10px;align-items:center;gap:.6rem;padding:.45rem .5rem;transition:background .1s;display:flex}.ws-file-item:hover{background:#f6f9fd}.ws-file-thumb{object-fit:cover;border:1px solid var(--line-soft);border-radius:8px;width:44px;height:44px}.ws-file-icon{background:#f0f5fa;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.4rem;display:flex}.ws-file-info{flex:1;min-width:0}.ws-file-name{color:var(--ink-900);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:600;display:block;overflow:hidden}.ws-file-meta{color:var(--ink-500);font-size:.7rem}.ws-file-actions{flex-shrink:0;gap:.25rem;display:flex}.ws-file-actions a{padding:.2rem .4rem;font-size:.78rem;text-decoration:none;display:inline-block}.ws-file-original{color:var(--ink-400);margin-left:.3rem;font-size:.68rem;font-weight:400;display:inline}.ws-staging-area{border:1px solid var(--brand-300);border-radius:var(--radius-lg);background:#f0f9ff;margin-bottom:.6rem;padding:.75rem}.ws-staging-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.ws-staging-header h5{color:var(--brand-900);margin:0;font-size:.82rem}.ws-staging-actions{gap:.35rem;display:flex}.ws-staged-list{flex-direction:column;gap:.35rem;display:flex}.ws-staged-item{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:.5rem;padding:.4rem .5rem;display:flex}.ws-staged-icon{background:#f0f5fa;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.2rem;display:flex}.ws-staged-fields{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.ws-staged-name{border:1px solid var(--line);color:var(--ink-900);background:#fff;border-radius:6px;padding:.25rem .4rem;font-size:.82rem;font-weight:600}.ws-staged-name:focus{border-color:var(--brand-500);outline:none;box-shadow:0 0 0 2px #1e5aa01f}.ws-staged-meta{color:var(--ink-400);padding-left:.4rem;font-size:.68rem}.ws-rename-row{align-items:center;gap:.35rem;display:flex}.ws-rename-input{border:1px solid var(--brand-500);color:var(--ink-900);border-radius:6px;flex:1;padding:.2rem .4rem;font-size:.82rem;font-weight:600}.ws-rename-input:focus{outline:none;box-shadow:0 0 0 2px #1e5aa01f}.ws-note-input{align-items:flex-end;gap:.4rem;margin:.5rem 0;display:flex}.ws-note-input textarea{border-radius:10px;flex:1;min-height:50px;font-size:.82rem}.ws-note-item{border-bottom:1px solid var(--line-soft);padding:.5rem}.ws-note-header{align-items:center;gap:.4rem;margin-bottom:.2rem;display:flex}.ws-note-author{color:var(--ink-700);font-size:.74rem;font-weight:700}.ws-note-date{color:var(--ink-500);flex:1;font-size:.68rem}.ws-note-content{color:var(--ink-700);white-space:pre-wrap;margin:0;font-size:.82rem}.ws-submission-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);max-width:640px;box-shadow:var(--shadow-soft);padding:1.5rem}.ws-submission-stats{gap:1.2rem;margin:1rem 0;display:flex}.ws-stat{flex-direction:column;gap:.15rem;display:flex}.ws-stat span{color:var(--ink-500);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.ws-stat strong{color:var(--ink-900);font-size:1.1rem}.ws-open-wizard{padding:.8rem 1.8rem;font-size:1rem}.ws-lifecycle-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:1.25rem}.ws-lifecycle-form{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;margin:1rem 0 1.25rem;display:grid}.ws-lifecycle-form label{color:var(--ink-700);flex-direction:column;gap:.3rem;font-size:.82rem;display:flex}.ws-lifecycle-form input,.ws-lifecycle-form select,.ws-lifecycle-form textarea{border:1px solid var(--line);font:inherit;color:var(--ink-900);border-radius:8px;padding:.55rem .65rem}.ws-lifecycle-list{gap:.65rem;display:grid}.ws-lifecycle-item{border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:flex-start;gap:.8rem;padding:.75rem;display:flex}.ws-lifecycle-item.preferred{background:#f0fff4;border-color:#2f855a}.ws-lifecycle-item p{color:var(--ink-600);margin:.2rem 0 0;font-size:.82rem}.ws-lifecycle-actions{flex-wrap:wrap;gap:.45rem;display:flex}.quote-workspace{grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.quote-main{min-width:0}.quote-explorer{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;padding:.85rem}.quote-explorer-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;display:flex}.quote-explorer-header h3{color:var(--ink-900);margin:0;font-size:.95rem}.quote-explorer-header p{color:var(--ink-500);word-break:break-word;margin:.15rem 0 0;font-size:.74rem}.quote-tree{gap:.2rem;display:grid}.quote-tree-row{border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.4rem;min-height:42px;padding:.35rem;display:grid}.quote-tree-row.folder{background:#f7fbff}.quote-tree-row.file{background:#fff;border:1px solid #edf1f4}.quote-tree-row.selected{background:#e8f3ff}.quote-tree-expand{width:1.15rem;color:var(--ink-600);cursor:pointer;background:0 0;border:0;padding:0}.quote-tree-expand-spacer{width:1.15rem}.quote-tree-name{text-align:left;min-width:0;color:var(--ink-800);cursor:pointer;background:0 0;border:0;width:100%;padding:0}.quote-tree-name span{color:var(--ink-500);font-size:.65rem;display:block}.quote-tree-primary{align-items:center;gap:.35rem;min-width:0;display:flex}.quote-tree-icon{flex:none;font-size:.9rem}.quote-tree-name strong{overflow-wrap:anywhere;white-space:normal;font-size:.8rem;line-height:1.3;display:block}.quote-tree-row.file .quote-tree-name{cursor:default}.quote-tree-body{flex-direction:column;gap:.35rem;min-width:0;display:flex}.quote-tree-row-actions{justify-content:flex-end;align-items:flex-start;display:flex;position:relative}.quote-row-menu{position:relative}.quote-row-menu-trigger{border:1px solid var(--line);width:28px;height:28px;color:var(--ink-700);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:8px;justify-content:center;align-items:center;list-style:none;display:inline-flex}.quote-row-menu-trigger::-webkit-details-marker{display:none}.quote-row-menu[open] .quote-row-menu-trigger{border-color:var(--brand-300);background:#f5fbff}.quote-row-menu-items{z-index:20;border:1px solid var(--line);min-width:130px;box-shadow:var(--shadow-soft);background:#fff;border-radius:10px;gap:.2rem;padding:.25rem;display:grid;position:absolute;top:calc(100% + 6px);right:0}.quote-row-menu-item{text-align:left;color:var(--ink-700);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.45rem .5rem;font-size:.78rem}.quote-row-menu-item:hover:not(:disabled){background:#f5f9ff}.quote-row-menu-item.danger{color:var(--danger)}.quote-row-menu-item:disabled{opacity:.45;cursor:not-allowed}.quote-tree-file-meta{justify-content:space-between;align-items:flex-start;gap:.5rem;padding-left:1.25rem;display:flex}.quote-tree-file-meta.preferred{border-left:2px solid #2f855a;padding-left:calc(1.25rem - 2px)}.quote-tree-file-info{gap:.1rem;min-width:0;display:grid}.quote-tree-file-main{color:var(--ink-700);overflow-wrap:anywhere;font-size:.76rem}.quote-tree-file-sub{color:var(--ink-600);opacity:.9;overflow-wrap:anywhere;font-size:.72rem}.quote-tree-file-actions{flex-wrap:wrap;justify-content:flex-end;gap:.25rem;display:flex}.quote-tree-more{color:var(--ink-500);margin:.05rem 0 .3rem;font-size:.72rem}.quote-upload-destination{border:1px dashed var(--line);color:var(--ink-700);background:#f7fbff;border-radius:6px;margin:0;padding:.5rem .65rem;font-size:.78rem}.quote-trade-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.quote-drop-zone{border:2px dashed var(--line);background:#fbfdff;border-radius:10px;justify-content:space-between;align-items:center;gap:.6rem;min-height:120px;padding:.8rem;transition:border-color .12s,background .12s,box-shadow .12s;display:flex}.quote-drop-zone p{color:var(--ink-600);margin:0;font-size:.78rem}.quote-drop-zone.disabled{background:#f5f7fa;border-color:#d8e0ea}.quote-drop-zone.drag-over{border-color:var(--brand-500);background:#eef8ff;box-shadow:0 0 0 3px #2490a326}.quote-staged-files{border:1px solid var(--brand-300);background:#edf7ff;border-radius:10px;grid-column:1/-1;gap:.35rem;width:100%;min-width:0;padding:.55rem;display:grid;box-shadow:inset 0 0 0 1px #7ec8d633}.quote-staged-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.quote-staged-list{gap:.25rem;min-width:0;display:grid}.quote-staged-item{border:1px solid var(--line);background:#fff;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;width:100%;min-width:0;padding:.28rem .42rem;display:flex}.quote-staged-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-700);flex:12rem;font-size:.78rem;overflow:hidden}.quote-staged-actions{flex-wrap:wrap;justify-content:flex-end;gap:.25rem;margin-left:auto;display:flex}.quote-staged-footer{justify-content:flex-end;padding-top:.2rem;display:flex}@media (width<=900px){.ws-tab-bar{padding:0 .75rem}.ws-tab{padding:.55rem .7rem;font-size:.74rem}.ws-subtab-bar{padding:.3rem .75rem}.ws-subtab{padding:.3rem .6rem;font-size:.7rem}.ws-content-tabs{padding:.8rem}.ws-section-panel{grid-template-columns:1fr}.ws-required-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-workspace{grid-template-columns:1fr}}@media (width<=640px){.ws-required-grid{grid-template-columns:1fr}}.login-shell{background:#f0f4f8;width:100%;min-height:100vh;display:flex}.login-brand{color:#fff;background:linear-gradient(165deg,#164050f2 0%,#1b5e6be6 50%,#2490a3d9 100%),url(/hero.png) 50%/cover no-repeat;flex-direction:column;flex:1;justify-content:center;padding:3rem 4rem;display:flex;position:relative;overflow:hidden}.login-brand:before{content:"";pointer-events:none;background:radial-gradient(at 20% 80%,#f0a1001f,#0000 60%),radial-gradient(at 80% 20%,#ffffff0d,#0000 50%);position:absolute;inset:0}.login-brand-content{z-index:1;max-width:520px;position:relative}.login-logo{filter:brightness(0)invert();height:52px;margin-bottom:2.5rem}.login-welcome{opacity:.85;letter-spacing:.02em;margin:0 0 .25rem;font-size:1.25rem;font-weight:300}.login-hero-text h1{letter-spacing:-.02em;margin:0;font-size:3.2rem;font-weight:700;line-height:1.1}.login-tagline{opacity:.82;max-width:440px;margin:1.5rem 0 2.5rem;font-size:1.05rem;line-height:1.6}.login-features{flex-direction:column;gap:1.5rem;display:flex}.login-feature{align-items:flex-start;gap:1rem;display:flex}.login-feature-icon{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff1f;border:1px solid #ffffff26;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.login-feature-icon svg{color:#fff;width:22px;height:22px}.login-feature strong{margin-bottom:.15rem;font-size:.92rem;font-weight:600;display:block}.login-feature span{opacity:.72;font-size:.82rem;line-height:1.45;display:block}.login-footer{opacity:.5;margin-top:3rem;font-size:.78rem}.login-form-area{background:radial-gradient(circle at 50% 0,#288ec30f,#0000 50%),#f0f4f8;flex:0 0 520px;justify-content:center;align-items:center;padding:3rem;display:flex}.login-card{text-align:center;background:#fff;border-radius:20px;width:100%;max-width:420px;padding:2.5rem 2.5rem 2rem;box-shadow:0 20px 50px #0f315414,0 2px 8px #0f31540a}.login-card-icon{background:linear-gradient(135deg,#e8f4fa,#dceef8);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 1.25rem;display:flex}.login-card-icon svg{width:30px;height:30px;color:var(--brand-700)}.login-card h2{color:var(--ink-900);margin:0 0 .4rem;font-size:1.4rem;font-weight:700}.login-card-sub{color:var(--ink-500);margin:0 0 2rem;font-size:.88rem}.login-sso-btn{border:1.5px solid var(--line);width:100%;color:var(--ink-900);cursor:pointer;background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:.75rem;padding:.85rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .2s;display:flex}.login-sso-btn:hover{border-color:var(--brand-500);background:#fafcfe;box-shadow:0 4px 12px #1f86b81a}.login-sso-btn .ms-logo{width:20px;height:20px}.login-divider{color:var(--ink-500);align-items:center;gap:1rem;margin:1.5rem 0;font-size:.78rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--line-soft);flex:1;height:1px}.login-dev-form{text-align:left}.login-dev-form label{color:var(--ink-700);margin-bottom:.3rem;font-size:.82rem;font-weight:600;display:block}.login-dev-form input{border:1.5px solid var(--line);border-radius:10px;width:100%;margin-bottom:.75rem;padding:.7rem .9rem;font-size:.9rem;transition:border-color .2s}.login-dev-form input:focus{border-color:var(--brand-500);outline:none}.login-dev-btn{background:linear-gradient(135deg, var(--brand-900), var(--brand-700));color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:.75rem;font-size:.92rem;font-weight:600;transition:opacity .2s}.login-dev-btn:hover{opacity:.9}.login-dev-btn:disabled{opacity:.5;cursor:default}.login-error{color:var(--danger);text-align:center;margin:.5rem 0 0;font-size:.82rem}.login-help{color:var(--ink-500);margin:1.75rem 0 0;font-size:.82rem}.login-help a{color:var(--brand-500);font-weight:500;text-decoration:none}.login-help a:hover{text-decoration:underline}.auth-loading{min-height:100vh;color:var(--ink-500);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.auth-loading-spinner{border:3px solid var(--line);border-top-color:var(--brand-500);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=960px){.login-shell{flex-direction:column}.login-brand{min-height:auto;padding:2rem 2rem 1.5rem}.login-hero-text h1{font-size:2.2rem}.login-features{gap:1rem}.login-form-area{flex:none;padding:2rem}.login-footer{margin-top:1.5rem}}@media (width<=640px){.login-brand{padding:1.5rem}.login-hero-text h1{font-size:1.8rem}.login-tagline{margin:1rem 0 1.5rem;font-size:.92rem}.login-features{gap:.75rem}.login-feature-icon{width:38px;height:38px}.login-form-area{padding:1.25rem}.login-card{border-radius:16px;padding:2rem 1.5rem 1.5rem}}
