
:root{--ink:#183a33;--dark:#12493f;--pine:#116653;--mut:#536e61;--line:#d9e4dc;--paper:#fff;--fog:#f2f5f0;--soft:#e9f2e9;--lime:#d7eeab;--gold:#84551b;--goldbg:#faf0db;--focus:#b57b20;--blue:#305582;--red:#934338;--row:61px;--pagesize:4}*{box-sizing:border-box}body{margin:0;background:var(--fog);color:var(--ink);font:14px/1.5 system-ui,-apple-system,"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}header,footer{background:white}header{border-bottom:1px solid var(--line)}.frame{width:min(1170px,calc(100% - 64px));margin:auto}.top,.brand,.flex,.right,.actions,.head,.bar,.tools,.seg,.slot,.rowmain,.labels,.rowtail,.paging,.selectfoot,.line,.statusbar,.modalhead,.modalfoot,.keyitem,.tog{display:flex;align-items:center;gap:9px}.top{min-height:57px;justify-content:space-between}.brand{font-weight:800;font-size:17px;letter-spacing:.4px}.brand small{font-size:12px;color:var(--mut);font-weight:550;border-left:1px solid var(--line);padding-left:12px}.brandmark{height:30px;width:30px;background:var(--dark);color:#fff;display:grid;place-items:center;border-radius:9px}.icon{width:18px;height:18px;display:inline-block;vertical-align:middle;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.micro,.help,.caption{color:var(--mut);font-size:12px}.right select,select.field,.sel{font-size:13px;background:#fff;border:1px solid #c8d8cd;border-radius:8px;padding:7px 8px;min-height:33px}.demo,.tag,.tiny,.scope{display:inline-flex;align-items:center;border-radius:5px;padding:2px 7px;font-size:11px;line-height:1.6;font-weight:650;white-space:nowrap}.demo{background:#ecf3e8;color:#3d6349}.mast{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 14px}.eyebrow{font-size:11px;letter-spacing:1px;color:var(--pine);font-weight:750}.mast h1{font-size:29px;line-height:1.25;letter-spacing:-1px;margin-top:3px}.action{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:white;border:1px solid #c7d6cc;border-radius:8px;padding:7px 12px;font-size:13px;min-height:35px;font-weight:600}.action:hover:not(:disabled){border-color:#779a85;background:#f3f7f2}.action.primary{color:white;background:var(--pine);border-color:var(--pine)}.action.primary:hover{background:var(--dark)}.action.flat{background:transparent;border-color:transparent;color:var(--pine)}.action.flat:hover{background:var(--soft)}.action.tinted{background:var(--soft);color:var(--pine);border-color:#c8dccd}.action.small{padding:3px 8px;min-height:28px;font-size:12px}.action .icon{width:16px;height:16px}.shortcut{font:10px/1.3 system-ui;border:1px solid currentColor;opacity:.65;border-radius:3px;padding:0 3px}.progresscard{background:var(--dark);color:white;border-radius:15px;display:grid;grid-template-columns:minmax(180px, .75fr) minmax(250px,1.6fr) auto;gap:32px;align-items:center;padding:19px 23px}.progresscard .label{color:#e4eee3;font-size:12px}.progresscard .numeral{font-size:32px;line-height:1.2;font-weight:750;letter-spacing:-1.5px;font-variant-numeric:tabular-nums}.progresscard .numeral small{font-size:17px;color:#b9cec0;letter-spacing:0;font-weight:530}.progresscard .head{justify-content:space-between;font-size:12px;color:#d9e7da}.progresscard .head b{color:#e4f3cd;font-size:14px}.meter{height:8px;border-radius:8px;background:#3c685b;margin:7px 0}.meter i{display:block;background:var(--lime);height:100%;border-radius:8px;transition:width .3s}.progwhy{color:#ccddce;font-size:12px}.progresscard button{background:#285b4e;color:#fff;border:1px solid #4d7767;white-space:nowrap}.rechead{display:flex;justify-content:space-between;align-items:end;margin:18px 0 9px}.head h2,.rechead h2{font-size:17px;letter-spacing:-.35px}.sectionnum{color:#58806c;font-size:11px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:1px;margin-right:7px}.recs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.rec{position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-width:0}.rec .head,.rec .bar{justify-content:space-between}.person{font-size:16px;font-weight:730}.rec .reason{margin:6px 0 7px;font-size:13px}.tag{background:var(--soft);color:#36614c}.tag.over{background:#f8e9df;color:#8f462e}.tag.due{background:var(--goldbg);color:var(--gold)}.tag.new{background:#e8eff5;color:var(--blue)}.rec .caption{font-size:11px}.rec button{color:var(--pine);font-weight:650;font-size:12px}.box{margin-top:16px;background:white;border:1px solid var(--line);border-radius:15px;overflow:hidden}.listhead{padding:14px 18px 9px;justify-content:space-between;gap:14px}.tools{padding:0 18px 11px;flex-wrap:wrap}.search{display:flex;align-items:center;gap:7px;flex:1;min-width:200px;background:#f5f7f4;border:1px solid #d5e0d7;border-radius:8px;padding:0 9px}.search input{height:35px;background:transparent;border:none;outline:none;min-width:0;width:100%;font-size:13px}.search:focus-within{outline:2px solid #91b89b}.fgroup{display:flex;align-items:center;gap:5px}.sel{max-width:180px}.listinfo{padding:6px 18px;background:#f3f7f2;border-block:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;color:var(--mut)}.browser{height:calc(var(--row) * var(--pagesize));overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#b3c9b8 #f1f5f0;scrollbar-width:thin;position:relative}.browser:focus-visible{outline-offset:-3px}.dataRow{display:grid;grid-template-columns:minmax(186px,1.3fr) minmax(130px,1fr) minmax(128px,.8fr) minmax(120px,.8fr) auto;align-items:center;gap:12px;height:var(--row);padding:0 18px;border-bottom:1px solid #e9eee9;cursor:pointer}.dataRow:hover,.dataRow:focus-visible{background:#f6faf4}.dataRow.checked{background:#f0f7e8}.dataRow.disabled{cursor:default;background:#f8f8f5}.dataRow .sub,.sub{font-size:11.5px;color:var(--mut);margin-top:2px}.rowmain{min-width:0}.av{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:750;background:#deebdf;color:#3f6351;flex-shrink:0}.a1{background:#e3ebf4;color:#49647f}.a2{background:#f5e9db;color:#89613c}.a3{background:#ebe6f0;color:#755f80}.name{font-weight:690;font-size:14px}.name,.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rowtail{justify-content:flex-end;gap:6px}.arrow{font-size:19px;color:#799583}.check{height:21px;width:21px;display:inline-grid;place-items:center;border:1.5px solid #a8bbac;border-radius:6px;color:transparent;background:white;font-size:15px;font-weight:700;flex-shrink:0}.checked .check{border-color:var(--pine);background:var(--pine);color:white}.disabled .check{background:#e5ebe4;color:#819b85}.paging{justify-content:space-between;padding:8px 18px;min-height:45px}.paging .flex button{border:1px solid #d5e0d6;border-radius:6px;font-size:12px;padding:3px 8px}.empty{padding:26px 15px;text-align:center;color:var(--mut)}.empty.wide{grid-column:1/-1}.selecthead,.selectfoot{background:#eff6e9;padding:10px 18px;border-top:1px solid #d1e1c9}.selecthead{display:flex;align-items:center;justify-content:space-between;gap:12px}.selectfoot{justify-content:space-between;flex-wrap:wrap}.selectfoot strong{color:var(--pine)}.zero{color:#788b7c}.sticker{border-radius:5px;background:#f0f4ee;color:#52685a;padding:2px 6px;font-size:11px}.foot{margin:13px auto 20px;display:flex;justify-content:space-between;font-size:11.5px;color:#687e6f}.modal{position:fixed;inset:0;background:#153c326b;display:flex;align-items:center;justify-content:center;padding:18px;z-index:20}.dialog{width:min(540px,100%);max-height:calc(100dvh - 36px);background:white;border-radius:16px;display:flex;flex-direction:column;box-shadow:0 18px 70px #16392e42;overflow:hidden}.modalhead,.modalfoot{flex-shrink:0;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--line)}.modalhead h2{font-size:19px}.modalhead .x{width:32px;height:32px;display:grid;place-items:center;font-size:22px;border-radius:8px;background:var(--fog)}.modalfoot{justify-content:flex-end;border:0;border-top:1px solid var(--line);padding:10px 18px}.modalbody{padding:16px 18px;overflow:auto}.modalbody h3{font-size:14px;margin:11px 0 7px}.modalbody h3:first-child{margin-top:0}.modalbody .hint,.notice{background:var(--soft);padding:9px 11px;border-radius:7px;font-size:12px;color:#345b43}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.widefield{grid-column:1/-1}label.form{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:650}.form input,.form select,.form textarea,.textin{width:100%;color:var(--ink);border:1px solid #c7d4ca;background:white;border-radius:7px;padding:7px 9px;font-weight:450;min-height:36px}.form textarea{resize:vertical;min-height:64px}.divider{border-top:1px solid var(--line);margin:12px 0}.record{padding:9px 0;border-bottom:1px solid var(--line)}.record:last-child{border:0}.record .line,.keyitem{justify-content:space-between}.keyitem{padding:6px 0}.keyitem .flex{gap:4px}.flexwrap{display:flex;gap:6px;flex-wrap:wrap}.tableline{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin:12px 0}.tile{background:#f2f5ef;border-radius:9px;padding:9px}.tile b{font-size:16px;display:block}.seg{background:#eef3ed;border-radius:8px;padding:3px;gap:2px}.seg button{border-radius:6px;font-size:12px;padding:5px 8px}.seg button.on{background:white;color:var(--pine);font-weight:700;box-shadow:0 1px 2px #183d3422}.checkboxes{display:flex;flex-wrap:wrap;gap:8px}.checkboxes label{font-size:12px;border:1px solid var(--line);padding:6px 8px;border-radius:7px;display:flex;gap:4px;align-items:center}.checkboxes input{accent-color:var(--pine)}.err{color:var(--red);font-size:12px;margin-top:8px}.toast{position:fixed;z-index:40;bottom:20px;left:50%;transform:translateX(-50%);padding:10px 16px;color:white;background:#193e33;border-radius:10px;max-width:min(550px,90%);text-align:center;box-shadow:0 4px 18px #1436292f;font-size:13px}.link{color:var(--pine);font-weight:650;text-decoration:underline;text-underline-offset:2px}.recommendTitle{display:flex;gap:9px;align-items:center}.mobileonly{display:none}.dot{width:6px;height:6px;border-radius:99px;background:#8ebc66;display:inline-block}kbd{font-size:10px}
@media(max-width:850px){.frame{width:calc(100% - 32px)}.dataRow{grid-template-columns:1.5fr 1.1fr .9fr auto}.contactcol{display:none}.progresscard{gap:18px}.recs{gap:6px}.rec{padding:11px}.rec .bar .caption{max-width:70%}.listhead,.tools,.dataRow{padding-left:13px;padding-right:13px}}
@media(max-width:650px){:root{--row:67px}.frame{width:calc(100% - 24px)}.top{min-height:49px;gap:5px}.brand{font-size:15px;gap:6px}.brand small{display:none}.right{gap:5px}.right select{font-size:12px;max-width:143px;min-height:30px;padding:4px}.mast{margin:13px 0 10px;display:block}.mast h1{font-size:25px}.mast .actions{margin-top:9px;gap:6px}.actions .action{flex:1;padding:6px;min-height:33px}.shortcut,.deskonly{display:none!important}.mobileonly{display:inline}.progresscard{grid-template-columns:90px minmax(0,1fr);gap:7px 13px;padding:13px;border-radius:12px}.progresscard .numeral{font-size:27px}.progresscard>.action{grid-column:2;justify-self:end;align-self:center;min-height:24px;padding:1px 7px;font-size:11px}.progwhy{font-size:11px}.rechead{margin:14px 0 7px;align-items:center}.rechead .help{display:none}.recs{display:flex;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;gap:7px}.rec{min-width:78%;scroll-snap-align:start}.rec .bar .caption{max-width:none}.box{margin-top:12px}.listhead{padding:11px 10px 9px;align-items:flex-start}.listhead .action{font-size:12px;padding:5px 8px;min-height:30px}.listhead .flex{gap:4px}.head h2,.rechead h2{font-size:16px}.tools{padding:0 10px 9px;gap:6px}.search{flex:1 1 100%}.sel{font-size:12px;padding:5px;max-width:135px}.tools .action{min-height:29px;padding:4px 6px;font-size:11px}.dataRow{grid-template-columns:minmax(120px,1.5fr) minmax(84px,1fr) auto;gap:5px;padding:0 10px}.rowmain{gap:6px}.av{width:29px;height:29px;border-radius:8px}.name{font-size:13px}.dataRow .sub{font-size:10px}.rowtail .action{display:none}.rowtail .arrow{padding:4px}.groupcol{display:none}.listinfo,.paging,.selecthead,.selectfoot{padding:7px 10px}.selecthead{display:block}.selecthead .flex{margin-top:5px;flex-wrap:wrap}.paging .help{font-size:10px}.foot{display:block}.grid2{gap:8px}.modal{padding:8px}.dialog{max-height:calc(100dvh - 16px)}.modalhead,.modalfoot,.modalbody{padding:12px}.demo{font-size:10px}.right .micro{display:none}.tableline{gap:4px}.tile{padding:7px}.tile b{font-size:14px}.modalfoot{flex-wrap:wrap}.modalbody .seg{flex-wrap:wrap}.sectionnum{margin-right:4px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* API states and empty portraits; original prototype layout remains the baseline. */
.av svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.6}.ymname{display:inline-flex;align-items:center;gap:8px}.linkaction{text-decoration:none}.busy-message{margin:0 0 12px}.err:empty{display:none}.notice a{color:var(--pine)}.rec .person{color:var(--ink)}.seg{flex-wrap:wrap}.detail-order-link{display:block;margin:8px 0;color:var(--pine);font-weight:650}.portrait-note{display:flex;gap:10px;align-items:center;padding:12px 0}.input-note{font-size:12px;color:var(--mut);margin-top:5px}.progresscard .no-plan{font-size:24px;letter-spacing:0}.readtag{font-size:11px;color:var(--mut)}.notice.warning{background:var(--goldbg);color:var(--gold)}.history-value{white-space:pre-wrap;overflow-wrap:anywhere}.field-error{color:var(--red)}.pendingbar{position:sticky;bottom:0;background:var(--goldbg);border:1px solid #e0c99d;border-radius:10px;padding:12px;margin:12px 0;z-index:5}.record h3{margin:0 0 8px}.tools .store-filter{max-width:150px}@media(max-width:600px){.right{flex-wrap:wrap;justify-content:flex-end}.right #actorName{max-width:160px;text-align:right}.foot{gap:8px;flex-wrap:wrap}.seg button{white-space:nowrap}.pendingbar .flex{flex-wrap:wrap}}

.customer-name-button{padding:0;color:var(--ink)}.customer-flag{font-size:12px}.tile b.entitlement-tile{font-size:13px}

/* Local RC3 compatibility: stable customer detail shell and explicit copy controls. */
.modal[data-mode="detail"] .dialog{height:min(720px,calc(100dvh - 36px))}
.modal[data-mode="detail"] .modalbody{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;padding-bottom:0}
.modal[data-mode="detail"] .modalbody>.seg{flex:0 0 auto;margin-bottom:12px}
.modal[data-mode="detail"] .detail-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-bottom:16px}
.copy-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.copy-heading .action{flex-shrink:0}
.copy-actions{margin:8px 0 4px}
.copy-fallback{margin-top:10px}
.copy-fallback textarea{min-height:110px;max-height:220px;white-space:pre-wrap}
@media(max-width:650px){.modal[data-mode="detail"] .dialog{height:min(720px,calc(100dvh - 16px))}.modal[data-mode="detail"] .detail-content{padding-bottom:12px}}
