:root{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;font-size:14px;color:#303133;background:#f0f2f5;--blue:#409eff;--sidebar:#304156;--line:#ebeef5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{cursor:pointer}a{color:var(--blue);text-decoration:none}button{border:0;background:none;color:inherit}input,select,textarea{border:1px solid #dcdfe6;border-radius:4px;background:white;padding:10px 15px;min-height:40px;color:#606266;outline-color:#409eff;width:100%}input::placeholder{color:#c0c4cc}input:focus,select:focus{border-color:var(--blue)}input[readonly]{background:#f5f7fa;color:#909399}h1,h2,h3,p{margin-top:0}svg.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}[hidden]{display:none!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:10px 20px;border:1px solid #dcdfe6;border-radius:4px;color:#606266;background:white;font-weight:500;white-space:nowrap}.btn:hover{color:var(--blue);border-color:#b3d8ff;background:#ecf5ff}.btn.primary{color:white;background:var(--blue);border-color:var(--blue)}.btn.primary:hover{background:#66b1ff}.btn:disabled{opacity:.5;cursor:wait}.btn.small{min-height:32px;padding:7px 12px;font-size:12px}.link-button{color:var(--blue);padding:5px}.sidebar{background:var(--sidebar);position:fixed;left:0;top:0;bottom:0;width:210px;color:#bfcbd9;z-index:25;transition:transform .2s}.sidebar nav a{display:flex;align-items:center;height:56px;padding:0 20px;gap:16px;color:#bfcbd9;font-size:14px}.sidebar nav a.active{color:var(--blue)}.sidebar nav a:hover{background:#263445}.sidebar-footer{position:absolute;bottom:22px;left:20px;right:20px;font-size:11px;color:#8799ad;line-height:1.8}.topbar{height:50px;display:flex;align-items:center;padding:0 16px;gap:23px;background:white;margin-left:210px;box-shadow:0 1px 4px #00152914;position:sticky;top:0;z-index:20}.menu-toggle{font-size:21px;padding:0;line-height:1}.breadcrumbs{font-size:14px;display:flex;gap:10px;color:#97a8be}.breadcrumbs a{color:#303133}.top-right{margin-left:auto;display:flex;align-items:center;gap:25px}.docs-button{font-size:14px;color:#606266;padding:0}.user-menu{position:relative}.avatar-button{display:flex;align-items:center;gap:9px;padding:0;color:#97a8be;font-size:12px}.avatar-button img{width:38px;height:38px;object-fit:contain;border-radius:50%;background:white}.user-dropdown{position:absolute;top:45px;right:0;width:150px;background:white;border:1px solid var(--line);border-radius:4px;box-shadow:0 3px 14px #00000020;padding:8px 0}.user-dropdown a,.user-dropdown button{display:block;padding:11px 18px;width:100%;text-align:left;font-size:13px;color:#606266}.user-dropdown a:hover,.user-dropdown button:hover{background:#ecf5ff;color:var(--blue)}.main{margin-left:210px;padding:15px;min-height:calc(100vh - 50px)}.welcome{height:100px;background:#e0f5ff url('/portal/assets/welcome.png') center/cover no-repeat;border-radius:5px;display:flex;align-items:center;padding:16px 23px;gap:23px;margin-bottom:10px}.welcome img{height:72px;width:72px;object-fit:contain;background:white;border-radius:50%;padding:7px}.welcome h1{font-size:30px;font-weight:400;margin:0;color:#080b0e}.welcome h1 span{color:#4b86fc}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stat{height:90px;background:white;border-radius:4px;box-shadow:0 2px 12px #00000012;padding:20px;display:flex;gap:20px;align-items:center;min-width:0}.stat-circle{border-radius:50%;background:var(--color);color:white;width:50px;height:50px;display:grid;place-items:center;flex-shrink:0;font-size:32px}.stat-circle .icon{width:31px;height:31px}.stat strong{font-size:24px;font-weight:700;display:block;line-height:1.1;overflow-wrap:anywhere}.stat small{font-size:12px;color:#909399;display:block}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:20px}.panel{border:1px solid var(--line);background:white;border-radius:3px}.panel-title{padding:20px;border-bottom:1px solid var(--line);font-size:16px;font-weight:400;margin:0}.panel-title:before{content:"";display:inline-block;width:3px;height:18px;background:#1687ff;vertical-align:middle;margin-right:10px}.panel-body{padding:20px 30px 40px}.tabs{display:flex;gap:40px;height:50px;border-bottom:2px solid #e4e7ed;margin-bottom:32px}.tabs button{position:relative;padding:0 0 15px;font-size:14px;color:#606266}.tabs button.active{color:var(--blue)}.tabs button.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--blue)}.profile-form{max-width:650px;margin-left:40px}.upload-row{display:flex;gap:20px;padding-left:60px;margin-bottom:30px;flex-wrap:wrap}.upload-field{font-size:14px;color:#303133}.upload-field>span{display:block;margin-bottom:15px}.upload-box{border:1px dashed #d9d9d9;border-radius:6px;width:102px;height:102px;display:flex;align-items:center;justify-content:center;position:relative;color:#8c939d;font-size:33px;overflow:hidden;cursor:pointer}.upload-box:hover{border-color:var(--blue)}.upload-box img{width:100%;height:100%;object-fit:cover}.upload-box.busy{opacity:.5;pointer-events:none}.remove-image{display:block;color:#909399;font-size:12px;padding:4px 0}.form-row{display:grid;grid-template-columns:110px 1fr;gap:10px;margin-bottom:22px;align-items:center}.form-row label{text-align:right;font-size:14px;color:#606266}.asterisk{color:#f56c6c;margin-right:4px}.form-actions{margin-left:120px;display:flex;gap:15px;align-items:center}.hint{font-size:12px;color:#909399;line-height:1.7;margin:12px 0}.profile-form>.hint{margin-left:120px}.saved{color:#67c23a;font-size:12px}.filters{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-bottom:20px}.filters label{display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:14px}.filters input,.filters select{width:170px}.date-range{display:flex;align-items:center;gap:10px}.table-wrap{overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:13px;color:#606266}.data-table th{font-weight:500;color:#909399;text-align:left;padding:16px 14px;border-bottom:1px solid var(--line)}.data-table td{padding:16px 14px;border-bottom:1px solid var(--line);line-height:1.8}.data-table tbody tr:hover{background:#f5f7fa}.empty{text-align:center!important;color:#909399;height:120px}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:20px;font-size:13px;color:#606266}.pagination button{background:#f4f4f5;border-radius:2px;padding:6px 10px}.pagination button.current{background:var(--blue);color:white}.pagination select{width:105px;min-height:30px;padding:5px 10px}.rates{background:#e6f7ff;border:1px solid #91d5ff;border-radius:4px;padding:20px 15px 13px;display:grid;grid-template-columns:1fr 1.22fr 1.22fr .9fr;gap:20px;margin-bottom:20px}.rates h3{font-size:18px;font-weight:600;margin:0 0 12px}.rates p{font-size:14px;line-height:1.75;margin:0;white-space:nowrap}.rates b{font-size:20px;color:#1687ff;font-weight:400;margin-left:5px}.pricing th,.pricing td{border:1px solid var(--line);text-align:center}.pricing th:nth-child(1){width:25%}.pricing th:nth-child(2){width:25%}.pricing th:nth-child(3){width:15%}.pricing th:last-child{width:15%}.pricing .cost{font-size:12px;line-height:1.95;padding:12px}.price{color:#f56c6c}.notice{font-size:12px;color:#909399;margin:-5px 0 18px}.orders-title{margin:32px 0 12px;font-size:16px;font-weight:500}.tag{font-size:12px;padding:4px 8px;border-radius:4px;background:#fdf6ec;color:#e6a23c}.tag.cancelled{background:#f4f4f5;color:#909399}.credentials{padding:20px 10px 45px}.credential-row{margin:0 0 38px}.credential-row label{display:block;margin-bottom:20px;font-size:16px}.credential-control{display:flex;gap:15px}.credential-control input{flex:1;min-width:0}.credential-control .btn{width:130px}.docs h3{font-size:18px;margin:25px 0 12px}.docs p,.docs li{line-height:1.8}.docs code{background:#f3f5f8;border-radius:3px;padding:2px 5px}.docs pre{background:#f5f7fa;border:1px solid var(--line);border-radius:4px;padding:18px;overflow:auto;font-size:13px;line-height:1.8}.docs pre code{padding:0}.password-form{max-width:590px;padding:15px 0}.loading{padding:50px;text-align:center;color:#909399}.error{padding:20px;background:#fef0f0;color:#f56c6c;font-size:14px}.menu-shade{display:none}#message{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:#f0f9eb;border:1px solid #e1f3d8;color:#67c23a;border-radius:4px;padding:15px 22px;z-index:100;min-width:280px;max-width:90vw;font-size:14px}#message.error{background:#fef0f0;border-color:#fde2e2;color:#f56c6c}dialog{padding:0;border:0;border-radius:4px;width:480px;max-width:calc(100vw - 32px);color:#606266;box-shadow:0 2px 24px #0003}dialog::backdrop{background:#0006}dialog header{padding:20px;display:flex;align-items:center;justify-content:space-between}dialog header h2{font-size:18px;font-weight:400;margin:0}dialog header button{font-size:24px;color:#909399}#dialog-content{padding:10px 25px 25px}#dialog-content p{line-height:1.8}#dialog-content .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.login-page{min-height:100vh;background:#ddecff url('/portal/assets/login.jpg') center/cover no-repeat;display:flex;align-items:center;justify-content:flex-end;padding:50px max(5vw,40px)}.login-form{width:450px;margin-right:4.3vw;max-width:100%}.login-form h1{text-align:center;font-size:28px;color:#090d12;margin:0 0 9px}.login-company{text-align:center;color:#637a93;font-size:13px;margin-bottom:35px}.login-field{position:relative;margin-bottom:22px}.login-field>.icon{position:absolute;left:16px;top:18px;color:#a2b1bc;width:16px;height:16px}.login-field input{height:54px;color:white;padding-left:46px;padding-right:42px;background:#40545cb0;border:1px solid #ffffff20;border-radius:4px}.login-field input::placeholder{color:#d3dde4}.toggle-password{position:absolute;right:12px;top:15px;color:#b1bfc6;padding:0}.login-options{display:flex;justify-content:space-between;align-items:center;margin:23px 0 20px;font-size:14px}.remember{display:flex;align-items:center;gap:8px;color:#606266}.remember input{min-height:0;width:14px;height:14px;margin:0;accent-color:var(--blue)}.login-options button{color:#101820;padding:0}.login-submit{width:100%}.login-error{color:#e84949;font-size:13px;background:#fff0f0;border-radius:4px;padding:10px;margin-bottom:15px}.login-error:empty{display:none}.login-form.register{margin-top:-10px}.sidebar.collapsed{transform:translateX(-100%)}body.nav-collapsed .topbar,body.nav-collapsed .main{margin-left:0}
@media(max-width:1250px){.stat{padding:15px;gap:12px}.stat strong{font-size:20px}.rates{grid-template-columns:1fr 1fr}.welcome h1{font-size:25px}.panel-body{padding:20px}.profile-form{margin-left:0}}
@media(max-width:900px){.stats{grid-template-columns:1fr 1fr}.stats.three{grid-template-columns:1fr}.filters label{flex-wrap:wrap}.login-page{padding-right:25px}.login-form{width:400px;margin-right:0}.welcome h1{font-size:20px}.stat strong{font-size:21px}.rates{grid-template-columns:1fr}.credential-control{flex-wrap:wrap}.credential-control input{flex-basis:100%}.credential-control .btn{width:auto}}
@media(max-width:650px){.sidebar{transform:translateX(-100%)}.topbar,.main{margin-left:0}.sidebar.collapsed{transform:translateX(0)}body.nav-collapsed .menu-shade{display:block;position:fixed;inset:0;background:#0005;z-index:24}.sidebar-footer{bottom:15px}.main{padding:12px}.topbar{gap:15px;padding:0 12px}.top-right{gap:12px}.breadcrumbs{font-size:12px;gap:6px}.docs-button{font-size:12px}.avatar-button img{width:32px;height:32px}.welcome{padding:14px;gap:12px;height:100px}.welcome img{width:50px;height:50px}.welcome h1{font-size:19px;line-height:1.7}.stat{height:85px;padding:12px;gap:10px}.stat-circle{width:36px;height:36px;font-size:25px}.stat-circle .icon{width:24px;height:24px}.stat strong{font-size:18px}.stat small{font-size:11px}.panel-title{padding:18px 15px}.panel-body{padding:15px}.tabs{margin-bottom:25px}.upload-row{padding-left:0;gap:12px}.upload-box{width:86px;height:90px}.upload-field{font-size:12px}.form-row{grid-template-columns:1fr;gap:8px;margin-bottom:18px}.form-row label{text-align:left}.form-actions,.profile-form>.hint{margin-left:0}.rates{padding:15px;gap:20px}.rates h3{font-size:17px}.rates p{font-size:13px}.rates b{font-size:17px}.pricing{min-width:720px}.data-table{white-space:nowrap}.credentials{padding:10px 0}.credential-row label{font-size:14px}.filters{gap:15px}.filters label{width:100%;gap:8px}.filters label>select{flex:1}.date-range{flex-wrap:wrap;width:100%;gap:8px}.date-range input{width:calc(50% - 14px);min-width:0;padding:10px 5px}.pagination{justify-content:flex-start;gap:8px;font-size:12px;flex-wrap:wrap}.login-page{justify-content:center;padding:30px 22px;background-position:25% center}.login-form{width:100%;margin:0;padding:28px 22px;background:#eaf5fff2;border:1px solid #fff8;border-radius:8px;box-shadow:0 5px 24px #436dac15}.login-form h1{font-size:25px}.login-company{font-size:11px;margin-bottom:28px}.login-field{margin-bottom:18px}.login-form.register{margin-top:0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(min-width:901px){.main{padding-right:40px}.rates{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}
.rates p{white-space:normal;overflow-wrap:anywhere}
