*{box-sizing:border-box}
html,body{touch-action:manipulation}
body{margin:0;font-family:"Segoe UI","Microsoft YaHei",Arial,sans-serif;background:#eef6ff;color:#172033;overflow-x:hidden}
button,input,select{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
body.app-initializing #authView,
body.app-initializing #rentView{display:none!important}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:34px;align-items:center;max-width:1180px;margin:0 auto;padding:30px}
.auth-copy{background:linear-gradient(135deg,#1284ff,#75d3ff);color:#fff;border-radius:8px;padding:48px;min-height:420px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 24px 70px rgba(20,132,255,.22);position:relative;overflow:hidden;background-size:cover;background-position:center}
.auth-copy.has-custom-image:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,23,42,.52),rgba(15,23,42,.18));z-index:0}
.auth-copy.has-custom-image>*{position:relative;z-index:1}
.auth-copy h1{font-size:38px;line-height:1.18;margin:0 0 16px}
.auth-copy p{font-size:16px;margin:0;color:rgba(255,255,255,.86)}
.auth-copy .eyebrow{font-weight:800;margin-bottom:12px;color:#fff}
.auth-panel{background:#fff;border:1px solid #dce8f5;border-radius:8px;padding:24px;box-shadow:0 18px 46px rgba(70,91,117,.12)}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:#edf5ff;border-radius:8px;padding:4px;margin-bottom:18px}
.auth-tabs button{height:42px;border:0;border-radius:6px;background:transparent;color:#61738b;font-weight:700}
.auth-tabs button.active{background:#fff;color:#0f1d33;box-shadow:0 8px 18px rgba(64,134,220,.12)}
.auth-form label,.order-panel label{display:block;margin-bottom:12px}
.auth-form label span,.order-panel label span{display:block;margin-bottom:7px;color:#697b96}
.auth-form input,.order-panel input,.order-panel select{width:100%;height:42px;border:1px solid #d8e3ef;border-radius:8px;background:#fff;padding:0 12px;color:#172033}
.auth-form input:focus,.order-panel input:focus,.order-panel select:focus{outline:2px solid rgba(20,132,255,.16);border-color:#2f87ff}
.primary-btn{border:0;border-radius:8px;background:#2f87ff;color:#fff;height:42px;padding:0 18px;font-weight:800}
.primary-btn:hover{background:#1673ed}
.danger-btn{border:0;border-radius:8px;background:#ff454f;color:#fff;height:42px;padding:0 18px;font-weight:800}
.outline-btn{border:1px solid #d7e2ef;background:#fff;color:#54677f;border-radius:22px;height:38px;padding:0 18px}
.hint{margin:0 0 14px;min-height:20px;color:#71839a}
.hint.ok{color:#10a45d}
.hint.bad{color:#d84a4a}
.tenant-console{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr);background:#edf7ff;overflow:visible}
.console-sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#fbfdff,#f6fbff);border-right:1px solid #dde9f5;padding:28px 8px 18px;box-shadow:8px 0 24px rgba(35,84,125,.06);overflow:auto}
.console-logo{height:44px;display:flex;align-items:center;gap:8px;padding:0 20px;margin-bottom:22px}
.console-logo span{color:#1683ff;font-size:18px;font-weight:900}
.console-logo strong{font-size:20px;color:#132037}
.sidebar-group{margin:0 0 10px;padding:0 6px;color:#8394aa;font-size:14px;font-weight:700}
.side-item{width:100%;height:56px;border:0;border-radius:12px;background:transparent;display:flex;align-items:center;padding:0 30px;color:#18243a;font-size:18px;font-weight:800;text-align:left;margin-bottom:8px}
.side-item i{display:none}
.side-item.active{background:linear-gradient(135deg,#338cff,#82d4ff);color:#fff;box-shadow:0 12px 26px rgba(43,139,255,.24)}
.console-main{min-width:0;display:block}
.console-topbar{position:sticky;top:0;z-index:4;height:72px;background:#fff;border-bottom:1px solid #e0e9f2;display:flex;align-items:center;justify-content:space-between;padding:0 28px}
.breadcrumb{display:flex;align-items:center;gap:12px;color:#8b9bb0;font-size:18px}
.breadcrumb button,.icon-btn,.logout-link{border:0;background:transparent;color:#111827}
.breadcrumb button{font-size:24px;padding:0 6px}
.breadcrumb span:first-of-type{color:#1e293b}
.breadcrumb em{font-style:normal;color:#c6d0dd}
.user-bar{display:flex;align-items:center;gap:14px;font-size:18px}
.icon-btn{font-size:24px;color:#65758b}
.avatar{width:40px;height:40px;border-radius:999px;background:#e4f5ff;display:grid;place-items:center;overflow:hidden}
.avatar img,.profile-avatar-large img{width:100%;height:100%;object-fit:cover;display:block}
.avatar-placeholder{color:#4b2c8f}
.logout-link{font-size:14px;color:#8a9bb0}
.console-scroll{overflow:visible;padding:24px 28px 38px}
.panel-section{scroll-margin-top:20px}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:20px}
.stat-card{height:110px;background:#fff;border:1px solid #e0e8f1;border-radius:20px;padding:20px;box-shadow:0 14px 32px rgba(77,111,143,.08)}
.stat-card span{display:block;color:#697d96;font-weight:800;margin-bottom:6px}
.stat-card strong{font-size:30px;color:#111827}
.quick-panel{background:rgba(255,255,255,.72);border-radius:20px;padding:20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:20px}
.quick-card{height:120px;background:#fff;border:1px solid #dfe8f1;border-radius:10px;display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;text-align:left;padding:20px;color:#172033}
.quick-card i{grid-row:1/3;width:48px;height:48px;border-radius:9px;background:#edf5ff;color:#1683ff;display:grid;place-items:center;font-style:normal;font-size:24px}
.quick-card strong{font-size:20px}
.quick-card span{color:#697d96;font-size:14px}
.board-card{background:#fff;border:1px solid #e1e8f0;border-radius:10px;margin-bottom:18px;overflow:hidden;box-shadow:0 10px 24px rgba(80,110,140,.05)}
.board-head{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid #e6edf5}
.board-head h2,.board-card h2{font-size:22px;margin:0;color:#172033}
.empty-line{height:74px;display:grid;place-items:center;color:#8a9bb0;font-size:20px}
.two-column{display:grid;grid-template-columns:minmax(0,1fr) 34%;gap:18px}
.table-wrap{padding:20px;overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:16px;color:#52647c;border-bottom:1px solid #e5edf5}
th{background:#fafbfe;font-weight:800}
.empty-cell{text-align:center;color:#8a9bb0}
.account-card{padding-bottom:12px}
.account-card h2{padding:20px;border-bottom:1px solid #e6edf5}
.account-card dl{margin:0;padding:18px 22px}
.account-card div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #e6edf5}
.account-card dt{color:#697d96;font-size:18px}
.account-card dd{margin:0;color:#111827;font-size:20px;font-weight:900;text-align:right}
.credit-log-panel{padding:0 18px 18px}
.credit-log-panel h3{font-size:18px;margin:8px 0 12px;color:#172033}
.credit-log-list{display:flex;flex-direction:column;gap:10px;max-height:310px;overflow:auto;padding-right:4px}
.credit-log-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e6edf5;border-radius:8px;padding:12px 14px;background:#fbfdff}
.credit-log-item div{display:block;padding:0;border:0}
.credit-log-item strong{display:block;color:#172033;font-size:15px}
.credit-log-item span{display:block;color:#8a9bb0;font-size:12px;margin-top:4px}
.credit-log-item b{font-size:18px}
.credit-log-item.plus b{color:#07834b}
.credit-log-item.minus b{color:#d14343}
.credit-empty{border:1px dashed #d7e2ef;border-radius:8px;padding:28px 12px;text-align:center;color:#8a9bb0;background:#fbfdff}
.profile-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:22px;margin-bottom:22px}
.profile-summary-card,.profile-form-card{background:#fff;border:1px solid #dfe8f1;border-radius:8px;box-shadow:0 16px 34px rgba(80,110,140,.07);overflow:hidden}
.profile-summary-card{padding:28px 16px 16px;text-align:center}
.profile-avatar-uploader{width:152px;margin:0 auto 14px;display:block;position:relative;cursor:pointer}
.profile-avatar-uploader input{position:absolute;inset:0;opacity:0;cursor:pointer}
.profile-avatar-large{width:136px;height:136px;margin:0 auto;border:9px solid #edf4fb;border-radius:999px;background:#19b5bd;display:grid;place-items:center;font-size:74px;overflow:hidden;transition:.18s ease}
.profile-avatar-uploader em{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);border-radius:999px;background:rgba(15,23,42,.74);color:#fff;font-size:12px;font-style:normal;padding:5px 10px;opacity:0;transition:.18s ease;white-space:nowrap}
.profile-avatar-uploader:hover .profile-avatar-large{filter:brightness(.88)}
.profile-avatar-uploader:hover em{opacity:1}
.profile-summary-card h2{margin:0 0 6px;font-size:24px;color:#172033}
.profile-summary-card p{margin:0 0 16px;color:#677a92}
.profile-badges{display:flex;justify-content:center;gap:12px;margin-bottom:26px}
.profile-badges span{border:1px solid #d9e8f6;border-radius:999px;padding:7px 12px;color:#5f728a;font-size:13px;background:#f8fbff}
.profile-badges span:first-child{border-color:#bae9cc;color:#168a4f;background:#f0fff6}
.profile-bind-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid #edf2f8;padding:18px 0}
.profile-bind-grid div{border:1px solid #e0ebf6;border-radius:8px;padding:14px 8px;background:#fbfdff}
.profile-bind-grid strong,.profile-bind-grid span{display:block}
.profile-bind-grid strong{color:#172033;font-size:18px}
.profile-bind-grid span{color:#75869b;font-size:13px;margin-top:4px}
.profile-meta-list{margin:0;padding:0 0 2px;text-align:left;border-top:1px solid #edf2f8}
.profile-meta-list div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #edf2f8;padding:14px 0}
.profile-meta-list dt{color:#7c8da2;font-weight:800}
.profile-meta-list dd{margin:0;color:#172033;text-align:right;word-break:break-all}
.profile-form-card{padding:0 16px 24px}
.profile-form-head{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #dce6f1;padding:18px 0}
.profile-form-head h2{margin:0 0 4px;font-size:24px;color:#172033}
.profile-form-head p{margin:0;color:#687a91}
.mail-status{border:1px solid #99e0b5;border-radius:999px;padding:7px 12px;color:#12a65f;font-weight:800;font-size:13px;background:#f4fff8;white-space:nowrap}
.profile-tabs{height:54px;display:flex;align-items:flex-end;gap:30px;border-bottom:1px solid #dce6f1;margin-bottom:14px}
.profile-tabs button{height:42px;border:0;background:transparent;color:#333f52;padding:0;font-weight:700}
.profile-tabs button.active{color:#1683ff;border-bottom:3px solid #1683ff}
.profile-form{padding:0 0 0 24px}
.profile-form label{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:22px}
.profile-form label span{text-align:right;color:#555f6d;font-weight:700}
.profile-form label b{color:#e04444}
.profile-form input{width:100%;height:38px;border:1px solid #d7e1ec;border-radius:14px;background:#fff;padding:0 16px;color:#172033}
.profile-form input:focus{outline:2px solid rgba(47,135,255,.14);border-color:#2f87ff}
.profile-form input[readonly]{background:#fbfdff;color:#66788e}
.profile-actions{display:flex;gap:10px;padding-left:92px}
.profile-actions+.hint{padding-left:92px;margin-top:10px}
.domain-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;padding:20px}
.domain-card{background:#fff;border:1px solid #dfe8f1;border-radius:10px;padding:18px;cursor:pointer}
.domain-card.active{border-color:#2f87ff;box-shadow:0 0 0 3px rgba(47,135,255,.12)}
.domain-card h3{font-size:20px;margin:0 0 12px}
.domain-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.badge{display:inline-block;padding:4px 9px;border-radius:999px;font-size:12px;background:#eef4fb;color:#5b6f87}
.badge.good{background:#e8f8ef;color:#11894d}
.badge.warn{background:#fff5d9;color:#a26c00}
.plan{background:#f8fbff;border:1px solid #e4edf5;border-radius:8px;padding:10px;margin-bottom:12px}
.plan strong{display:flex;justify-content:space-between;gap:12px}
.plan p{margin:6px 0 0;color:#697d96;font-size:14px}
.pick-btn{width:100%;height:38px;border:0;border-radius:8px;background:#2f87ff;color:#fff;font-weight:800}
.empty{text-align:center;color:#8a9bb0;padding:36px;border:1px dashed #d7e2ef;border-radius:10px;background:#fbfdff}
.rent-workspace{margin-bottom:30px}
.balance-panel{padding:22px}
.balance-panel h2{margin:0 0 16px}
.balance-row{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.balance-row span{display:block;color:#697d96;font-weight:800;margin-bottom:6px}
.balance-row strong{font-size:28px;color:#12864f}
.recharge-form{display:flex;gap:10px;align-items:center}
.recharge-form input{width:180px;height:42px;border:1px solid #d8e3ef;border-radius:8px;padding:0 12px}
.order-panel{padding:22px}
.order-panel h2{margin:0 0 18px}
.order-title-row{display:flex;align-items:center;gap:18px;margin:0 0 18px}
.order-title-row h2{flex:0 0 auto;margin:0}
.resolve-notice{flex:1;margin:0;color:#e02020;font-size:15px;font-weight:800;line-height:1.6}
.host-row{display:flex;gap:8px}
.host-row input{flex:1}
.host-row button{width:76px;border:0;border-radius:8px;background:#2f87ff;color:#fff;font-weight:800}
.split{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.quote{display:flex;align-items:center;justify-content:space-between;background:#f0fdf4;border:1px solid #9ce5b5;border-radius:10px;padding:14px 16px;margin:10px 0 16px}
.quote span{color:#12864f}
.quote strong{font-size:24px;color:#12864f}
.order-result{background:#f0fdf4;border:1px solid #9ce5b5;border-radius:10px;padding:16px;margin-top:16px}
.order-result h3{margin:0 0 10px}
.order-result p{margin:6px 0}
.pay-link{color:#1673ed}
@media (max-width:1100px){
  .tenant-console{grid-template-columns:150px minmax(0,1fr)}
  .console-logo strong,.sidebar-group{display:none}
  .side-item{justify-content:center;padding:0 10px}
  .side-item span{display:inline}
  .stat-grid,.quick-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .two-column,.profile-layout{grid-template-columns:1fr}
}
@media (max-width:760px){
  .auth-shell{grid-template-columns:1fr;padding:14px;align-items:start;min-height:100svh}
  .auth-copy{min-height:210px;padding:24px;border-radius:14px}
  .auth-copy h1{font-size:26px}
  .auth-panel{padding:18px;border-radius:14px}
  .tenant-console{display:block;height:auto;min-height:100vh}
  .console-sidebar{position:sticky;top:0;z-index:20;height:auto;display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding:10px;background:#fbfdff;box-shadow:0 8px 18px rgba(35,84,125,.08)}
  .console-logo,.sidebar-group{display:none}
  .side-item{width:auto;min-width:86px;flex:0 0 auto;height:44px;margin:0;border-radius:10px;padding:0 14px;font-size:15px;white-space:nowrap}
  .console-topbar{position:static;height:auto;min-height:64px;padding:12px 16px;gap:12px;flex-wrap:wrap}
  .breadcrumb{font-size:15px;gap:8px}
  .breadcrumb span:first-of-type{max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .user-bar{font-size:15px;gap:8px;flex-wrap:wrap}
  .console-scroll{padding:16px}
  .stat-grid,.quick-panel,.split{grid-template-columns:1fr}
  .stat-card{height:auto;min-height:92px;border-radius:14px;padding:16px}
  .quick-panel{padding:14px;gap:12px;border-radius:14px}
  .quick-card{height:auto;min-height:88px;padding:16px;grid-template-columns:42px 1fr}
  .quick-card i{width:42px;height:42px;font-size:20px}
  .quick-card strong{font-size:18px}
  .board-card{border-radius:14px}
  .board-head{height:auto;min-height:58px;padding:14px 16px;gap:10px;flex-wrap:wrap}
  .board-head h2,.board-card h2{font-size:19px}
  .table-wrap{padding:12px}
  table{min-width:640px;font-size:14px}
  th,td{padding:12px}
  .two-column,.profile-layout{grid-template-columns:1fr}
  .account-card dl{padding:12px 16px}
  .account-card div{display:block}
  .account-card dd{text-align:left;margin-top:6px;font-size:18px}
  .credit-log-item{align-items:flex-start}
  .profile-summary-card,.profile-form-card{border-radius:14px}
  .profile-form-head{display:block}
  .mail-status{display:inline-block;margin-top:10px}
  .profile-tabs{gap:22px;overflow-x:auto;white-space:nowrap}
  .profile-form{padding-left:0}
  .profile-form label{grid-template-columns:1fr;gap:7px}
  .profile-form label span{text-align:left}
  .profile-actions{padding-left:0;flex-wrap:wrap}
  .profile-actions button{flex:1 1 130px}
  .profile-actions+.hint{padding-left:0}
  .domain-grid{grid-template-columns:1fr;padding:14px}
  .balance-panel,.order-panel{padding:16px}
  .order-title-row{align-items:flex-start;flex-direction:column;gap:8px}
  .resolve-notice{font-size:14px}
  .balance-row{align-items:flex-start}
  .recharge-form{width:100%}
  .recharge-form input{width:100%;flex:1}
  .host-row{align-items:stretch}
  .quote{align-items:flex-start;gap:10px;flex-direction:column}
}
@media (max-width:520px){
  .auth-shell{padding:12px}
  .auth-copy{display:none}
  .auth-panel{width:100%;box-shadow:0 12px 30px rgba(70,91,117,.1)}
  .auth-tabs button,.primary-btn,.danger-btn{height:44px}
  .console-scroll{padding:12px}
  .console-topbar{padding:10px 12px}
  .breadcrumb button,.icon-btn{font-size:20px}
  .avatar{width:34px;height:34px}
  .stat-card strong{font-size:26px}
  .balance-row,.recharge-form,.host-row{display:block}
  .recharge-form input,.recharge-form button,.host-row input,.host-row button{width:100%;margin-top:10px}
  .profile-bind-grid{grid-template-columns:1fr}
  .credit-log-item{display:block}
  .credit-log-item b{display:block;margin-top:8px}
  .order-result{word-break:break-word}
}
