:root{--blue:#409eff;--nav:#304156;--nav2:#263445;--bg:#f5f7fa;--text:#303133;--muted:#909399;--line:#ebeef5;--green:#67c23a;--orange:#e6a23c;--red:#f56c6c}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--text);font-size:14px}button,input,select{font:inherit}.login-page{height:100%;display:grid;place-items:center;background:linear-gradient(135deg,#eef5ff,#f7f9fc 55%,#e7eef8)}.login-card{width:410px;padding:38px 42px 34px;background:#fff;border-radius:6px;box-shadow:0 10px 35px #1f47751c}.brand{text-align:center;margin-bottom:28px}.brand-mark{width:48px;height:48px;margin:auto;border-radius:12px;background:linear-gradient(135deg,#409eff,#2d78d6);color:#fff;display:grid;place-items:center;font-size:25px;font-weight:700}.brand h1{font-size:22px;margin:12px 0 5px}.brand p{margin:0;color:var(--muted);font-size:12px}.field{margin:17px 0}.field label{display:block;margin-bottom:7px;color:#606266}.field input{width:100%;height:40px;border:1px solid #dcdfe6;border-radius:4px;padding:0 12px;outline:0}.field input:focus{border-color:var(--blue)}.login-actions{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.primary{width:100%;height:40px;border:0;border-radius:4px;background:var(--blue);color:#fff;cursor:pointer}.primary:hover{filter:brightness(.96)}.demo{margin-top:16px;text-align:center;color:#a0a5ad;font-size:12px}.error{min-height:18px;color:var(--red);font-size:12px;margin-top:8px}.shell{height:100%;display:flex;background:var(--bg)}.sidebar{width:224px;background:var(--nav);color:#bfcbd9;flex:none;display:flex;flex-direction:column}.logo{height:60px;display:flex;align-items:center;padding:0 20px;color:#fff;font-size:17px;font-weight:600;background:var(--nav2)}.logo span{display:grid;place-items:center;width:30px;height:30px;margin-right:10px;border-radius:7px;background:var(--blue);font-size:17px}.menu{padding:14px 0}.menu-title{padding:12px 24px;color:#8492a6;font-size:12px}.menu-item{height:44px;padding:0 24px;display:flex;align-items:center;gap:12px;cursor:pointer}.menu-item:hover,.menu-item.active{background:#263445;color:#fff;border-left:3px solid var(--blue);padding-left:21px}.sidebar-foot{margin-top:auto;padding:18px 20px;border-top:1px solid #3d4b5d;font-size:12px;color:#8492a6}.main{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:60px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px}.crumb{color:#909399}.crumb b{color:#303133;font-weight:500}.top-actions{display:flex;align-items:center;gap:20px}.bell{color:#909399}.user{display:flex;align-items:center;gap:9px}.avatar{width:30px;height:30px;border-radius:50%;background:#d9ecff;color:#337ecc;display:grid;place-items:center;font-weight:600}.logout{border:0;background:transparent;color:#909399;cursor:pointer}.content{overflow:auto;padding:24px}.page-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-title h2{font-size:20px;font-weight:500;margin:0}.page-title p{margin:6px 0 0;color:var(--muted);font-size:12px}.cards{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:16px}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:4px}.card{padding:19px 20px}.card-top{display:flex;justify-content:space-between;color:#909399}.card-icon{width:36px;height:36px;border-radius:4px;display:grid;place-items:center;color:#fff;font-size:18px}.i-blue{background:#409eff}.i-green{background:#67c23a}.i-orange{background:#e6a23c}.i-purple{background:#8e71c7}.card strong{display:block;font-size:24px;font-weight:500;margin-top:13px}.trend{font-size:12px;color:var(--green);margin-top:8px}.grid{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;margin-top:16px}.panel{padding:18px 20px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.panel-head h3{font-size:16px;font-weight:500;margin:0}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.table th{background:#fafafa;color:#909399;font-weight:500;font-size:12px}.table td{font-size:13px}.tag{display:inline-block;padding:3px 8px;border-radius:3px;font-size:12px}.success{background:#f0f9eb;color:#67c23a}.warning{background:#fdf6ec;color:#e6a23c}.info{background:#f4f4f5;color:#909399}.progress{height:6px;border-radius:5px;background:#ebeef5;overflow:hidden;margin-top:7px}.progress i{display:block;height:100%;background:var(--blue);border-radius:5px}.quick{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quick button{height:82px;border:1px solid var(--line);background:#fff;border-radius:4px;color:#606266;cursor:pointer}.quick button:hover{border-color:#b3d8ff;color:var(--blue)}.quick b{display:block;font-size:22px;font-weight:400;margin-bottom:4px}.notice{padding:12px 14px;background:#ecf5ff;color:#409eff;border-radius:4px;margin-top:16px;font-size:12px}.readonly-badge{display:inline-block;padding:7px 12px;border-radius:4px;background:#f0f9eb;color:#67c23a;font-size:12px}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.toolbar input,.toolbar select{height:34px;border:1px solid #dcdfe6;border-radius:4px;padding:0 10px;color:#606266;min-width:180px}.toolbar label{color:#606266}.endpoint{margin-left:auto;color:#a0a5ad;font-size:12px}.table-foot{padding-top:14px;color:#a0a5ad;font-size:12px}.cards.mini{grid-template-columns:repeat(4,1fr);margin-top:20px}.cards.mini .card strong{font-size:20px}.stat-bars{margin-top:24px}.stat-bars>div{display:grid;grid-template-columns:90px 1fr 70px;align-items:center;gap:12px;margin:17px 0;color:#606266}.stat-bars i{height:8px;background:linear-gradient(90deg,#409eff,#76b9ff);border-radius:8px}.stat-bars b{font-weight:400;color:#409eff}.info-grid p{display:flex;justify-content:space-between;margin:0;padding:13px 0;border-bottom:1px solid var(--line);gap:20px}.info-grid p span{color:#909399}.info-grid p b{font-weight:400;text-align:right}.green{color:var(--green)!important}.message{display:grid;grid-template-columns:1.1fr 2fr 1fr;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.message b{font-weight:500}.message span,.message small{color:#909399}.toast{position:fixed;top:78px;right:24px;padding:11px 18px;background:#303133;color:#fff;border-radius:4px;z-index:9;box-shadow:0 3px 12px #0002}@media(max-width:900px){.sidebar{width:180px}.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.cards.mini{grid-template-columns:repeat(2,1fr)}.endpoint{width:100%;margin-left:0}.message{grid-template-columns:1fr}.stat-bars>div{grid-template-columns:70px 1fr 55px}}@media(max-width:600px){.sidebar{display:none}.content{padding:15px}.cards{grid-template-columns:1fr 1fr}.topbar{padding:0 15px}}
.data-row{cursor:pointer}.data-row:hover{background:#f5f7fa}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-disabled{margin-top:12px;width:auto;padding:0 18px;opacity:.6;cursor:not-allowed}@media(max-width:900px){.detail-grid{grid-template-columns:1fr}}
.modal{position:fixed;inset:0;background:#0006;display:grid;place-items:center;z-index:20}.modal.hidden{display:none}.modal-card{width:min(560px,calc(100% - 30px));max-height:90vh;overflow:auto;background:#fff;border-radius:6px;padding:22px;box-shadow:0 12px 36px #0004}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.modal-head h3{margin:0;font-weight:500;font-size:18px}.modal-close{border:0;background:transparent;font-size:24px;color:#909399;cursor:pointer}.modal-card form>label{display:block;color:#606266;margin:14px 0}.modal-card form input,.modal-card form select{display:block;width:100%;height:38px;margin-top:6px;padding:0 10px;border:1px solid #dcdfe6;border-radius:4px}.modal-card form input:focus,.modal-card form select:focus{border-color:var(--blue);outline:0}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:18px}.detail-edit{width:auto;padding:0 18px}

/* 境舟 ERP 品牌视觉 */
:root{--blue:#155eef}
.jingzhou-logo{background:linear-gradient(145deg,#0b2f6b,#155eef)!important;color:#fff!important;box-shadow:0 9px 24px rgba(21,94,239,.24)}
.brand-mark.jingzhou-logo{width:62px;height:62px;border-radius:18px}
.brand-logo-svg{display:block;width:46px;height:46px}
.sidebar-logo-svg{display:block;width:24px;height:24px}
.login-page{background:radial-gradient(circle at 18% 15%,rgba(34,199,217,.13),transparent 28%),radial-gradient(circle at 85% 80%,rgba(21,94,239,.12),transparent 31%),linear-gradient(135deg,#f4f8ff,#fbfdff 55%,#edf4ff)}
.brand h1{color:#12213a;letter-spacing:.4px}.brand p{color:#6d7b90}
.primary{background:#155eef}.field input:focus{border-color:#155eef}.notice{background:#eef4ff;color:#155eef}.progress i,.i-blue{background:#155eef}
