@charset "UTF-8";
:root{font-family:"Pretendard","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;color:#17323e;background:#f3f6f7;font-synthesis:none;font-size:15px;line-height:1.6;--navy:#102b36;--teal:#087d75;--teal-dark:#05635e;--muted:#677b86;--line:#e2e9ec;--paper:#fff;--danger:#b84434;--amber:#936314;--shadow:0 8px 28px #16333e06}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:var(--teal)}button,input,select,a{outline-offset:4px}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #19b4a5}h1,h2,h3,p{margin-top:0}h1{font-size:30px;line-height:1.4;letter-spacing:-1.2px;margin-bottom:9px}h2{font-size:19px;line-height:1.5;letter-spacing:-.5px;margin-bottom:16px}h3{font-size:16px;letter-spacing:-.3px;margin-bottom:10px}p{margin-bottom:12px}small{font-size:12px}svg{display:block}button svg{flex-shrink:0}button{border:0}button[hidden],[hidden]{display:none!important}.skip-link{position:fixed;top:-70px;left:20px;z-index:100;background:white;padding:12px}.skip-link:focus{top:12px}.boot-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px}.brand-mark{width:45px;height:45px;border-radius:13px;background:#0c827b;color:white;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:900;letter-spacing:-5px;padding-right:4px}.brand-mark span{color:#b2eee4}.brand{display:flex;align-items:center;gap:12px}.brand-word{font-size:25px;font-weight:850;letter-spacing:-1px;line-height:1.2}.brand-version{font-size:11px;letter-spacing:1.5px;font-weight:600;opacity:.65;margin-top:3px}.eyebrow{color:var(--teal);font-size:11px;font-weight:750;letter-spacing:1.8px;margin-bottom:12px}.muted{color:var(--muted)}.tiny{font-size:12px}.nowrap{white-space:nowrap}.mono{font-variant-numeric:tabular-nums}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:43px;padding:10px 17px;border-radius:8px;font-size:13px;line-height:1.5;font-weight:700;background:var(--teal);color:white;text-decoration:none;transition:background .15s,transform .15s;white-space:nowrap}.button:hover{background:var(--teal-dark)}.button.secondary{background:white;border:1px solid #d4dfe3;color:#314f5e}.button.secondary:hover{background:#f1f7f7}.button.ghost{background:transparent;color:var(--teal);padding:8px 10px}.button.ghost:hover{background:#eaf5f3}.button.small{min-height:35px;padding:7px 11px;font-size:12px}.button.danger{background:#fdf0ed;color:var(--danger);border:1px solid #f0d2c9}.button.full{width:100%;min-height:48px}.icon-button{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line);border-radius:8px;color:#58727e}.icon-button:hover{background:#edf4f5}.button-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:19px}.field label,.field-label{font-size:13px;font-weight:700;color:#304d5b}.field input,.field select,.search-input{width:100%;min-height:47px;padding:12px 14px;background:white;border:1px solid #cfdbdf;border-radius:8px;color:#17323e;min-width:0}.field input::placeholder,.search-input::placeholder{color:#8c9ca4}.field input:focus,.search-input:focus{border-color:#159a90}.field-hint{font-size:12px;color:var(--muted);line-height:1.6}.form-error{background:#fff0ec;border:1px solid #f1d4cb;border-radius:8px;padding:12px 14px;color:#973d2f;font-size:13px;margin-bottom:18px;overflow-wrap:anywhere}.form-success{background:#edf8f3;border:1px solid #cce9dd;border-radius:8px;padding:13px;color:#28634e;font-size:13px;margin-bottom:18px}.login-layout{display:grid;grid-template-columns:minmax(400px,46%) 1fr;min-height:100dvh;background:white}.login-story{background:var(--navy);color:white;padding:54px clamp(38px,5vw,90px);position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.login-story:before{content:"";position:absolute;left:-120px;bottom:-330px;width:780px;height:780px;border:1px solid #ffffff0b;border-radius:50%;pointer-events:none}.login-story .brand-mark{background:#ffffff13}.login-copy{padding:70px 0 44px;position:relative;max-width:540px}.login-copy .eyebrow{color:#6ed3c5}.login-copy h1{font-size:clamp(32px,3.2vw,49px);line-height:1.4;letter-spacing:-2px;margin-bottom:22px;font-weight:750;word-break:keep-all}.login-copy h1 em{font-style:normal;color:#7bddce}.login-copy p{font-size:14px;color:#9ab4be;line-height:1.9;max-width:350px;word-break:keep-all}.login-visual{max-width:430px;margin:32px 0 26px}.login-visual svg{width:100%;height:auto}.engine-notes{display:flex;gap:30px;border-top:1px solid #ffffff1a;padding-top:25px;margin-top:16px}.engine-note strong{display:block;font-size:25px;color:#e9f8f5;letter-spacing:-.7px}.engine-note span{color:#87a3b0;font-size:11px}.story-footer{font-size:11px;color:#7894a1;position:relative;letter-spacing:.4px}.login-panel{display:flex;align-items:center;justify-content:center;padding:60px 36px;position:relative}.login-form-wrap{width:100%;max-width:374px}.login-form-wrap h2{font-size:28px;letter-spacing:-1px;margin-bottom:8px}.login-subtitle{font-size:13px;color:var(--muted);margin-bottom:33px;line-height:1.8}.login-controls{margin-top:20px;text-align:center;color:var(--muted);font-size:12px}.login-controls button{font-weight:700}.login-note{font-size:11px;color:#8a9ba4;border-top:1px solid var(--line);padding-top:22px;margin-top:28px;line-height:1.8}.login-label{position:absolute;top:30px;right:36px;color:#8a9ca5;font-size:11px;letter-spacing:1px}.app-shell{min-height:100dvh;padding-left:232px}.sidebar{width:232px;position:fixed;inset:0 auto 0 0;z-index:40;background:var(--navy);color:white;display:flex;flex-direction:column;padding:31px 18px 18px}.sidebar .brand{margin:0 14px 38px}.sidebar .brand-mark{width:39px;height:39px;font-size:24px;border-radius:11px}.sidebar .brand-word{font-size:24px}.nav-label{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#76929f;margin:0 17px 12px}.nav-list{display:flex;flex-direction:column;gap:5px}.nav-item{background:transparent;text-align:left;min-height:45px;padding:11px 14px;color:#a8bdc7;border-radius:8px;font-size:13px;font-weight:550;display:flex;align-items:center;gap:12px;position:relative;transition:background .15s}.nav-item:hover{background:#ffffff08;color:#f1f9f8}.nav-item.active{color:white;background:#0d7771}.nav-item.active:after{content:"";width:5px;height:5px;background:#83decf;border-radius:50%;margin-left:auto}.nav-secondary{margin-top:31px}.sidebar-bottom{margin-top:auto;padding-top:34px}.sidebar-engine{padding:15px;border:1px solid #36505c;border-radius:9px;font-size:11px;color:#89a4b0;margin-bottom:18px}.sidebar-engine strong{display:block;color:#c2d9dc;font-size:12px;margin-bottom:5px}.account{display:flex;gap:10px;align-items:center;padding:14px 5px 0;border-top:1px solid #ffffff12}.avatar{width:34px;height:34px;border-radius:10px;background:#284551;color:#bbd2d9;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:750;flex-shrink:0}.account-name{font-size:12px;color:#dde9ed;max-width:117px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-role{font-size:10px;color:#809daa}.logout{padding:5px;margin-left:auto;color:#89a4b0;background:transparent}.logout:hover{color:white}.app-topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:20px}.breadcrumb{display:flex;align-items:center;gap:12px;font-size:12px;color:#8a9aa4}.breadcrumb strong{color:#405966;font-weight:600}.topbar-right{display:flex;align-items:center;gap:20px;font-size:11px;color:var(--muted)}.topbar-version{padding:4px 8px;background:#f0f5f6;border-radius:5px;font-size:10px;letter-spacing:.3px;font-weight:700}.menu-button{display:none}.main-content{padding:32px 38px 44px;max-width:1680px;margin:0 auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:27px}.page-heading h1{font-size:27px}.page-heading p{font-size:12px;color:var(--muted);margin:0;line-height:1.8}.page-heading .button-row{padding-top:8px}.page-eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:700;color:var(--teal);margin-bottom:6px}.card{background:white;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:24px;min-width:0}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.card-heading h2{margin:0;font-size:16px}.card-heading p{margin:4px 0 0;color:var(--muted);font-size:11px}.hero-card{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:28px 30px;background:linear-gradient(108deg,#e6f3ef 0%,#f5faf8 65%,#eef6f3 100%);border-color:#d4e8df;margin-bottom:22px}.hero-card h2{font-size:23px;margin-bottom:8px;letter-spacing:-1px}.hero-card p{font-size:12px;color:#617e79;margin:0;max-width:500px;word-break:keep-all}.hero-icon{flex-shrink:0;width:88px;height:88px;color:#479d91;background:#ffffff88;border:1px solid #ffffff;border-radius:24px;display:grid;place-items:center;transform:rotate(-7deg)}.hero-icon svg{transform:rotate(7deg)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat-card{padding:20px 22px}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:9px;color:#627c88;font-size:12px}.stat-icon{width:30px;height:30px;border-radius:8px;background:#edf5f4;color:#4a948d;display:grid;place-items:center}.stat-value{font-size:31px;line-height:1.3;font-weight:740;letter-spacing:-1px;margin:13px 0 7px;display:flex;align-items:baseline;gap:5px}.stat-value small{font-size:11px;font-weight:500;color:#8396a0;letter-spacing:0}.stat-foot{font-size:10px;color:#8799a2}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(270px,1fr);gap:22px}.stack{display:flex;flex-direction:column;gap:22px}.section-space{margin-top:22px}.empty-state{text-align:center;padding:40px 20px;color:var(--muted)}.empty-symbol{width:48px;height:48px;display:grid;place-items:center;background:#f0f6f6;color:#7d9caa;border-radius:14px;margin:0 auto 17px}.empty-state h3{color:#496472;font-size:15px;font-weight:650;margin-bottom:8px}.empty-state p{font-size:12px;max-width:460px;margin:0 auto 20px;line-height:1.8;word-break:keep-all}.empty-state .button{margin-top:2px}.status-list{display:flex;flex-direction:column;gap:0}.status-row{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid #edf1f3;font-size:12px}.status-row:first-child{padding-top:0}.status-row:last-child{padding-bottom:0;border-bottom:0}.status-label{color:#718894}.status-value{font-weight:600;color:#3c5967;text-align:right;overflow-wrap:anywhere}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:5px;font-size:10px;font-weight:650;line-height:1.4;background:#eef3f5;color:#637c89;white-space:nowrap}.badge.good{background:#eaf6ef;color:#2b7959}.badge.warn{background:#fff5e1;color:#946915}.badge.bad{background:#fceee9;color:#b34e3c}.badge.teal{background:#e6f5f1;color:#137d70}.status-dot{width:5px;height:5px;background:currentColor;border-radius:50%}.note{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;background:#f4f8f9;color:#687e89;border-radius:8px;font-size:11px;line-height:1.8}.note svg{margin-top:2px;flex-shrink:0}.note p{margin:0}.note.warning{background:#fff7e9;color:#8a662c}.search-form{display:flex;align-items:center;gap:10px;margin-bottom:22px}.search-wrap{position:relative;flex:1;min-width:0}.search-wrap svg{position:absolute;top:15px;left:15px;color:#8aa0a9}.search-input{padding-left:44px;font-size:13px}.search-form .button{height:47px}.table-wrap{overflow-x:auto;margin:0 -24px}.data-table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:12px}.data-table th{font-size:10px;color:#7d929d;background:#f8fafb;font-weight:650;padding:12px 22px;border-top:1px solid #e8eef0;border-bottom:1px solid #e8eef0}.data-table td{padding:17px 22px;border-bottom:1px solid #edf1f3;color:#56717f}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafdfc}.table-primary{font-weight:650;color:#254655;white-space:normal;min-width:180px;max-width:410px;text-align:left;background:transparent;padding:0;font-size:12px;line-height:1.7;display:block}.table-primary:hover{color:var(--teal);text-decoration:underline}.table-sub{font-size:10px;color:#8a9da6;margin-top:4px;white-space:normal}.table-money{font-weight:650;font-variant-numeric:tabular-nums;color:#2a4d5d!important}.table-caption{font-size:12px;color:var(--muted);margin-bottom:15px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:17px;margin-top:17px;font-size:11px;color:var(--muted)}.tender-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 26px}.meta-label{font-size:11px;color:#78909c;margin-bottom:5px}.meta-value{font-size:14px;color:#365867;font-weight:650;overflow-wrap:anywhere}.tender-title{font-size:21px;line-height:1.65;margin:8px 0 24px;letter-spacing:-.6px}.analysis-toolbar{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-top:22px;border-top:1px solid var(--line);padding-top:22px}.analysis-toolbar .field{margin:0;max-width:310px;width:100%}.analysis-toolbar input{font-size:12px;min-height:42px}.analysis-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:30px 0 16px}.analysis-intro h2{margin:0;font-size:19px}.analysis-intro .tiny{max-width:50%;text-align:right}.recommendation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.recommendation-card{padding:22px;position:relative;border-top:3px solid #5579b3}.recommendation-card.priority{border-color:#0b8b7d;background:linear-gradient(#f4fbf8,white 130px)}.recommendation-card.balance{border-top-color:#5579b3}.recommendation-card.alternative{border-top-color:#ba8c47}.recommendation-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:10px}.recommendation-top h3{margin:0;font-size:15px}.strategy-index{font-size:10px;letter-spacing:1px;color:#8aa4af}.recommendation-amount{font-size:clamp(20px,2.1vw,29px);font-weight:760;letter-spacing:-1.1px;color:#163e4b;line-height:1.4;margin:9px 0 22px;overflow-wrap:anywhere}.recommendation-amount small{font-size:12px;font-weight:500;letter-spacing:0;margin-left:3px;color:#76909b}.probability-label{font-size:10px;color:#718995}.probability-value{font-size:24px;line-height:1.35;color:#167e70;font-weight:700;letter-spacing:-.6px}.probability-block{padding-bottom:16px;margin-bottom:15px;border-bottom:1px solid var(--line)}.recommendation-card .status-row{font-size:10px;padding:7px 0;border:0;gap:7px}.recommendation-explanation{border-top:1px solid var(--line);margin-top:17px;padding-top:15px;color:#6d858f;font-size:11px;line-height:1.8;word-break:keep-all}.recommendation-explanation p:last-child{margin-bottom:0}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.chart-card{padding:22px}.chart-card h3{font-size:14px;margin-bottom:3px}.chart-subtitle{font-size:10px;color:#8296a0;margin-bottom:10px}.chart-container{width:100%;position:relative;min-height:190px}.chart-container svg{width:100%;height:auto;overflow:visible}.chart-legend{display:flex;gap:17px;flex-wrap:wrap;margin-top:9px;font-size:10px;color:#6c8490}.legend-mark{width:8px;height:8px;display:inline-block;margin-right:5px;border-radius:2px}.chart-empty{height:190px;display:flex;align-items:center;justify-content:center;color:#8599a3;font-size:11px}.chart-axis{display:flex;gap:6px}.chart-axis .button{font-size:10px;min-height:29px;padding:5px 9px}.chart-axis .selected{background:#e7f4f0;color:#0d7c6e;border-color:#bddfd4}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:22px;align-items:start}.section-description{font-size:12px;line-height:1.8;color:var(--muted);margin-bottom:23px}.collection-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:24px}.flow-step{border:1px solid #e1ebe8;background:#f8fbfa;border-radius:8px;padding:14px 12px}.flow-step small{color:#73a196;font-size:10px;letter-spacing:.7px}.flow-step strong{display:block;font-size:12px;color:#3e675f;margin-top:3px}.flow-step span{display:block;font-size:10px;color:#7c9992;margin-top:4px}.progress-track{height:7px;background:#eef3f4;border-radius:5px;overflow:hidden;margin:9px 0}.progress-fill{height:100%;background:#11998a;border-radius:5px}.definition-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.definition{padding:15px 0;border-bottom:1px solid var(--line)}.definition dt{font-size:10px;color:#7f939d;margin-bottom:4px}.definition dd{font-size:19px;font-weight:700;color:#395966;margin:0}.toast{position:fixed;bottom:26px;left:calc(50% + 90px);transform:translateX(-50%);z-index:90;background:#173b43;color:white;box-shadow:0 8px 40px #17333e33;border-radius:9px;padding:13px 20px;font-size:12px;max-width:calc(100vw - 34px);overflow-wrap:anywhere}.toast.error{background:#843c33}.loading{padding:70px 20px;text-align:center;color:#7e96a0;font-size:12px}.spinner{display:block;width:25px;height:25px;border-radius:50%;border:2px solid #dcece8;border-top-color:var(--teal);margin:0 auto 17px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{border:1px solid var(--line);border-radius:14px;padding:27px;max-width:440px;width:calc(100% - 32px);color:#244651;box-shadow:0 20px 100px #122f4355}dialog::backdrop{background:#102b3677;backdrop-filter:blur(2px)}dialog h2{font-size:21px}dialog .dialog-header{display:flex;justify-content:space-between;align-items:start;gap:20px}.dialog-footer{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.mobile-scrim{display:none}.app-footer{margin-top:34px;padding-top:18px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);font-size:10px;color:#8fa0a8}.inline-error{padding:22px;border-radius:10px;background:#fff6f1;border:1px solid #f0ded2;color:#8b5739}.inline-error h3{font-size:14px}.inline-error p{font-size:12px;overflow-wrap:anywhere}.full-width{grid-column:1/-1}.break-anywhere{overflow-wrap:anywhere}.mt-16{margin-top:16px}.mt-24{margin-top:24px}
.rule-editor summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:650;gap:15px;list-style:none}.rule-editor summary:after{content:"+";font-size:20px;color:#78919c;margin-left:auto}.rule-editor[open] summary:after{content:"−"}.rule-editor summary .badge{margin-left:auto}.rule-editor summary:after{margin-left:0}.rule-editor summary:focus-visible{outline:3px solid #19b4a5;outline-offset:6px}.rule-form{padding-top:20px;margin-top:17px;border-top:1px solid var(--line)}.field textarea{font:inherit;font-size:12px;line-height:1.8;resize:vertical;border:1px solid #cfdbdf;border-radius:8px;min-height:90px;padding:12px 14px;color:#244956;background:#fff;max-width:100%;width:100%}.checkbox-label{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:#55717e}.checkbox-label input{width:16px;height:16px;accent-color:var(--teal);margin-top:3px;flex-shrink:0}.rule-form .tender-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.rule-form .field input,.rule-form .field select{font-size:12px}.rule-form .field select{padding-right:25px}
.collection-options{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:520px;margin-top:22px}.collection-options .field select{min-height:42px;font-size:12px}.limitations-list{font-size:12px;color:var(--muted);line-height:1.9;padding-left:20px;margin:0}
@media(min-width:1600px){.app-shell{padding-left:250px}.sidebar{width:250px}.main-content{padding-top:40px}.stats-grid{gap:22px}.stat-card{padding:24px}.dashboard-grid{grid-template-columns:1.6fr 1fr}}
@media(max-width:1150px){.app-shell{padding-left:210px}.sidebar{width:210px;padding-left:13px;padding-right:13px}.main-content{padding:26px 25px 38px}.app-topbar{padding:0 25px}.stats-grid{gap:12px}.stat-card{padding:17px}.stat-value{font-size:27px}.dashboard-grid{grid-template-columns:1fr 1fr;gap:17px}.recommendation-grid{gap:11px}.recommendation-card{padding:17px}.recommendation-card .status-row{font-size:10px}.chart-grid{gap:17px}.settings-grid{grid-template-columns:1fr 1fr}.login-story{padding:40px 38px}.login-copy h1{font-size:36px}}
@media(max-width:900px){.dashboard-grid,.settings-grid{grid-template-columns:1fr}.dashboard-grid>.stack{display:grid;grid-template-columns:1fr 1fr;align-items:start}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-card{padding:24px}.hero-card h2{font-size:21px}.recommendation-grid{grid-template-columns:1fr}.recommendation-card{padding:22px;display:grid;grid-template-columns:1fr 1fr;column-gap:28px}.recommendation-top{grid-column:1/-1}.recommendation-amount{grid-column:1;font-size:29px;margin-bottom:17px}.probability-block{grid-column:1;margin-bottom:0;border:0}.recommendation-card .status-list{grid-column:2;grid-row:2/4}.recommendation-explanation{grid-column:1/-1}.chart-grid{grid-template-columns:1fr}.tender-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.login-layout{grid-template-columns:42% 1fr}.login-story{padding:34px 27px}.login-copy h1{font-size:30px}.login-copy{padding-top:50px}.login-copy p{font-size:12px}.engine-notes{gap:22px}.engine-note strong{font-size:22px}.login-panel{padding:60px 28px}.login-visual{margin-top:20px}.login-copy h1{letter-spacing:-1.4px}.hero-icon{width:72px;height:72px;border-radius:20px}}
@media(max-width:700px){.app-shell{padding-left:0}.sidebar{transform:translateX(-100%);transition:transform .2s;width:245px;z-index:60}.sidebar.open{transform:translateX(0)}.mobile-scrim.open{display:block;position:fixed;inset:0;background:#102b3677;z-index:50}.menu-button{display:flex}.app-topbar{height:64px;padding:0 18px;gap:12px}.breadcrumb{margin-right:auto;gap:9px}.breadcrumb .breadcrumb-root,.breadcrumb .breadcrumb-separator{display:none}.topbar-right{gap:10px}.topbar-date{display:none}.main-content{padding:24px 17px 28px}.page-heading{margin-bottom:22px;gap:14px}.page-heading h1{font-size:24px;letter-spacing:-.8px}.page-heading p{font-size:11px}.page-heading .button-row{padding-top:4px}.page-heading .button{font-size:11px;padding:9px 11px}.hero-card{padding:22px;gap:17px;margin-bottom:16px}.hero-card h2{font-size:20px;line-height:1.6}.hero-card .eyebrow{font-size:9px;margin-bottom:9px}.hero-card p{font-size:11px}.hero-icon{display:none}.stats-grid{gap:11px;margin-bottom:17px}.stat-card{padding:17px}.stat-top{font-size:11px}.stat-value{font-size:28px;margin-top:12px}.stat-foot{font-size:9px}.dashboard-grid{gap:17px}.dashboard-grid>.stack{display:flex;gap:17px}.card{padding:20px}.card-heading{gap:12px;margin-bottom:17px}.card-heading h2{font-size:15px}.empty-state{padding:31px 12px}.empty-state h3{font-size:14px}.empty-state p{font-size:11px}.table-wrap{margin:0 -20px}.data-table th,.data-table td{padding:14px 17px}.data-table{font-size:11px}.table-primary{font-size:11px}.app-footer{font-size:9px;margin-top:28px;line-height:1.8;flex-direction:column;gap:3px}.toast{left:50%;bottom:18px;font-size:11px}.section-space{margin-top:17px}.tender-meta{gap:17px}.meta-label{font-size:10px}.meta-value{font-size:12px}.tender-title{font-size:18px;margin-bottom:20px}.analysis-toolbar{flex-direction:column;align-items:stretch;gap:16px}.analysis-toolbar .field{max-width:none}.analysis-toolbar .button{width:100%}.analysis-intro{margin-top:25px;align-items:flex-start}.analysis-intro h2{font-size:17px}.analysis-intro .tiny{font-size:10px}.recommendation-card{padding:19px;column-gap:17px}.recommendation-amount{font-size:24px}.recommendation-top h3{font-size:14px}.probability-value{font-size:23px}.recommendation-card .status-row{font-size:9px}.recommendation-explanation{font-size:10px}.chart-card{padding:19px}.chart-legend{gap:12px;font-size:9px}.chart-card h3{font-size:13px}.details-grid{grid-template-columns:1fr;gap:17px}.collection-flow{grid-template-columns:repeat(2,1fr);gap:9px}.definition-grid{grid-template-columns:repeat(2,1fr)}.login-layout{display:flex;flex-direction:column;background:#fff;min-height:100dvh}.login-story{padding:26px 27px 30px;display:block}.login-story .brand-mark{width:36px;height:36px;border-radius:10px;font-size:23px}.login-story .brand-word{font-size:23px}.login-story .brand-version{font-size:9px}.login-copy{padding:27px 0 0;max-width:none}.login-copy .eyebrow{font-size:9px;margin-bottom:10px}.login-copy h1{font-size:29px;margin:0;letter-spacing:-1.3px}.login-copy p,.login-visual,.engine-notes,.story-footer{display:none}.login-panel{padding:31px 27px 32px;align-items:flex-start;flex:1}.login-form-wrap{max-width:430px}.login-form-wrap h2{font-size:23px}.login-subtitle{font-size:12px;margin-bottom:23px}.login-label{display:none}.login-note{margin-top:23px;padding-top:18px;font-size:10px}.field{margin-bottom:16px}.field label{font-size:12px}.search-form{gap:8px}.search-input{font-size:12px;padding-right:9px}.search-form .button{font-size:12px;padding:10px 14px}.search-form .button svg{display:none}.pagination{font-size:10px}.note{font-size:10px;padding:12px}.collection-toolbar{flex-direction:column;align-items:stretch}.collection-toolbar .button-row{display:grid;grid-template-columns:1fr 1fr}.mobile-tender-table thead{display:none}.mobile-tender-table,.mobile-tender-table tbody,.mobile-tender-table tr,.mobile-tender-table td{display:block;white-space:normal}.mobile-tender-table tr{position:relative;padding:16px 20px;border-bottom:1px solid var(--line)}.mobile-tender-table tr:last-child{border:0}.mobile-tender-table td{padding:3px 0;border:0}.mobile-tender-table td:first-child{padding:0 0 7px}.mobile-tender-table td[data-label]:before{content:attr(data-label) " ";font-size:10px;color:#8b9ea7;display:inline-block;width:66px}.mobile-tender-table td:last-child{position:absolute;bottom:19px;right:20px}.mobile-tender-table .table-primary{font-size:12px;max-width:none;min-width:0}.mobile-tender-table .table-sub{font-size:10px}.mobile-tender-table .button.small{font-size:10px;min-height:32px;padding:6px 10px}}
@media(max-width:700px){.dashboard-grid>.stack{align-items:stretch}.recommendation-card .status-row{font-size:10px}.chart-container svg text{font-size:11px}.chart-legend{font-size:10px}.recommendation-explanation{font-size:11px}.rule-form .tender-meta{grid-template-columns:1fr}.checkbox-label{font-size:11px}.stat-foot{font-size:10px}}
/* Authentication screens share a readable scale, independent of dense data tables. */
.login-layout {
  grid-template-columns: minmax(0, 44%) minmax(0, 56%);
  font-size: 17px;
}
.login-story {
  padding: 48px clamp(40px, 4.5vw, 86px);
  gap: 36px;
}
.login-story .brand { gap: 15px; }
.login-story .brand-mark { width: 48px; height: 48px; font-size: 29px; }
.login-story .brand-word { font-size: 31px; }
.login-story .brand-version { font-size: 12px; color: #c0d3dc; opacity: 1; }
.login-copy { max-width: 560px; padding: 16px 0 20px; }
.login-copy .eyebrow { font-size: 14px; color: #8adfd1; letter-spacing: 1.4px; }
.login-copy h1 {
  font-size: clamp(44px, 3.15vw, 60px);
  line-height: 1.35;
  letter-spacing: -1.9px;
  margin-bottom: 24px;
}
.login-copy p { max-width: 490px; font-size: 18px; line-height: 1.85; color: #c3d6de; }
.login-visual { max-width: 520px; margin: 24px 0 22px; }
.engine-notes { gap: 34px; padding-top: 23px; }
.engine-note strong { font-size: 31px; line-height: 1.4; }
.engine-note span { display: block; margin-top: 6px; font-size: 14px; color: #b8cfd9; }
.story-footer { font-size: 14px; color: #acc5d0; line-height: 1.7; }
.login-panel { padding: 56px clamp(36px, 5vw, 96px); }
.login-form-wrap { width: 100%; max-width: 540px; }
.login-form-wrap > .eyebrow { font-size: 14px; margin-bottom: 12px; letter-spacing: 1.4px; }
.login-form-wrap h2 { font-size: 42px; line-height: 1.3; margin-bottom: 14px; letter-spacing: -1.4px; }
.login-subtitle { font-size: 18px; line-height: 1.75; color: #476271; margin-bottom: 29px; }
.login-layout .field,
#password-dialog .field { gap: 9px; margin-bottom: 22px; }
.login-layout .field label,
#password-dialog .field label { font-size: 16px; line-height: 1.5; color: #244653; font-weight: 700; }
.login-layout .field input,
#password-dialog .field input {
  height: 58px;
  min-height: 58px;
  padding: 14px 17px;
  border: 1px solid #7c96a3;
  border-radius: 9px;
  font-size: 18px;
  line-height: 1.5;
  color: #173b49;
  background: #fff;
}
.login-layout .field input::placeholder,
#password-dialog .field input::placeholder { color: #5b7482; opacity: 1; }
.login-layout .field input:focus,
#password-dialog .field input:focus { border-color: #087d75; }
.login-layout .field-hint,
#password-dialog .field-hint { font-size: 16px; line-height: 1.75; color: #476271; }
.login-layout .button.full { min-height: 58px; font-size: 18px; border-radius: 9px; gap: 12px; }
.login-layout .button.full svg { width: 19px; height: 19px; }
.login-controls { margin-top: 21px; font-size: 16px; color: #476271; line-height: 1.7; }
.login-control-prompt { margin: 0 0 3px; }
.login-control-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 3px 14px; }
.login-controls .button { min-height: 44px; padding: 8px 11px; font-size: 16px; color: #056c64; }
.login-note { font-size: 16px; line-height: 1.85; color: #536f7c; padding-top: 20px; margin-top: 23px; }
.login-label { top: 28px; right: 38px; font-size: 14px; color: #536f7c; }
.login-layout .form-error,
#password-dialog .form-error { font-size: 16px; line-height: 1.75; color: #8e3025; padding: 14px 16px; }
.login-layout .form-success,
#password-dialog .form-success { font-size: 16px; line-height: 1.75; color: #235a43; padding: 14px 16px; }
#password-dialog {
  width: calc(100% - 32px);
  max-width: 560px;
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  padding: 32px;
  border-radius: 16px;
  font-size: 17px;
}
#password-dialog h2 { font-size: 36px; line-height: 1.35; letter-spacing: -1.1px; margin-bottom: 15px; word-break: keep-all; }
#password-dialog .dialog-header { gap: 12px; }
#password-dialog .section-description { font-size: 17px; color: #476271; line-height: 1.75; margin-bottom: 25px; }
#password-dialog .button { min-height: 56px; padding: 12px 20px; font-size: 17px; }
#password-dialog .icon-button { width: 44px; height: 44px; flex-shrink: 0; color: #426371; }
#password-dialog .dialog-footer { margin-top: 24px; gap: 12px; }

@media (min-width: 1700px) {
  .login-layout { grid-template-columns: minmax(0, 43%) minmax(0, 57%); }
  .login-form-wrap { max-width: 560px; }
  .login-form-wrap h2 { font-size: 44px; }
}
@media (max-width: 1100px) and (min-width: 901px) {
  .login-layout { grid-template-columns: minmax(0, 40%) minmax(0, 60%); }
  .login-story { padding: 36px 30px; }
  .login-copy h1 { font-size: 39px; letter-spacing: -1.6px; }
  .login-copy p { font-size: 17px; }
  .engine-notes { gap: 18px; flex-wrap: wrap; }
  .engine-note strong { font-size: 28px; }
  .login-panel { padding: 48px 35px; }
}
@media (max-width: 900px) {
  .login-layout { display: flex; flex-direction: column; min-height: 100dvh; }
  .login-story { display: block; padding: 24px max(24px, calc((100vw - 540px) / 2)); }
  .login-story .brand-mark { width: 42px; height: 42px; font-size: 27px; }
  .login-story .brand-word { font-size: 29px; }
  .login-story .brand-version { font-size: 11px; letter-spacing: 1.1px; }
  .login-copy { max-width: 540px; padding: 22px 0 0; }
  .login-copy .eyebrow,
  .login-copy p,
  .login-visual,
  .engine-notes,
  .story-footer { display: none; }
  .login-copy h1 { font-size: 38px; line-height: 1.35; letter-spacing: -1.35px; margin: 0; }
  .login-panel { flex: 1; align-items: flex-start; padding: 30px 24px 35px; }
  .login-form-wrap { max-width: 540px; }
  .login-form-wrap h2 { font-size: 38px; }
  .login-label { display: none; }
}
@media (max-width: 700px) {
  .login-story { padding: 22px 24px 23px; }
  .login-panel { padding: 27px 24px 30px; }
  .login-copy h1 { font-size: 36px; }
  .login-form-wrap h2 { font-size: 36px; margin-bottom: 11px; }
  .login-form-wrap > .eyebrow { font-size: 13px; margin-bottom: 10px; }
  .login-subtitle { font-size: 17px; line-height: 1.75; margin-bottom: 23px; }
  .login-layout .field,
  #password-dialog .field { margin-bottom: 20px; }
  .login-layout .field input,
  #password-dialog .field input { height: 56px; min-height: 56px; padding: 13px 15px; }
  .login-layout .button.full { min-height: 56px; }
  .login-note { margin-top: 20px; padding-top: 18px; font-size: 16px; line-height: 1.8; }
  .login-controls { margin-top: 18px; }
  #password-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px); padding: 25px 22px; }
  #password-dialog .section-description { font-size: 16px; margin-bottom: 22px; }
  #password-dialog .button { min-height: 54px; font-size: 16px; padding: 12px 17px; }
}
@media (max-width: 360px) {
  .login-story { padding: 20px 20px 21px; }
  .login-panel { padding: 25px 20px 28px; }
  .login-copy h1 { font-size: 36px; letter-spacing: -1.6px; }
  .login-story .brand-version { font-size: 10px; letter-spacing: .7px; }
  .login-layout .field input { padding-left: 12px; padding-right: 12px; }
  .login-control-actions { gap: 3px 8px; }
  #password-dialog { padding: 22px 19px; }
}
/* Collection operations use a readable status summary before detailed records. */
.collection-page { font-size: 16px; }
.collection-page .page-heading p { font-size: 15px; color: #526d79; }
.collection-page .card-heading h2 { font-size: 20px; }
.collection-page .card-heading p,
.collection-page .section-description { font-size: 14px; color: #526d79; }
.collection-page .button { min-height: 46px; font-size: 15px; }
.collection-page .note { font-size: 14px; color: #42616f; }
.collection-page .note.warn { background: #fff4df; color: #754e13; margin-top: 16px; }
.collection-page .badge { font-size: 13px; padding: 6px 9px; }
.collection-page .status-row { font-size: 14px; gap: 20px; }
.collection-page .status-label { color: #526d79; }
.collection-page .field label { font-size: 15px; }
.collection-page .collection-options { gap: 20px; max-width: 600px; }
.collection-page .collection-options .field select { min-height: 48px; font-size: 16px; }
.collection-page .empty-state h3 { font-size: 18px; }
.collection-page .empty-state p { font-size: 15px; color: #526d79; }
.collection-alert { display: flex; gap: 16px; align-items: flex-start; border: 1px solid #d5ad60; border-left: 5px solid #b5791c; border-radius: 12px; background: #fff6e6; color: #744910; padding: 22px 24px; margin-bottom: 22px; }
.collection-alert > svg { flex-shrink: 0; margin-top: 4px; }
.collection-alert h2 { margin: 0 0 7px; font-size: 22px; line-height: 1.5; color: #67410e; }
.collection-alert p { margin: 0; font-size: 16px; line-height: 1.8; }
.collection-alert.paused { border-color: #b6cdd8; border-left-color: #537987; background: #f0f7fa; color: #355d6e; }
.collection-alert.paused h2 { color: #294e60; }
.collection-runtime { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.collection-runtime h2 { font-size: 21px; margin: 0 0 4px; }
.collection-runtime p { font-size: 14px; color: #526d79; margin: 0; }
.collection-runtime > .badge { font-size: 16px; padding: 9px 13px; }
.collection-counts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin: 23px 0; }
.collection-counts > div { padding: 18px; border: 1px solid #dae5e9; border-radius: 9px; background: #f7fafb; }
.collection-counts dt { font-size: 15px; font-weight: 650; color: #3d5d6b; }
.collection-counts dd { font-size: 36px; font-weight: 750; line-height: 1.4; font-variant-numeric: tabular-nums; margin: 6px 0; color: #163e4b; white-space: nowrap; }
.collection-counts p { font-size: 13px; color: #526d79; margin: 0; line-height: 1.7; }
.collection-counts [data-status="FAILED"],
.collection-counts [data-status="UNRESOLVED"] { border-color: #e6d5b9; background: #fffbf4; }
.collection-counts [data-status="FAILED"] dd,
.collection-counts [data-status="UNRESOLVED"] dd { color: #87561b; }
.collection-timestamps { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 16px 24px; padding-top: 18px; border-top: 1px solid var(--line); }
.collection-timestamps p { margin: 0; }
.collection-timestamps p span { display: block; font-size: 13px; color: #526d79; margin-bottom: 4px; }
.collection-timestamps strong { font-size: 15px; font-weight: 650; }
.collection-timezone { font-size: 13px; color: #526d79; }
.collection-priority { list-style: none; display: flex; gap: 10px; flex-wrap: wrap; padding: 0; margin: 4px 0 15px; }
.collection-priority li { display: flex; align-items: center; gap: 8px; background: #f0f7f5; border: 1px solid #d2e7df; border-radius: 7px; padding: 10px 12px; font-size: 14px; color: #2b6357; font-weight: 650; }
.collection-priority li span { font-size: 12px; color: #486f66; }
.collection-help { margin: 14px 0; font-size: 14px; color: #526d79; line-height: 1.8; }
.collection-help:last-child { margin-bottom: 0; }
.collection-budget-total { display: flex; align-items: flex-end; gap: 18px; justify-content: space-between; }
.collection-budget-total > div > span { display: block; font-size: 14px; color: #526d79; }
.collection-budget-total strong { display: block; font-size: 40px; line-height: 1.5; color: #096a60; font-variant-numeric: tabular-nums; }
.collection-budget-total small { font-size: 17px; margin-left: 6px; color: #426b67; }
.collection-budget-total p { font-size: 14px; color: #526d79; margin: 0 0 9px; }
.collection-page .progress-track { height: 9px; }
.collection-quota.exhausted .progress-fill { background: #b37a28; }
.collection-quota.exhausted .collection-budget-total strong { color: #87561b; }
.collection-resume { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 18px; padding-top: 17px; margin-top: 14px; border-top: 1px solid var(--line); font-size: 14px; }
.collection-resume > span { color: #526d79; }
.collection-resume strong { font-size: 15px; color: #2c5361; }
.collection-credential-error { margin-top: 20px; padding: 16px; background: #fff8ef; border: 1px solid #ead4b8; border-radius: 8px; }
.collection-credential-error h3 { font-size: 14px; color: #795020; margin-bottom: 8px; }
.collection-error { white-space: normal; overflow-wrap: anywhere; line-height: 1.7; }
.collection-error strong { display: block; color: #81501d; font-size: 14px; font-weight: 650; }
.collection-error p { font-size: 13px; color: #526d79; margin: 3px 0 6px; }
.collection-error code { font-size: 12px; color: #765129; background: #f7f0e5; padding: 2px 5px; border-radius: 4px; }
.collection-table { font-size: 14px; }
.collection-table th { font-size: 13px; color: #4d6c7a; }
.collection-table td { vertical-align: top; color: #3d5d6b; }
.collection-table .table-sub { font-size: 12px; color: #526d79; margin-top: 5px; }
.collection-table .collection-error { min-width: 190px; max-width: 290px; }
.toast.warning { background: #775012; color: #fff; border: 1px solid #cba869; font-size: 15px; line-height: 1.75; }
@media (max-width: 1150px) {
  .collection-counts { gap: 10px; }
  .collection-counts > div { padding: 15px 13px; }
  .collection-timestamps { grid-template-columns: 1fr 1fr; }
  .collection-timezone { grid-column: 1/-1; }
  .collection-toolbar { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 700px) {
  .collection-page .page-heading { flex-direction: column; }
  .collection-page .page-heading p { font-size: 14px; }
  .collection-page .card-heading h2 { font-size: 20px; }
  .collection-page .collection-toolbar .button-row { width: 100%; grid-template-columns: 1fr 1fr; }
  .collection-page .collection-options { gap: 14px; }
  .collection-alert { padding: 18px 16px; gap: 12px; margin-bottom: 18px; }
  .collection-alert h2 { font-size: 20px; }
  .collection-alert p { font-size: 15px; }
  .collection-alert > svg { width: 21px; height: 21px; }
  .collection-runtime { align-items: flex-start; flex-wrap: wrap; gap: 14px; }
  .collection-counts { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .collection-counts > div { padding: 16px 13px; }
  .collection-counts dd { font-size: 34px; }
  .collection-timestamps { grid-template-columns: 1fr; gap: 14px; }
  .collection-priority { gap: 8px; }
  .collection-priority li { padding: 8px 10px; }
  .collection-budget-total { align-items: flex-start; flex-direction: column; gap: 3px; }
  .collection-page .status-row { flex-wrap: wrap; gap: 5px 15px; }
  .collection-page .status-value { margin-left: auto; }
  .collection-table,
  .collection-table tbody,
  .collection-table tr,
  .collection-table td { display: block; width: 100%; white-space: normal; }
  .collection-table thead { display: none; }
  .collection-table tr { padding: 17px 20px; border-top: 1px solid var(--line); }
  .collection-table td { display: grid; grid-template-columns: 94px minmax(0,1fr); gap: 10px; padding: 8px 0; border: 0; font-size: 14px; }
  .collection-table td:before { content: attr(data-label); font-size: 12px; color: #526d79; line-height: 1.8; }
  .collection-table .collection-error { min-width: 0; max-width: none; }
  .collection-table .collection-cell { min-width: 0; overflow-wrap: anywhere; }
  .collection-table .table-sub { font-size: 13px; }
  .toast.warning { font-size: 15px; }
}
@media (max-width: 360px) {
  .collection-page .collection-options { grid-template-columns: 1fr; gap: 0; }
  .collection-page .collection-toolbar .button-row { grid-template-columns: 1fr; }
  .collection-counts { gap: 9px; }
  .collection-counts dt { font-size: 14px; }
  .collection-counts p { font-size: 13px; }
  .collection-table td { grid-template-columns: 79px minmax(0,1fr); gap: 8px; }
}
@media (max-width: 420px) {
  .collection-counts { grid-template-columns: minmax(0,1fr); gap: 11px; }
  .collection-counts > div { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; column-gap: 12px; padding: 14px 13px; }
  .collection-counts dt { grid-column: 1; grid-row: 1; font-size: 15px; }
  .collection-counts dd { grid-column: 2; grid-row: 1; margin: 0; font-size: 30px; }
  .collection-counts p { grid-column: 1/-1; margin-top: 4px; }
  .collection-counts .large-count dd { grid-column: 1/-1; grid-row: 2; margin-top: 4px; }
  .collection-counts .large-count p { grid-row: 3; }
  .collection-counts .extra-large-count dd { font-size: 20px; letter-spacing: -0.09em; }
}
.watch-page { font-size: 16px; }
.watch-page .page-heading p { font-size: 15px; line-height: 1.8; color: #526d79; }
.watch-page .button { min-height: 45px; font-size: 14px; }
.watch-page .card-heading h2 { font-size: 21px; }
.watch-page .card-heading p { font-size: 14px; color: #526d79; }
.watch-page .badge { font-size: 13px; padding: 6px 9px; }
.watch-page .note { font-size: 14px; }
.watch-worker-warning { display: flex; align-items: flex-start; gap: 13px; padding: 20px; margin-bottom: 22px; border: 1px solid #d5ad60; border-left: 4px solid #b5791c; border-radius: 10px; background: #fff6e6; color: #744910; }
.watch-worker-warning > svg { flex-shrink: 0; margin-top: 3px; }
.watch-worker-warning strong { display: block; font-size: 18px; }
.watch-worker-warning p { margin: 7px 0 0; font-size: 15px; line-height: 1.8; }
#watch-apply-notice > .note { margin-bottom: 18px; }
.watch-page .empty-state h3 { font-size: 19px; }
.watch-page .empty-state p { font-size: 15px; }
.watch-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.watch-summary .card { display: flex; flex-direction: column; gap: 9px; }
.watch-summary .card > span { font-size: 15px; font-weight: 650; color: #426271; }
.watch-summary strong { font-size: 35px; color: #163f4c; line-height: 1.4; font-variant-numeric: tabular-nums; white-space: nowrap; }
.watch-summary .card:nth-child(3) { border-color: #e6d1b1; background: #fffaf2; }
.watch-summary .card:nth-child(3) strong { color: #87571c; }
.watch-summary small { font-size: 15px; margin-left: 7px; font-weight: 500; color: #526d79; }
.watch-summary-note { margin: 12px 0 23px; font-size: 13px; color: #526d79; }
.watch-filter-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }
.watch-chip-group { display: flex; align-items: stretch; background: white; border: 1px solid #d3e0e5; border-radius: 10px; min-width: 180px; }
.watch-chip-group.selected { border-color: #168a7d; background: #eef8f4; box-shadow: 0 0 0 1px #168a7d; }
.watch-chip { display: flex; align-items: flex-start; flex-direction: column; flex: 1; padding: 13px 15px; background: transparent; border-radius: 9px; color: #2d5362; text-align: left; }
.watch-chip strong { font-size: 16px; line-height: 1.6; }
.watch-chip span { font-size: 12px; color: #526d79; line-height: 1.7; }
.watch-chip-group.selected .watch-chip strong { color: #066d62; }
.watch-page .watch-edit-icon { font-size: 0; width: 42px; padding: 9px; border-left: 1px solid #dce7e5; border-radius: 0 9px 9px 0; background: transparent; color: #4c736b; }
.watch-page .watch-edit-icon:hover { background: #e4f1ec; }
.watch-filter-summary { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 22px; }
.watch-filter-summary h2 { font-size: 20px; margin: 0 0 7px; }
.watch-filter-summary p { font-size: 14px; color: #526d79; margin: 4px 0; overflow-wrap: anywhere; }
.watch-filter-summary .button-row { flex-shrink: 0; flex-direction: column; align-items: stretch; }
.watch-progress-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.watch-progress { border: 1px solid #c7e0d8; background: #f0f8f5; border-radius: 10px; padding: 18px; }
.watch-progress-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 7px 15px; }
.watch-progress-heading > strong { font-size: 16px; color: #255c4f; }
.watch-progress-heading > span { font-size: 13px; color: #456e62; }
.watch-progress p { margin: 4px 0 0; font-size: 13px; color: #456e62; }
.watch-poll-feedback { font-size: 14px; color: #87571c; margin: 14px 0 20px; }
.watch-list-options { display: flex; gap: 13px 23px; flex-wrap: wrap; padding: 0 0 18px; border-bottom: 1px solid var(--line); }
.watch-list-options .checkbox-label { font-size: 14px; color: #3c5c6b; }
.watch-list-options input { width: 17px; height: 17px; }
.watch-list-count { font-size: 13px; color: #526d79; margin: 18px 0 10px; }
.watch-list-count strong { color: #1e5966; }
.watch-empty-actions { justify-content: center; }
.watch-tender { display: grid; grid-template-columns: minmax(0,1fr) 160px 185px; gap: 20px; align-items: center; padding: 24px 0; border-top: 1px solid var(--line); }
.watch-tender:first-child { border-top: 0; }
.watch-tender.urgent { border-left: 3px solid #b67d2c; margin-left: -15px; padding-left: 12px; }
.watch-tender.cancelled { background: #fcf8f6; }
.watch-tender-main { min-width: 0; }
.watch-tender-labels { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 9px; }
.watch-tender-title { display: block; width: 100%; background: none; text-align: left; color: #183e4c; font-weight: 700; font-size: 19px; padding: 0; line-height: 1.6; word-break: keep-all; overflow-wrap: anywhere; }
.watch-tender-title:hover { color: #087d75; text-decoration: underline; text-underline-offset: 4px; }
.watch-tender-institution { font-size: 14px; color: #526d79; margin: 6px 0 9px; overflow-wrap: anywhere; }
.watch-match-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.watch-match-tags span { font-size: 12px; background: #eef3f5; color: #426370; border-radius: 4px; padding: 3px 7px; }
.watch-tender-amount { display: flex; flex-direction: column; gap: 6px; }
.watch-tender-amount > span { font-size: 12px; color: #526d79; }
.watch-tender-amount strong { font-size: 17px; color: #2e5260; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.watch-tender-deadline { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.watch-tender-deadline time { font-size: 14px; color: #3c5d6d; font-variant-numeric: tabular-nums; }
.watch-tender-deadline > span:last-child { color: #526d79; font-size: 12px; }
.watch-detail-title { font-size: 28px; margin: 20px 0 25px; line-height: 1.55; overflow-wrap: anywhere; }
.watch-page .meta-label { font-size: 13px; color: #526d79; }
.watch-page .meta-value { font-size: 16px; }
.watch-match-reason { padding: 19px 0; border-bottom: 1px solid var(--line); }
.watch-match-reason:first-of-type { padding-top: 0; }
.watch-match-reason:last-child { padding-bottom: 0; border-bottom: 0; }
.watch-match-reason h3 { font-size: 18px; margin: 0; }
.watch-match-reason ul { margin: 15px 0 0; padding-left: 21px; color: #3e6270; font-size: 15px; line-height: 1.9; overflow-wrap: anywhere; }
#watch-filter-dialog { width: calc(100% - 32px); max-width: 760px; max-height: calc(100dvh - 32px); overflow-y: auto; padding: 30px; font-size: 16px; }
#watch-filter-dialog h2 { font-size: 28px; line-height: 1.4; margin: 0 0 9px; }
#watch-filter-dialog .section-description { font-size: 15px; color: #526d79; margin: 0 0 25px; }
#watch-filter-dialog .dialog-header > .icon-button { flex-shrink: 0; }
#watch-filter-dialog .field label,
#watch-filter-dialog legend { font-size: 15px; color: #345665; font-weight: 650; }
#watch-filter-dialog .field input,
#watch-filter-dialog .field textarea { font: inherit; font-size: 16px; width: 100%; border: 1px solid #9eb4be; border-radius: 8px; padding: 11px 13px; color: #254d5d; background: white; min-width: 0; }
#watch-filter-dialog .field textarea { resize: vertical; line-height: 1.75; }
#watch-filter-dialog .field-hint { font-size: 13px; line-height: 1.8; color: #526d79; }
#watch-filter-dialog .checkbox-label { font-size: 15px; color: #3c5c6b; }
#watch-filter-dialog input[type="checkbox"] { width: 18px; height: 18px; }
#watch-filter-dialog .button { min-height: 44px; font-size: 14px; white-space: normal; }
#watch-filter-dialog .form-error { font-size: 15px; }
.watch-kind-fieldset { border: 0; margin: 0 0 20px; padding: 0; }
.watch-kind-fieldset legend { margin-bottom: 10px; }
.watch-kind-fieldset .field-hint { margin: 10px 0 0; }
.watch-exclude-suggestions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: -2px 0 23px; }
.watch-exclude-suggestions > span { font-size: 13px; color: #526d79; margin-right: 3px; }
.watch-advanced { padding: 17px 0; margin: 0 0 22px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.watch-advanced summary { cursor: pointer; font-size: 16px; font-weight: 700; color: #315967; }
.watch-advanced summary > span { display: block; font-size: 12px; font-weight: 400; color: #526d79; padding-left: 18px; margin-top: 4px; }
.watch-advanced > .field-hint { margin-top: 20px; }
.watch-product-search { display: flex; gap: 12px; align-items: flex-end; }
.watch-product-search .field { flex: 1; margin: 0; }
.watch-product-search > .button { flex-shrink: 0; }
.watch-product-results { max-height: 270px; overflow: auto; margin: 15px 0; }
.watch-product-results label { padding: 11px 8px; border-bottom: 1px solid var(--line); }
.watch-product-results small { display: block; font-size: 12px; color: #526d79; margin-top: 3px; }
.watch-product-results > p { font-size: 14px; color: #526d79; }
.watch-selected-products { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; }
.watch-selected-product { display: flex; align-items: center; gap: 6px; border: 1px solid #c9dfd8; background: #f0f8f5; border-radius: 7px; padding-left: 10px; font-size: 13px; color: #315e51; overflow-wrap: anywhere; }
#watch-filter-dialog .watch-selected-product .button { font-size: 0; padding: 7px; min-height: 34px; }
.watch-editor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; margin-top: 23px; }
.watch-preview-actions { margin: 24px 0 13px; }
.watch-preview { border: 1px solid #cadfd7; background: #f3f9f6; border-radius: 9px; padding: 18px; color: #2f6050; }
.watch-preview > strong { display: block; font-size: 23px; margin-bottom: 8px; }
.watch-preview p { font-size: 14px; line-height: 1.8; margin: 0; }
.watch-preview ul { padding-left: 20px; font-size: 14px; line-height: 1.8; margin: 12px 0 0; overflow-wrap: anywhere; }
.watch-delete { border-top: 1px solid var(--line); margin-top: 25px; padding-top: 16px; }
.watch-delete-confirm { border: 1px solid #e3beb0; background: #fff4ef; padding: 17px; margin-bottom: 20px; border-radius: 8px; color: #854b34; font-size: 15px; }
@media (max-width: 1150px) {
  .watch-tender { grid-template-columns: minmax(0,1fr) 165px; }
  .watch-tender-main { grid-column: 1; grid-row: 1/3; }
  .watch-tender-amount,
  .watch-tender-deadline { grid-column: 2; }
  .watch-chip-group { min-width: 170px; }
}
@media (max-width: 700px) {
  .watch-page .page-heading { flex-direction: column; }
  .watch-page .page-heading p { font-size: 14px; }
  .watch-summary { grid-template-columns: 1fr; gap: 11px; }
  .watch-summary .card { flex-direction: row; justify-content: space-between; align-items: center; padding: 17px 20px; gap: 10px; }
  .watch-summary .card > span { font-size: 14px; }
  .watch-summary strong { font-size: 29px; }
  .watch-summary-note { font-size: 13px; line-height: 1.8; }
  .watch-filter-chips { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .watch-chip-group { min-width: 0; }
  .watch-chip { padding: 12px 10px; min-width: 0; }
  .watch-chip strong { font-size: 15px; }
  .watch-chip span { font-size: 11px; white-space: normal; }
  .watch-page .watch-edit-icon { width: 32px; min-width: 32px; padding: 6px; }
  .watch-filter-summary { flex-direction: column; }
  .watch-filter-summary .button-row { flex-direction: row; }
  .watch-progress-list { grid-template-columns: 1fr; }
  .watch-tender { grid-template-columns: 1fr; gap: 15px; }
  .watch-tender-main { grid-column: auto; grid-row: auto; }
  .watch-tender-amount,
  .watch-tender-deadline { grid-column: auto; }
  .watch-tender-title { font-size: 19px; }
  .watch-tender-amount { flex-direction: row; align-items: center; gap: 14px; flex-wrap: wrap; }
  .watch-tender-deadline { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 7px 12px; }
  .watch-tender-deadline > span:last-child { width: 100%; }
  .watch-page .tender-meta { grid-template-columns: 1fr; }
  .watch-detail-title { font-size: 24px; }
  #watch-filter-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 20px); padding: 24px 20px; }
  #watch-filter-dialog h2 { font-size: 26px; }
  #watch-filter-dialog .dialog-header { gap: 10px; }
  .watch-editor-grid { grid-template-columns: 1fr; }
  .watch-product-search { flex-direction: column; align-items: stretch; }
  .watch-preview > strong { font-size: 22px; }
}
@media (max-width: 360px) {
  .watch-filter-chips { grid-template-columns: 1fr; }
  .watch-summary .card { padding: 15px; }
  .watch-page .page-heading .button-row { gap: 8px; }
  .watch-list-options { gap: 12px; }
  .watch-tender-title { font-size: 18px; }
}
.validation-page { font-size: 16px; }
.validation-page .page-heading p { font-size: 15px; color: #526d79; line-height: 1.8; }
.validation-page .card-heading h2 { font-size: 21px; }
.validation-page .card-heading p { font-size: 14px; color: #526d79; line-height: 1.8; }
.validation-page .button { min-height: 46px; font-size: 14px; }
.validation-page .note { font-size: 14px; color: #42616f; line-height: 1.8; }
.validation-page .note.warning { color: #795016; }
.validation-page .badge { font-size: 13px; padding: 6px 9px; }
.validation-page .field label { font-size: 15px; }
.validation-page .field select,
.validation-page .field textarea { font: inherit; font-size: 16px; line-height: 1.7; border: 1px solid #9eb4be; border-radius: 8px; background: white; color: #254d5d; padding: 11px 13px; width: 100%; min-width: 0; }
.validation-page .field textarea { resize: vertical; }
.validation-page .field select { min-height: 48px; }
.validation-help { font-size: 14px; color: #526d79; line-height: 1.85; margin-bottom: 17px; }
.validation-page .button-row > .validation-help { margin: 0; }
.validation-start-fields { display: grid; grid-template-columns: minmax(170px,.6fr) minmax(0,1.4fr); gap: 22px; }
.validation-start-fields .field { margin-bottom: 12px; }
.validation-run-selector .field { margin: 0; }
.validation-run-selector select { text-overflow: ellipsis; }
.validation-progress-heading { display: flex; justify-content: space-between; align-items: center; gap: 17px; }
.validation-progress-heading h2 { font-size: 21px; margin: 0 0 6px; }
.validation-progress-heading p { font-size: 16px; color: #456775; margin: 0 0 14px; }
.validation-progress .progress-track { height: 9px; margin: 14px 0 9px; }
.validation-progress-meta { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 14px; color: #526d79; margin: 10px 0 18px; }
.validation-progress > .button-row { margin-top: 19px; }
.validation-poll-error { font-size: 14px; color: #87571c; }
.validation-score.hero-card { align-items: center; gap: 26px; margin-bottom: 20px; padding: 28px; background: linear-gradient(110deg,#e8f4ef,#f7fbf9); }
.validation-score .eyebrow { font-size: 12px; color: #266854; margin-bottom: 11px; }
.validation-score h2 { font-size: 26px; margin: 0 0 13px; }
.validation-score p { font-size: 15px; color: #40685b; margin: 7px 0 0; }
.validation-score .validation-confidence { font-size: 14px; }
.validation-primary-rate { font-size: 48px; line-height: 1.3; font-weight: 750; color: #096e60; white-space: nowrap; letter-spacing: -1px; }
.validation-metric-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.validation-metric { display: flex; flex-direction: column; gap: 8px; }
.validation-metric > span { font-size: 14px; color: #426271; font-weight: 650; }
.validation-metric > strong { font-size: 30px; line-height: 1.4; color: #244e5c; font-variant-numeric: tabular-nums; white-space: nowrap; }
.validation-metric > p { font-size: 13px; color: #526d79; line-height: 1.8; margin: 0; }
.validation-assessment { display: flex; gap: 9px; flex-wrap: wrap; align-items: center; margin: 21px 0 17px; }
.validation-assessment p { width: 100%; font-size: 14px; color: #526d79; line-height: 1.8; margin: 3px 0 0; }
.validation-page .empty-state h3 { font-size: 19px; }
.validation-page .empty-state p { font-size: 15px; color: #526d79; }
.validation-page .limitations-list { font-size: 14px; color: #526d79; }
.validation-page .collection-table th { font-size: 13px; }
.validation-page .collection-table td { font-size: 14px; }
.validation-page .collection-cell { max-width: 320px; overflow-wrap: anywhere; white-space: normal; }
.validation-page .collection-cell .table-sub { font-size: 12px; }
.validation-page .collection-table td:first-child { min-width: 135px; }
.validation-page .collection-table td { min-width: 110px; }
.validation-compare-controls { display: flex; gap: 16px; align-items: flex-end; margin-bottom: 20px; }
.validation-compare-controls > .field { flex: 1; margin: 0; }
.validation-compare-controls > .button { flex-shrink: 0; }
.validation-comparison-scope { border: 1px solid #c8ded5; border-radius: 8px; padding: 18px; background: #f0f8f4; margin-bottom: 20px; }
.validation-comparison-scope strong { font-size: 20px; color: #2d6754; }
.validation-comparison-scope p { font-size: 14px; color: #4e7064; margin: 7px 0 0; line-height: 1.8; }
.validation-compare-output > .note { margin-top: 20px; }
.validation-evidence summary { cursor: pointer; font-size: 18px; color: #355d6b; font-weight: 650; }
.validation-evidence .status-list { margin-top: 22px; }
.validation-evidence .status-row { font-size: 14px; }
.validation-evidence .status-label { flex-shrink: 0; color: #526d79; }
.validation-evidence .status-value { overflow-wrap: anywhere; min-width: 0; }
.validation-evidence .validation-help { margin-top: 18px; margin-bottom: 0; }
@media (max-width: 1100px) {
  .validation-start-fields { grid-template-columns: 1fr; gap: 0; }
  .validation-metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .validation-score.hero-card { flex-direction: column; align-items: flex-start; gap: 18px; }
  .validation-compare-controls { flex-direction: column; align-items: stretch; }
}
@media (max-width: 700px) {
  .validation-page .page-heading { flex-direction: column; }
  .validation-page .page-heading p { font-size: 14px; }
  .validation-page .card-heading h2 { font-size: 20px; }
  .validation-progress-heading { flex-direction: column; align-items: flex-start; gap: 4px; }
  .validation-progress-heading > .badge { margin-bottom: 12px; }
  .validation-progress > .button-row { flex-direction: column; align-items: stretch; }
  .validation-progress > .button-row .button { white-space: normal; }
  .validation-score.hero-card { padding: 22px; }
  .validation-score h2 { font-size: 24px; }
  .validation-primary-rate { font-size: 43px; }
  .validation-metric-grid { grid-template-columns: 1fr; gap: 12px; }
  .validation-metric { padding: 18px 20px; }
  .validation-metric > strong { font-size: 30px; }
  .validation-page .collection-table td { min-width: 0; grid-template-columns: 95px minmax(0,1fr); }
  .validation-page .collection-table td:first-child { min-width: 0; }
  .validation-page .collection-table .collection-cell { max-width: none; }
  .validation-evidence .status-row { flex-direction: column; gap: 4px; }
  .validation-evidence .status-value { text-align: left; }
}
@media (max-width: 360px) {
  .validation-page .collection-table td { grid-template-columns: 79px minmax(0,1fr); }
  .validation-primary-rate { font-size: 40px; }
  .validation-score h2 { font-size: 23px; }
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.spinner{border-top-color:var(--teal);border-right-color:var(--teal)}}

/* Runtime metadata is independent from authentication and stays readable on small screens. */
.version-widget { min-width: 0; color: #42616f; font-size: 14px; line-height: 1.7; }
.version-details { min-width: 0; }
.version-details > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 14px; list-style: none; border-radius: 7px; padding: 8px 0; }
.version-details > summary::-webkit-details-marker { display: none; }
.version-details > summary:focus-visible { outline: 3px solid #19b4a5; outline-offset: 4px; }
.version-summary-values { min-width: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.version-summary-values > span { display: inline-block; }
.version-separator { padding: 0 .35em; }
.version-toggle { flex-shrink: 0; font-size: 13px; color: #126f65; white-space: nowrap; }
.version-toggle::after { content: " ▾"; }
.version-details[open] .version-toggle::after { content: " ▴"; }
.version-detail-body { background: #f2f7f8; border: 1px solid #d4e1e5; border-radius: 9px; padding: 16px; margin: 6px 0 12px; }
.version-fields { margin: 0 0 16px; }
.version-fields > div { display: grid; grid-template-columns: minmax(140px,.4fr) minmax(0,1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid #d8e3e7; }
.version-fields > div:first-child { padding-top: 0; }
.version-fields dt { font-weight: 650; color: #355461; }
.version-key { display: block; font-size: 12px; color: #526d79; font-weight: 400; }
.version-fields dd { min-width: 0; margin: 0; color: #355461; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.version-status { font-size: 14px; line-height: 1.8; margin: 5px 0 0; color: #526d79; }
.version-status.warning { color: #83550f; }
.login-form-wrap > .version-widget { margin-top: 24px; padding-top: 13px; border-top: 1px solid #dce5e8; }
.app-shell > .app-footer { max-width: 1680px; margin: 0 auto; padding: 0 38px 25px; display: block; border-top: 0; font-size: 14px; color: #526d79; }
.app-footer > .version-widget { border-top: 1px solid #dce5e8; padding-top: 12px; }
.app-footer > p { font-size: 13px; line-height: 1.8; margin: 8px 0 0; color: #526d79; }
.topbar-version { color: #42616f; font-size: 12px; line-height: 1.6; white-space: nowrap; }
@media (max-width: 1150px) {
  .app-shell > .app-footer { padding: 0 25px 25px; }
}
@media (max-width: 700px) {
  .app-shell > .app-footer { padding: 0 17px 24px; }
  .version-details > summary { flex-direction: column; align-items: flex-start; gap: 2px; }
  .version-toggle { min-height: 26px; }
  .version-fields > div { grid-template-columns: 1fr; gap: 4px; }
  .version-detail-body { padding: 15px; }
  .version-summary-values { line-height: 1.9; }
  .version-fields dd { font-size: 14px; }
}

.rule-summary{padding-top:20px;margin-top:17px;border-top:1px solid var(--line)}.rule-summary .rule-basis{overflow-wrap:anywhere}.rule-summary .rule-values{margin-bottom:16px}.rule-summary>.tiny{margin-bottom:12px}

.analysis-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}
.analysis-toolbar>.checkbox-label{grid-column:1/-1;min-width:0;width:100%}
.analysis-toolbar>.checkbox-label span{min-width:0;line-height:1.7}
.analysis-toolbar input[type=checkbox]{min-height:16px;width:16px;height:16px}
.analysis-toolbar .field{min-width:0}
.analysis-toolbar .field input{min-width:0;width:100%;max-width:100%}
.analysis-toolbar>.button{justify-self:end}
.history-audit{border-top:1px solid var(--line);padding-top:20px}
.history-audit h3{font-size:15px;margin:0 0 14px}
.history-audit h4{font-size:13px;margin:20px 0 10px}
.history-audit ul{padding-left:20px;font-size:12px;line-height:1.9;color:#55717e}
.history-audit-table{min-width:540px}
.history-audit-table td{white-space:normal;overflow-wrap:anywhere;max-width:300px}
@media(max-width:1000px){.analysis-toolbar{grid-template-columns:minmax(0,1fr)}.analysis-toolbar .field{max-width:100%}.analysis-toolbar>.button{justify-self:start}}
@media(max-width:700px){.analysis-toolbar>.button{width:100%}}
