/* Functional console sizing: retain the current visual language. */
.sidebar-brand .brand-mark.small{background:transparent;overflow:visible;width:40px;height:44px}
.sidebar{min-height:0;overflow:hidden;padding-top:18px;padding-bottom:14px}
.sidebar-brand{margin-bottom:14px;flex-shrink:0}
.navigation{min-height:0;gap:2px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}
.navigation .nav-section{margin:10px 10px 4px;padding:0;font-size:11px;line-height:18px;flex-shrink:0}
.navigation .nav-item{height:38px;min-height:38px;border-radius:9px;font-size:14px;gap:12px;padding:0 12px}
.sidebar-footer{margin-top:12px;padding-top:10px;flex-shrink:0}
.modal{overscroll-behavior:contain}
.modal .modal-actions{position:sticky;bottom:-1px;z-index:3;background:#fff;padding:12px 0 0;margin-top:16px;border-top:1px solid #e1ece5;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.modal .registration-delivery-actions{align-items:stretch}
.modal .registration-delivery-actions > :is(button,a){box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:44px;min-height:44px;line-height:1.2;margin:0;padding:0 14px;text-decoration:none;white-space:nowrap}
@media(min-width:1100px) and (max-width:1439px){.console{grid-template-columns:218px minmax(0,1fr);gap:22px}.sidebar{min-height:0;padding:18px 12px 14px}.sidebar-brand{justify-content:flex-start;margin:0 8px 14px}.sidebar-brand>span:last-child,.nav-item>span:not(.nav-icon),.sidebar-footer{display:block}.navigation .nav-item{justify-content:flex-start}}
@media(max-height:820px) and (min-width:768px){.sidebar-footer{display:none}.navigation .nav-section{margin-top:7px}.navigation .nav-item{height:34px;min-height:34px}.sidebar-brand{margin-bottom:10px}}
.form>label{display:grid;gap:8px;font-size:14px;color:#486b60}.form>label:has(input[type=checkbox]){display:flex;gap:8px;align-items:center}.form input:not([type=checkbox]):not([type=radio]),.form select{width:100%;min-width:0;min-height:42px;border:1px solid #d7e5de;border-radius:9px;background:white;color:#12382d;padding:9px 12px;font:inherit}.form input[type=checkbox],.form input[type=radio]{width:16px;height:16px;min-height:0;accent-color:#078774}.section-note{font-size:13px;line-height:1.7;color:#5c7b6c;margin:12px 0 18px}.toolbar{padding:12px;border-radius:14px;background:#ffffff8c}
.feedback-bell{position:relative;display:flex;align-items:center;justify-content:center}.feedback-bell span{position:absolute;right:5px;top:4px;width:6px;height:6px;background:#dc4659;border-radius:50%}.topbar-actions{gap:10px}
.lake-chart-scroll{overflow-x:auto;max-width:100%}
@media(max-width:767px){.lake-chart-scroll .lake-bars{min-width:640px;width:640px;height:222px;margin:0}.lake-chart-scroll .lake-bars text{font-size:13px}.lake-chart-scroll:after{content:"左右滑动查看完整 7 日";display:block;color:#6b887a;font-size:11px;text-align:center}.lake-charts>.lake-card:has(.lake-chart-scroll){height:330px}}
.console{padding-bottom:18px}
.lake-heading h2{font-size:38px}
.nav-item{font-size:16px}
.lake-kpi p{left:96px;bottom:18px;white-space:normal;max-height:36px}
.lake-kpi:nth-child(2){background:linear-gradient(110deg,#f5faff,#fff)}
.lake-kpi:nth-child(2) .kpi-icon{background:#e5effb;color:#286eaf}
.lake-kpi .lake-kpi-link{position:absolute;right:16px;bottom:10px;z-index:1}
.lake-kpi:has(.lake-kpi-link) p{right:112px}
.lake-kpi:nth-child(3){background:linear-gradient(110deg,#fffaf4,#fff)}
.lake-kpi:nth-child(3) .kpi-icon{background:#fff0dd;color:#ad5e11}
.lake-kpi:nth-child(4) .kpi-icon{background:#e0f4ee;color:#087b67}
.lake-donut{grid-template-columns:50% 50%}
.lake-legend{padding-left:6px}
.lake-legend>div{position:relative}
.lake-legend small{position:absolute;left:154px;top:29px;white-space:nowrap}
.lake-legend strong{font-size:24px}
.lake-resource strong{font-size:28px}
.business-toolbar{padding:18px;background:#ffffffc4;border-radius:16px;margin-bottom:18px}
.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end}
.filter-grid label{display:grid;gap:7px;color:#496a60;font-size:13px}
.filter-grid input,.filter-grid select{width:100%;min-width:0}
.filter-grid input,.filter-grid select,.filter-grid button{min-height:42px;border:1px solid #d7e5de;border-radius:9px;padding:9px 12px;font:inherit}
.filter-grid input,.filter-grid select{background:#fff;color:#12382d}
.modal:has([id*="license"]) label{display:grid;gap:7px;margin:12px 0;color:#496a60;font-size:14px}
.modal:has([id*="license"]) input:not([type="checkbox"]),.modal:has([id*="license"]) select,.modal:has([id*="license"]) textarea{box-sizing:border-box;width:100%;min-width:0;min-height:42px;padding:9px 12px;border:1px solid #d7e5de;border-radius:9px;font:inherit;color:#12382d;background:#fff}
.modal:has([id*="license"]) textarea{min-height:80px;resize:vertical}
.modal:has([id*="license"]) .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.drawer:has([data-local-license-id]),.drawer:has(#issue-local-license){width:min(880px,calc(100vw - 24px));max-width:880px}
.drawer .drawer-head{min-width:0}.drawer .drawer-head>div{min-width:0}.drawer .mono,.license-identifier{overflow-wrap:anywhere;word-break:break-all;white-space:normal}
.drawer .drawer-actions{display:flex;flex-wrap:wrap;gap:8px}.drawer .detail-grid{min-width:0}
.modal:has([id*="license"]) label:has(input[type="checkbox"]){display:flex;align-items:center;gap:9px}
.modal:has([id*="license"]) input[type="checkbox"]{width:18px;height:18px;min-height:18px;padding:0;flex:0 0 18px;accent-color:#078774}
.modal .checkbox-row{display:flex;align-items:center;gap:9px;align-self:end;min-height:42px}.modal .checkbox-row input[type="checkbox"]{width:18px;height:18px;min-height:18px;padding:0;flex:0 0 18px;accent-color:#078774}
.modal:has([id*="license"]) .modal-actions{display:flex;flex-wrap:wrap;gap:10px}
.modal:has([id*="license"]) .modal-actions button{flex:0 0 auto;white-space:nowrap;min-height:40px}
.drawer:has(.license-identifier){width:min(880px,calc(100vw - 24px));max-width:880px}
.drawer .drawer-body{min-width:0;grid-template-columns:minmax(0,1fr)}
.drawer .drawer-body>*{min-width:0;max-width:100%}
.drawer .table-wrap{overflow-x:auto;width:100%}
.drawer .kv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.drawer .kv-item b{overflow-wrap:anywhere}
.data-table:has([data-local-license-customer]){min-width:780px}
.dialog-notice{position:sticky;top:0;z-index:2;flex-shrink:0;border:1px solid #a9d9c7;border-left:4px solid #07856f;border-radius:10px;background:#effaf5;color:#145b49;padding:12px 14px;margin:0 0 16px;font-size:14px;line-height:1.65;overflow-wrap:anywhere}
.dialog-notice.error{background:#fff1f2;border-color:#f1bcc3;border-left-color:#bc2943;color:#8c1730}
.drawer>.dialog-notice{margin:16px 16px 0}
.data-table [data-local-license-customer],.data-table [data-customer-id]{white-space:nowrap;min-width:76px}
.metric-strip,.metric-grid{display:flex;flex-wrap:wrap;gap:14px;margin:16px 0}
.metric-card{background:#ffffffdf;padding:18px 24px;border-radius:15px;flex:1;min-width:160px;display:grid;gap:9px;color:#4a6b60}
.metric-card strong{font-size:26px;color:#123b30}
.detail-card-grid{display:grid;gap:14px}.detail-card,.service-line,.plan-line{padding:16px;background:#f6faf7;border:1px solid #e1ece5;border-radius:12px;margin-bottom:10px}
.detail-card h4{margin:0 0 12px}.detail-card p,.service-line p,.plan-line p{line-height:1.7}.segmented-tabs{display:flex;gap:8px;margin-bottom:16px}.segmented-tabs button{background:#fff;border:1px solid #dbe9e0;padding:10px 18px;color:#326252;border-radius:10px}.segmented-tabs button.active{background:#087e6b;color:white}.pagination{display:flex;gap:14px;justify-content:flex-end;align-items:center;padding:16px;color:#597b6b}.code-chip{font-size:12px;overflow-wrap:anywhere;padding:8px;background:#e9f3ed;border-radius:6px}.danger-link{color:#b92c3d}.business-form label{display:grid;gap:6px;margin:12px 0}.business-form input,.business-form select{width:100%;min-width:0}
.modal.product-integration-modal{width:min(920px,100%);max-width:920px}
.integration-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.integration-heading h3{margin:0}.integration-heading button{flex-shrink:0}
.product-integration-modal .data-table{min-width:650px}.product-integration-modal .data-table td{vertical-align:top}.product-integration-modal .data-table th,.product-integration-modal .data-table td:nth-child(2){white-space:nowrap}
@media(max-width:1439px){.lake-legend small{position:static;display:block}.lake-legend strong{font-size:22px}}
@media(max-width:767px){.lake-heading h2{font-size:30px}.lake-kpi p{left:96px}.lake-legend{padding-left:0}.lake-legend strong{font-size:20px}.metric-strip,.metric-grid{display:grid;grid-template-columns:1fr}.pagination{flex-wrap:wrap}.filter-grid{grid-template-columns:1fr}.lake-footer{padding-bottom:12px}}

/* Customer registration: keep actions visible while only the fields scroll. */
.modal.customer-registration-modal{display:flex;flex-direction:column;width:min(720px,100%);max-width:720px;max-height:calc(100dvh - 40px);padding:0;overflow:hidden}
.customer-registration-modal .registration-header{padding:22px 24px 14px;border-bottom:1px solid #e1ece5;flex:0 0 auto}
.customer-registration-modal .registration-header p{margin:0}
.customer-registration-modal .registration-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 24px}
.customer-registration-modal .registration-body h4{margin:22px 0 12px}
.customer-registration-modal .registration-body label{margin-top:0;min-width:0}
.customer-registration-modal .form-grid{gap:14px;margin-top:14px}
.customer-registration-modal input:not([type=radio]),.customer-registration-modal select{box-sizing:border-box;width:100%;min-width:0;padding:9px 12px;height:auto;min-height:42px}
.customer-registration-modal .customer-type-choice{flex-wrap:wrap;gap:12px 24px;border-color:#d7e5de}
.customer-registration-modal .customer-type-choice label{display:flex;align-items:center;gap:8px;margin:0;min-height:28px;cursor:pointer}
.customer-registration-modal input[type=radio]{width:16px;height:16px;min-width:16px;min-height:16px;max-width:16px;max-height:16px;flex:0 0 16px;padding:0;margin:0;accent-color:#078774}
.customer-registration-modal #existing-registration-fields{margin-top:16px;display:grid;gap:12px}
.customer-registration-modal [hidden]{display:none!important}
.customer-registration-modal .registration-search-note{margin:0;min-height:22px;color:#5c7b6c;overflow-wrap:anywhere}
.customer-registration-modal .registration-footer{flex:0 0 auto;padding:14px 24px 20px;border-top:1px solid #e1ece5;background:#fff}
.customer-registration-modal .registration-footer .form-error{color:#a72b3c;margin:0 0 10px;padding:9px 12px;overflow-wrap:anywhere;max-height:88px;overflow-y:auto}
.customer-registration-modal .modal-actions{margin:0;flex-wrap:wrap;gap:10px}
.customer-registration-modal .modal-actions button{min-height:42px;height:auto;white-space:nowrap;flex:0 0 auto}
@media(max-width:767px){.modal-backdrop:has(.customer-registration-modal){padding:12px}.modal.customer-registration-modal{max-height:calc(100dvh - 24px)}.customer-registration-modal .registration-header{padding:18px 16px 12px}.customer-registration-modal .registration-body{padding:14px 16px}.customer-registration-modal .registration-footer{padding:12px 16px 16px}.customer-registration-modal .form-grid{grid-template-columns:1fr}}
/* Shared interaction rules: keep dense tables stable and keyboard feedback visible. */
.data-table tbody tr.is-selected { background: #def2ec; box-shadow: inset 3px 0 #087e70; }
#page-back { margin-right: 10px; flex: 0 0 auto; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.page-heading > .primary-button, .page-heading > .modal-actions { margin-left:auto; }
.modal, .drawer { overscroll-behavior:contain; }
.modal { max-height:calc(100dvh - 40px); overflow-y:auto; }
.modal.registration-review-dialog { width:min(1080px,100%); max-width:1080px; }
.registration-review-dialog .table-wrap { overflow-x:auto; }
.registration-review-dialog .data-table { min-width:920px; }
.registration-review-dialog .data-table th, .registration-review-dialog .data-table td:nth-child(5), .registration-review-dialog .row-actions { white-space:nowrap; }
.registration-review-dialog .data-table td { vertical-align:top; }
.registration-review-dialog .primary-cell { min-width:180px; }
.modal-actions { gap:8px; flex-wrap:wrap; }
.primary-button, .secondary-button, .mini-button { transition:transform 90ms ease-out, background-color 160ms; }
.primary-button:active:not(:disabled), .secondary-button:active:not(:disabled), .mini-button:active:not(:disabled) { transform:translateY(1px); }
button:disabled { cursor:not-allowed; }
.primary-button:disabled { background:#d9e3df; color:#637b73; box-shadow:none; opacity:1; }
.modal label:has(> input[type="checkbox"]), .modal label:has(> input[type="radio"]), .panel label:has(> input[type="checkbox"]) { display:flex; align-items:center; gap:8px; }
.modal input[type="checkbox"], .modal input[type="radio"], .panel input[type="checkbox"] { width:17px; height:17px; min-width:17px; min-height:17px; padding:0; margin:0; flex:0 0 17px; accent-color:#087e70; }
@media(prefers-reduced-motion:reduce){ *, *::before, *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
