/* Orvita unified typography and responsive refinement. Local OFL fonts. */
:root{--orvita-font:'Inter Variable','Noto Sans SC Variable',sans-serif;--orvita-code:'JetBrains Mono Variable','Noto Sans SC Variable',monospace;--muted:#596b84}
body,.ov-site,.fc{font-family:var(--orvita-font)!important;-webkit-font-smoothing:antialiased;font-optical-sizing:auto;line-height:1.6}
button,input,select,textarea{font-family:var(--orvita-font)!important;line-height:1.45}
code,pre,kbd,samp,.codebox,.ota-code{font-family:var(--orvita-code)!important;font-size:13px;line-height:1.65}
pre{overflow:auto;max-width:100%;tab-size:2}
h1,h2,h3,h4{font-family:var(--orvita-font)!important;font-weight:600;line-height:1.35}
html[lang^="zh"] h1,html[lang^="zh"] h2,html[lang^="zh"] h3{letter-spacing:0!important}
.heading h1,.ota-heading h1,.pagehead h1{font-size:28px;letter-spacing:-.5px;font-weight:600}
.card h2,.panel h2,.ota-card h2{font-size:18px;font-weight:600}
body:not(:has(.ov-site)){font-size:14px}
.muted,.micro{color:#596b84;font-size:13px}
label{font-size:13px;line-height:1.5}
input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:42px;max-width:100%;font-size:14px}
input[type=checkbox],input[type=radio]{width:17px!important;height:17px;min-height:0;flex-shrink:0;accent-color:#245bff}
input[type=file]{white-space:normal}
button,.btn,.ota-button,.ov-btn{min-height:38px;height:auto;white-space:normal;overflow-wrap:break-word;flex-shrink:0}
.btn.primary,.ota-button.primary,.ov-btn.primary{color:#fff;background:#245bff;border-color:#245bff}
.btn:not(.primary):not(.dark){color:#173b68}
.wallet .btn{color:#245bff!important;background:#fff!important}
.wallet .muted{color:#c0d0e9}
.metric b,.ota-metric strong,.wallet .big,.statline b,.cost-number{font-variant-numeric:tabular-nums lining-nums;font-weight:600;letter-spacing:-.6px}
.metric b,.ota-metric strong{font-size:32px;line-height:1.25}
.wallet .big{font-size:36px;line-height:1.3}
table{font-size:14px;font-variant-numeric:tabular-nums lining-nums}
th{font-size:13px;font-weight:500;color:#536782;line-height:1.5}
td{line-height:1.6}td.numeric{text-align:right;white-space:nowrap}
.tablewrap,.ota-tablewrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.tablewrap table,.ota-tablewrap table{min-width:100%}
.card,.panel,.ota-card,.main,.content,.ota-content,.grid>*,.ota-grid>*,.formgrid>*,.detailgrid>*{min-width:0}
.heading,.ota-heading,.dialoghead,.dialogfoot,.dialogactions,.footer-actions,.filters,.opsfilters,.row{flex-wrap:wrap;row-gap:12px}
.heading>div,.ota-heading>div{min-width:0}
.side,.sidebar,.ota-side{overflow-y:auto;overscroll-behavior:contain}
.side nav,.sidebar nav,.ota-side nav{flex-shrink:0}
.sidefoot,.sidebarfoot,.ota-sidefoot{flex-shrink:0;padding-top:20px}
.ota-side nav a{padding-top:10px;padding-bottom:10px;font-size:14px}
dialog{max-height:88dvh;overflow:auto;overscroll-behavior:contain}
dialog label{margin-top:12px}dialog input,dialog select,dialog textarea{max-width:100%}
dialog form>input,dialog form>select,dialog form>textarea{display:block;width:100%;margin:12px 0}
dialog textarea{min-height:110px}
.fc{line-height:1.6}.fc .ota-grid{margin:20px 0}.fc nav .ota-button{padding:10px 16px}.fc .ota-card{padding:24px}
.fc .ota-notice{color:#244574;background:#eaf1ff;border:1px solid #cbdcff}
.fc small{font-size:12px;line-height:1.6;display:block}
.tx-note{line-height:1.7;overflow-wrap:anywhere}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #87aaff;outline-offset:3px}
@media(max-width:1200px){.content,.ota-content{padding:24px}.top,.ota-top{height:auto;min-height:76px;padding:16px 24px;flex-wrap:wrap}.topright,.ota-topright{flex-wrap:wrap;gap:10px}.detailgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.wallet .big{font-size:32px}}
@media(max-width:760px){.content,.ota-content,.fc{padding:18px}.heading h1,.ota-heading h1{font-size:24px}.g4,.ota-grid.g4{grid-template-columns:repeat(2,minmax(0,1fr))!important}.heading,.ota-heading{align-items:flex-start}.formgrid,.detailgrid{grid-template-columns:1fr}.dialogactions,.dialogfoot{flex-wrap:wrap}.topright,.ota-topright{gap:8px}.ov-container{width:calc(100% - 36px)}.fc .ota-card{padding:16px}.metric b,.ota-metric strong{font-size:26px}td,th{padding:12px!important}.ov-site h1{overflow-wrap:break-word}}
@media(max-width:430px){.g4,.ota-grid.g4{grid-template-columns:1fr!important}.fc .ota-heading{display:block}.fc .ota-heading button{margin-top:12px}.top,.ota-top{padding:14px 16px}.ov-actions{gap:10px}.ov-btn{padding:12px 16px}.metric b{font-size:28px}}
/* Verified browser fixes: prevent intrinsic table widths stretching the grid. */
.layout>main{min-width:0;max-width:100%}
.ota-ai .ota-button:not(.primary){color:#245bff!important;background:#fff}
.ota-side .ota-brand{width:173px;height:54px;background-image:none;background-size:325px auto;background-position:-134px -17px;background-repeat:no-repeat}
@media(max-width:760px){.layout{grid-template-columns:minmax(0,1fr)}.topright{max-width:100%}.role-select{max-width:100%}.workflow-banner{min-width:0}.workflow-banner h1,.workflow-banner h2{overflow-wrap:anywhere}}
input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid #dbe4f1;border-radius:8px;background:#fff;color:#10213d;padding:10px 12px}
.ota-card>form:has(input[name=q]){display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.ota-card>form input[name=q]{width:min(320px,100%)}
th.numeric{text-align:right;white-space:nowrap}
dialog form>label{display:grid;gap:7px;margin:14px 0}dialog form>label input{width:100%}dialog label:has(input[type=checkbox]){display:flex;align-items:center;gap:10px}
#ota-modal form>.ota-button{margin-right:8px;margin-top:10px}
