.console-page{min-height:100vh;grid-template-columns:248px minmax(0,1fr);background:#f5f8f7;color:#14271f}
.console-page button,.ticket-dialog button{font:inherit}
.console-sidebar{width:248px;padding:26px 18px;border-right:1px solid #dce8e2;box-shadow:8px 0 28px rgba(20,75,52,.03)}
.console-sidebar .console-brand{padding:0 10px}
.console-menu{margin-top:30px}
.console-menu button{display:flex;align-items:center;gap:12px;height:46px;border-radius:9px;color:#40534b;padding:0 13px;font-size:13px}
.console-menu .nav-icon{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:#6f8c81;transition:color .18s,transform .18s}
.console-menu .menu-item.active,.console-menu button:hover{background:#e7f8ef;color:#078f58;font-weight:800}
.console-menu .menu-item.active .nav-icon,.console-menu button:hover .nav-icon{color:inherit;transform:scale(1.04)}
.console-menu .menu-divider{height:1px;margin:12px 10px;background:#edf3f0}
.console-menu .menu-parent:after{content:"";width:7px;height:7px;margin-left:auto;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .18s}
.console-menu .menu-parent.open:after{content:"";transform:rotate(225deg)}
.console-menu .submenu{margin:2px 0 6px;padding:0;border-left:0}
.console-menu .submenu button{height:38px;padding-left:47px;font-size:12px;color:#607169}
.console-menu .submenu button.active{background:#e7f8ef;color:#078f58;font-weight:800}

.console-main{min-width:0;padding:0 30px 42px}
.console-topbar{min-height:72px;padding:12px 0;gap:12px;border-bottom:1px solid rgba(220,232,226,.8)}
.topbar-home{margin-left:auto;color:#607169;font-size:12px}
.topbar-home:hover{color:#07955c}
.points-summary{display:flex!important;align-items:center;gap:9px;text-align:left!important;margin-left:12px!important;padding:8px 14px;border:1px solid #dce9e3;border-radius:10px;background:#fff}
.points-summary span{color:#7b8b84;font-size:10px}
.points-summary strong{font-size:17px;color:#07955c}
.points-summary.frozen-points-summary{margin-left:0!important;background:#fffaf0;border-color:#f0dfb9}
.points-summary.frozen-points-summary strong{color:#a86b08}
.user-chip{font-weight:700}

.view{animation:view-in .28s ease both}
@keyframes view-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.page-title{margin:26px 0 22px;align-items:flex-end}
.page-title>div:first-child>p{margin:0;color:#07955c;font-size:11px;font-weight:800}
.page-title h1{margin:3px 0 2px;font-size:30px}
.page-title>div:first-child>span{color:#819089;font-size:12px}
.title-actions{display:flex;gap:10px}
.console-main button,.ticket-dialog button{height:40px;border:0;border-radius:8px;background:#10b96f;color:#fff;padding:0 16px;font-weight:750;cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s}
.console-main button:hover:not(:disabled),.ticket-dialog button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px rgba(16,185,111,.16)}
.console-main button:disabled,.ticket-dialog button:disabled{cursor:not-allowed;opacity:.45}
.console-main .line-action,.console-main .ghost-button,.ticket-dialog .ghost-button{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#496057;border:1px solid #d9e6e0;box-shadow:none}
.console-main .line-action:hover,.console-main .ghost-button:hover,.ticket-dialog .ghost-button:hover{color:#07955c;border-color:#8fd8b3}
.console-main select,.ticket-dialog select{padding-right:48px;appearance:none;-webkit-appearance:none;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%235c6f66' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 20px center;background-size:12px 8px}
.console-main select:disabled,.ticket-dialog select:disabled{cursor:not-allowed;opacity:1;background-color:#f8faf9;color:#71827a}
.panel{border-radius:12px;border-color:#dce9e3;box-shadow:0 12px 36px rgba(18,73,50,.06)}
.panel-head{gap:16px}
.panel-head>div>h2{margin:0;font-size:17px}
.panel-head>div>p{margin:3px 0 0;color:#819089;font-size:11px}
.panel-head button{height:34px!important;background:#ecf8f2!important;color:#07955c!important;box-shadow:none!important;font-size:11px}

.overview-metrics{gap:15px}
.overview-metrics article{position:relative;overflow:hidden;border-radius:12px;padding:20px}
.overview-metrics article:after{content:"";position:absolute;width:80px;height:80px;border-radius:50%;right:-28px;top:-28px;background:rgba(18,199,122,.08)}
.overview-metrics strong{font-size:28px}
.overview-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}
.overview-grid>.panel{padding:22px}
.overview-resource-list,.ticket-mini-list{display:grid;gap:9px}
.overview-resource{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid #e5eee9;border-radius:9px;background:#fbfdfc}
.overview-resource div strong,.overview-resource div small{display:block}
.overview-resource div small{color:#839189;font-size:10px}
.overview-resource>span{font-size:11px;color:#687971}
.ticket-mini{padding:13px 4px;border-bottom:1px solid #e9efec}
.ticket-mini:last-child{border:0}
.ticket-mini strong,.ticket-mini small{display:block}
.ticket-mini strong{font-size:12px}
.ticket-mini small{margin-top:3px;color:#839189;font-size:10px}
.status-pill{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border-radius:99px;background:#e7f9f0;color:#078f58;font-size:10px;font-style:normal;white-space:nowrap}
.status-pill.expiring{background:#fff4df;color:#a56d08}
.status-pill.expired{background:#f4f4f4;color:#7d8581}
.status-pill.processing,.status-pill.syncing{background:#eaf2ff;color:#3869bd}
.status-pill.closed{background:#f0f3f2;color:#6d7974}
.status-pill.queued,.status-pill.submitting,.status-pill.pending{background:#eef3ff;color:#516fc2}
.status-pill.completed,.status-pill.resolved{background:#e7f9f0;color:#078f58}
.status-pill.failed,.status-pill.outcomeUnknown{background:#fff0ed;color:#b44d36}
.status-pill.partiallyFulfilled,.status-pill.waitingForUser{background:#fff4df;color:#a56d08}

.buy-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;align-items:start}
.buy-main{display:grid;gap:15px;min-width:0}
.purchase-section{position:relative;padding:24px}
.section-number{position:absolute;right:21px;top:13px;color:#e7f4ed;font-size:34px;font-weight:900}
.purchase-heading{position:relative;margin-bottom:18px}
.purchase-heading h2{margin:0;font-size:17px}
.purchase-heading p{margin:3px 0 0;color:#819089;font-size:11px}
.purchase-heading.split{display:flex;justify-content:space-between;align-items:flex-end;gap:18px}
.purchase-heading.split input{max-width:260px}
.choice-pills{display:flex;flex-wrap:wrap;gap:9px}
.choice-pills button{height:38px;min-width:86px;background:#f8faf9;color:#52655c;border:1px solid #dfe8e4;box-shadow:none}
.choice-pills button.active{background:#e5f8ee;color:#078f58;border-color:#7fd7ac;box-shadow:0 6px 16px rgba(15,160,95,.09)}
.business-types{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.business-types button{width:100%;min-width:0;height:46px;font-size:13px}
.country-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;max-height:360px;overflow:auto;padding:2px}
.country-card{height:auto!important;min-height:72px!important;display:grid!important;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;text-align:left;background:#fbfdfc!important;color:#243a31!important;border:1px solid #e0eae5!important;padding:11px!important;box-shadow:none!important}
.country-card:hover{border-color:#9bdcba!important}
.country-card.active{border-color:#12b96f!important;background:#edfbf4!important;box-shadow:0 0 0 2px rgba(18,185,111,.09)!important}
.country-code{display:grid;place-items:center;width:35px;height:35px;border-radius:8px;background:#eef6f2;color:#07955c;font-size:11px;font-weight:900}
.country-card strong,.country-card small{display:block}
.country-card small{color:#87958e;font-size:9px;font-weight:400}
.country-stock{text-align:right;color:#07955c;font-size:9px}
.city-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.city-card{height:auto!important;min-height:66px!important;text-align:left;background:#fbfdfc!important;color:#2e443a!important;border:1px solid #e0eae5!important;box-shadow:none!important;padding:10px 12px!important}
.city-card strong,.city-card span{display:block}
.city-card strong{font-size:12px}
.city-card span{margin-top:3px;color:#829089;font-size:9px;font-weight:400}
.city-card.active{border-color:#12b96f!important;background:#eaf9f1!important;color:#078f58!important}
.city-empty{grid-column:1/-1;padding:34px;text-align:center;color:#95a29c;border:1px dashed #dce7e2;border-radius:9px;font-size:12px}
.location-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:end}
.location-selects label>span,.connection-options label,.quantity-block label{display:block;margin-bottom:7px;color:#42564d;font-size:12px;font-weight:750}
.location-selects select{height:50px;font-weight:650}
.connection-options{display:grid;justify-items:start;gap:22px}
.segmented{display:flex;gap:10px}
.segmented button,.duration-value{display:inline-flex;align-items:center;justify-content:center;min-width:96px;height:40px;padding:0 18px;border:1px solid #d7e1dc;border-radius:8px;background:#f8faf9;color:#53655d;box-shadow:none;font-size:13px;font-weight:750}
.segmented button.active,.duration-value.active{border-color:#79d5aa;background:#e7f8f0;color:#078f58;box-shadow:0 6px 16px rgba(15,160,95,.09)}
.quantity-block{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;padding:15px 16px;border:1px solid #dce8e2;border-radius:10px;background:#fbfdfc}
.quantity-block label{margin:0;font-size:13px}.quantity-block p{margin:2px 0 0;color:#7b8d84;font-size:10px}
.quantity-stepper{display:grid;grid-template-columns:40px 72px 40px;align-items:center;overflow:hidden;border:1px solid #d2e2da;border-radius:8px;background:#fff;box-shadow:none}
.quantity-stepper button{height:40px;padding:0;background:#f3f8f5;color:#078f58;border-radius:0;box-shadow:none;font-size:18px}
.console-main .quantity-stepper button:hover:not(:disabled){transform:none;background:#eaf5ef;box-shadow:none}
.quantity-stepper input{height:40px;border:0;border-left:1px solid #e1ebe6;border-right:1px solid #e1ebe6;border-radius:0;padding:0;text-align:center;color:#10271d;font-size:16px;font-weight:800;appearance:textfield}
.quantity-stepper input:focus{box-shadow:none}
.quantity-stepper input::-webkit-inner-spin-button,.quantity-stepper input::-webkit-outer-spin-button{appearance:none;margin:0}
.purchase-note{margin-top:16px;padding:11px 13px;border-left:3px solid #f0ad24;border-radius:6px;background:#fffaf0;color:#7f7662;font-size:10px}
.sticky-summary{position:sticky;top:92px;padding:22px}
.summary-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px;border-bottom:1px solid #e8efeb}
.summary-head span{font-size:17px;font-weight:850}
.summary-head b{padding:4px 7px;border-radius:5px;background:#e9f9f1;color:#07955c;font-size:9px}
.order-summary dl{grid-template-columns:92px minmax(0,1fr);gap:11px;margin:20px 0}
.order-summary dt{font-size:11px}
.order-summary dd{font-size:11px;overflow-wrap:anywhere}
.order-summary dd b{color:#07955c}
.summary-total{display:flex;justify-content:space-between;align-items:baseline;margin:18px 0 11px;padding-top:16px;border-top:1px solid #e8efeb}
.summary-total span{font-size:12px;font-weight:800}
.summary-total strong{font-size:27px;color:#07955c}
.summary-total strong:after,.summary-balance b:after{content:" 积分";font-size:10px;font-weight:500;color:#7e8d86}
.summary-balance{display:flex;justify-content:space-between;margin:8px 0;color:#78877f;font-size:10px}
.summary-balance b{color:#3e5249}
.order-summary>button{width:100%;margin-top:17px}

.manage-filter{padding:20px}
.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.filter-grid label>span{display:block;margin-bottom:6px;color:#4c6057;font-size:11px;font-weight:750}
.filter-grid .filter-address{grid-column:span 2}
.filter-grid textarea,.ticket-dialog textarea{width:100%;resize:vertical;border:1px solid #d7e6df;border-radius:7px;padding:10px 12px;color:#172b22;outline:none;font:inherit}
.filter-grid textarea:focus,.ticket-dialog textarea:focus{border-color:#13bd75;box-shadow:0 0 0 3px rgba(18,199,122,.12)}
.filter-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}
.resource-panel{margin-top:15px;padding:0;overflow:hidden}
.batch-toolbar{display:flex;align-items:center;gap:16px;padding:15px 17px;border-bottom:1px solid #e5ede9;font-size:11px}
.batch-toolbar>label{display:flex;align-items:center;gap:7px}
.batch-toolbar input,.resource-table input{width:15px;height:15px}
.batch-toolbar>span{color:#74847c}
.batch-toolbar>div{display:flex;gap:7px;margin-left:auto}
.batch-toolbar button{height:34px;padding:0 11px;font-size:10px;background:#eef8f3;color:#07955c;box-shadow:none}
.table-scroll{overflow:auto}
.resource-table{min-width:1680px}
.data-table{font-size:11px}
.data-table th{white-space:nowrap;background:#f7faf8;color:#66776f}
.data-table th,.data-table td{padding:12px 13px}
.data-table td{vertical-align:middle}
.data-table tbody tr:hover{background:#fbfdfc}
.resource-actions{display:flex;gap:5px;white-space:nowrap}
.resource-actions button,.data-table td>button{height:29px!important;padding:0 9px!important;background:#eef8f3!important;color:#07955c!important;box-shadow:none!important;font-size:9px!important}
.resource-password{display:flex;align-items:center;gap:6px}
.resource-password code{min-width:65px}
.table-empty{padding:48px;text-align:center;color:#89978f}

.ticket-filter,.ledger-filter{display:flex;gap:10px;margin-bottom:16px}
.ticket-filter input,.ledger-filter input{max-width:330px}
.ticket-filter select,.ledger-filter select{max-width:180px}
.ticket-filter button,.ledger-filter button{height:44px}
.points-metrics{grid-template-columns:repeat(4,1fr)}
.points-metrics strong{color:#07955c}
.points-metrics .frozen-points-card strong{color:#a86b08}
.points-change{font-weight:850}
.points-change.positive{color:#07955c}
.points-change.negative{color:#cf684f}

.password-panel{max-width:720px;padding:0 30px 30px}
.password-title{display:flex;align-items:center;gap:14px;padding:24px 0;border-bottom:1px solid #e7eeea}
.password-title>span{display:grid;place-items:center;width:45px;height:45px;border-radius:11px;background:#e8f8f0;color:#07955c;font-size:22px}
.password-title h2,.password-title p{margin:0}
.password-title h2{font-size:19px}
.password-title p{color:#829089;font-size:10px}
.password-panel form{max-width:560px;padding-top:24px}
.password-panel form>label{margin-bottom:21px}
.password-panel form>label>span:first-child{font-size:12px}
.password-field{position:relative;display:block!important;margin:0!important}
.password-field input{padding-right:66px}
.password-field button{position:absolute;right:5px;top:5px;height:34px!important;padding:0 10px!important;background:transparent!important;color:#7b8a83!important;box-shadow:none!important;font-size:10px}
.password-tip{min-height:20px;margin:0 0 8px;color:#c2573a;font-size:11px}
.password-actions{display:flex;gap:10px;padding-top:18px;border-top:1px solid #e8eeeb}

.ticket-dialog{width:min(560px,calc(100% - 30px));border:0;border-radius:13px;padding:0;box-shadow:0 28px 80px rgba(10,48,32,.24)}
.ticket-dialog::backdrop{background:rgba(9,31,23,.46);backdrop-filter:blur(2px)}
.ticket-dialog form{padding:25px}
.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}
.dialog-head p,.dialog-head h2{margin:0}
.dialog-head p{color:#07955c;font-size:10px;font-weight:800}
.dialog-head h2{font-size:22px}
.dialog-head>button{width:34px;padding:0;background:#f1f4f2;color:#65766e;font-size:20px}
.ticket-dialog label{display:block;margin-bottom:15px}
.ticket-dialog label>span{display:block;margin-bottom:6px;color:#43564d;font-size:11px;font-weight:750}
.dialog-tip{min-height:18px;color:#c2573a;font-size:10px}
.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:8px}

.console-toast{position:fixed;z-index:100;left:50%;bottom:25px;transform:translate(-50%,18px);opacity:0;pointer-events:none;padding:10px 16px;border-radius:8px;background:#112b21;color:#fff;font-size:11px;box-shadow:0 12px 32px rgba(8,45,30,.2);transition:.25s}
.console-toast.show{opacity:1;transform:translate(-50%,0)}

.purchase-orders-panel{margin-top:18px}
.purchase-orders-table{min-width:1120px}
.purchase-orders-panel .table-empty{padding:30px 12px;text-align:center;color:#84928b;font-size:13px}
.purchase-orders-panel .table-empty[hidden]{display:none}
.renewal-orders-panel{margin-top:18px;padding:0;overflow:hidden}
.renewal-orders-panel .panel-head{padding:18px 20px;border-bottom:1px solid #e4ece8}
.renewal-orders-table{min-width:1050px}
.renewal-orders-panel .table-empty{padding:26px 12px;text-align:center;color:#84928b;font-size:13px}
.renewal-orders-panel .table-empty[hidden]{display:none}
.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:10px 16px;border-top:1px solid #edf2ef;background:#fafcfb;color:#6f8078;font-size:11px;line-height:1.6}
.table-pagination>div{display:flex;gap:8px}
.console-main .table-pagination button{height:34px;padding:0 13px;font-size:11px}
.order-result{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#687a72}
.frozen-balance{background:#fffaf0!important;color:#8f661e!important}
.resource-actions button:disabled,.batch-toolbar button:disabled{cursor:not-allowed!important;opacity:.48!important;transform:none!important}
.proxy-qr-dialog{width:min(440px,calc(100% - 28px));padding:0}
.proxy-qr-shell{padding:24px}
.qr-format-tabs{display:grid;grid-template-columns:1fr 1fr;margin:18px 0}
.qr-format-tabs button{background:#f5f8f6!important;color:#52645c!important;border:1px solid #dce8e2!important;box-shadow:none!important}
.qr-format-tabs button.active{background:#e5f8ee!important;color:#078f58!important;border-color:#83d8af!important}
.proxy-qr-code{display:grid;place-items:center;width:220px;height:220px;margin:10px auto 18px;padding:12px;border:1px solid #dfe9e4;border-radius:12px;background:#fff}
.proxy-qr-code svg,.proxy-qr-code canvas,.proxy-qr-code img{width:100%!important;height:100%!important}
.proxy-qr-uri{display:block;max-height:82px;overflow:auto;padding:12px;border-radius:8px;background:#f4f8f6;color:#34483f;font:12px/1.6 Consolas,monospace;overflow-wrap:anywhere;white-space:pre-wrap}
.ticket-detail-dialog{width:min(720px,calc(100% - 28px))}
.ticket-detail-shell{padding:24px}
.ticket-detail-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin:12px 0 18px;padding:12px 14px;border-radius:9px;background:#f5f9f7;color:#66786f;font-size:12px}
.ticket-message-list{display:grid;gap:12px;max-height:360px;overflow:auto;margin-bottom:18px;padding-right:4px}
.ticket-message{max-width:86%;padding:12px 14px;border-radius:12px;background:#f1f6f3;color:#2d4238}
.ticket-message.user{margin-left:auto;background:#e5f8ee}
.ticket-message header{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;color:#71827a;font-size:11px}
.ticket-message p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}
.ticket-message-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ticket-message-attachments img{width:88px;height:66px;border-radius:7px;object-fit:cover;border:1px solid rgba(0,0,0,.08)}
.ticket-dialog input[type="file"]{height:auto;min-height:44px;padding:9px 11px}

@media(max-width:1180px){
  .buy-layout{grid-template-columns:1fr}.sticky-summary{position:static}.business-types{grid-template-columns:repeat(4,minmax(0,1fr))}.location-selects{grid-template-columns:1fr 1fr}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{grid-template-columns:1fr}
}
@media(max-width:980px){
  .console-page{grid-template-columns:1fr}.console-sidebar{width:258px}.console-main{padding:0 20px 35px}.topbar-home{margin-left:auto}.points-summary{margin-left:0!important}.metric-cards.overview-metrics{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .console-main{padding:0 14px 28px}.console-topbar{gap:8px}.topbar-home{display:none}.points-summary{padding:6px 9px}.points-summary span{display:none}.user-chip{padding:0 9px;font-size:11px}.page-title{align-items:flex-start;gap:14px}.title-actions{width:100%}.title-actions button{flex:1}.metric-cards.overview-metrics,.points-metrics{grid-template-columns:1fr 1fr}.business-types{grid-template-columns:repeat(2,minmax(0,1fr))}.location-selects,.filter-grid{grid-template-columns:1fr}.connection-options{gap:18px}.quantity-block{align-items:flex-start;flex-direction:column}.quantity-stepper{width:100%;grid-template-columns:44px 1fr 44px}.filter-grid .filter-address{grid-column:auto}.batch-toolbar{align-items:flex-start;flex-wrap:wrap}.batch-toolbar>div{width:100%;margin-left:0;overflow:auto}.ticket-filter,.ledger-filter{align-items:stretch;flex-direction:column}.ticket-filter input,.ticket-filter select,.ledger-filter input,.ledger-filter select{max-width:none}.overview-resource{grid-template-columns:1fr auto}.overview-resource>span{grid-column:1/-1}.password-panel{padding:0 20px 24px}
}

/* Console readability and responsive layout consistency. */
.console-menu button{font-size:14px}
.console-menu .submenu button{font-size:13px}
.points-summary span{font-size:11px}
.console-main button,.ticket-dialog button{font-size:14px}
.panel-head button{font-size:12px!important}
.quantity-stepper button{font-size:18px}
.dialog-head>button{font-size:20px}
.panel-head>div>p{font-size:12px}
.overview-resource div small,.ticket-mini small{font-size:11px}
.overview-resource>span{font-size:12px}
.status-pill{font-size:11px}
.buy-layout{grid-template-columns:minmax(0,1fr) 340px}
.purchase-heading p{font-size:12px}
.location-selects label>span,.connection-options label{font-size:13px}
.quantity-block p{font-size:11px}
.purchase-note,.summary-head b{font-size:11px}
.order-summary dt,.order-summary dd{font-size:12px}
.summary-total strong:after,.summary-balance b:after{font-size:11px}
.summary-balance{font-size:12px}
.filter-grid label>span{font-size:12px}
.batch-toolbar{font-size:12px}
.batch-toolbar button{font-size:11px}
.batch-toolbar input,.resource-table input{width:18px;height:18px}
.table-scroll{width:100%;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.data-table{font-size:12px}
.data-table th,.data-table td{padding:12px 14px}
.resource-actions button,.data-table td>button{font-size:11px!important}
#tickets .data-table{min-width:820px}
#pointsLedger .data-table{min-width:900px}
.password-title p{font-size:11px}
.password-panel form>label>span:first-child{font-size:13px}
.password-field button{top:2px;height:40px!important;font-size:12px}
.password-tip{font-size:12px}
.ticket-dialog{max-height:calc(100dvh - 24px);overflow:auto}
.dialog-head p{font-size:11px}
.ticket-dialog label>span{font-size:12px}
.dialog-tip{font-size:11px}
.console-toast{font-size:12px}
.console-page button:focus-visible,.console-page a:focus-visible,.ticket-dialog button:focus-visible{outline:3px solid rgba(18,199,122,.3);outline-offset:2px}

@media(max-width:1100px) and (min-width:981px){
  .overview-metrics{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:1180px){
  .buy-layout{grid-template-columns:1fr}
}

@media(max-width:640px){
  .console-page .data-table{display:table;overflow:visible;white-space:normal}
  .console-menu .submenu button{height:42px}
  .panel-head button{min-height:38px!important}
  .resource-actions button,.data-table td>button{height:36px!important}
  .batch-toolbar button,.resource-actions button{flex:0 0 auto;white-space:nowrap}
  .table-pagination{align-items:flex-start;flex-direction:column}.table-pagination>div{width:100%}.table-pagination button{flex:1}
}

@media(max-width:360px){
  .metric-cards.overview-metrics,.points-metrics{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  .view{animation:none}
  .console-main button,.ticket-dialog button{transition:none}
}
