:root{--ink:#17272b;--muted:#839092;--line:#e8edec;--teal:#16685b;--soft:#f4f7f6}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);font-size:14px}[v-cloak]{display:none}.v-application{font-family:inherit;color:var(--ink);background:var(--soft)}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed}.v-btn{font-weight:600!important;letter-spacing:0!important;border-radius:8px!important;box-shadow:none!important;text-transform:none}.v-field{border-radius:8px!important;font-size:14px!important}.v-field__outline{color:#d6dfdc}.v-label{font-size:14px}.v-btn .app-icon{margin-right:7px;width:17px}.app-icon{display:inline-block;width:20px;height:20px;vertical-align:middle;flex-shrink:0}.sidebar{width:240px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);z-index:10;display:flex;flex-direction:column;padding:29px 18px 0}.brand{display:flex;align-items:center;gap:12px;margin:0 6px 35px}.brand-mark{background:var(--teal);border-radius:12px;color:white;width:40px;height:40px;font-size:30px;font-weight:700;line-height:40px;text-align:center;letter-spacing:-5px;padding-right:6px}.brand-mark span{color:#a9d7bb}.brand strong{display:block;font-size:17px;letter-spacing:1px}.brand strong span{font-size:8px;font-weight:600;display:block;letter-spacing:2.4px;margin-top:3px}.brand small{display:block;font-size:10px;color:var(--muted);margin-top:4px;letter-spacing:1px}.entity-picker{border:1px solid var(--line);background:#fafcfb;border-radius:10px;padding:12px 12px 2px;margin-bottom:30px}.entity-picker>small{font-size:10px;color:var(--muted);letter-spacing:1px}.entity-picker .v-field__input{font-size:12px;font-weight:600;padding:5px 0 7px;min-height:32px}.entity-picker .v-input__control{min-height:32px}.nav-caption{font-size:10px;letter-spacing:2px;color:#a0acab;padding:0 14px;margin-bottom:12px}nav button{width:100%;display:flex;align-items:center;border:0;color:#6e7b7d;background:transparent;padding:13px 15px;gap:14px;text-align:left;border-radius:8px;margin:4px 0;font-weight:500;font-size:13px;position:relative}nav button:hover{background:#f5f8f7}nav button.active{background:#eaf4f0;color:var(--teal);font-weight:700}nav button.active:before{content:'';width:3px;height:17px;position:absolute;left:0;top:15px;background:var(--teal);border-radius:2px}nav b{margin-left:auto;background:#e5ebe8;color:#77837e;border-radius:5px;min-width:19px;text-align:center;font-size:10px}nav button.active b{background:#d6e9de}.sidebar-bottom{margin-top:auto;padding-top:30px}.system-indicator{border-top:1px solid var(--line);padding:15px 5px;color:#94a09e;font-size:10px;display:flex;align-items:center;gap:7px}.system-indicator i,.green-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#48a381}.profile{display:flex;align-items:center;border-top:1px solid var(--line);gap:10px;padding:18px 4px}.avatar{width:34px;height:34px;border-radius:50%;background:#edf1ee;color:#668175;display:grid;place-items:center;font-size:12px}.profile strong{font-size:12px;display:block;max-width:125px;overflow:hidden;text-overflow:ellipsis}.profile small{font-size:10px;color:var(--muted)}.profile button{margin-left:auto;border:0;background:transparent;color:#9aa7a4}.workspace{margin-left:240px;min-height:100vh}.topbar{height:72px;background:rgba(255,255,255,.9);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;font-size:11px}.slash{margin:0 16px;color:#c2cbc8}.topbar-right{display:flex;align-items:center;gap:22px;color:#8b9793}.topbar-right button{border:0;background:transparent;color:#8b9793}.mode-badge{background:#f2f5f3;border:1px solid var(--line);padding:4px 7px;border-radius:4px;font-size:9px;letter-spacing:1px}main{max-width:1660px;margin:0 auto;padding:35px 38px 20px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.eyebrow{font-size:9px;color:#9ba9a4;font-weight:700;letter-spacing:2.4px;margin-bottom:10px}h1{font-size:28px;letter-spacing:-.7px;font-weight:650;line-height:1.35}h2{font-size:21px;font-weight:650}h3{font-size:15px;font-weight:650}.page-heading p{font-size:12px;color:#84928c;margin-top:9px}.heading-actions{display:flex;gap:10px;align-items:center}.heading-actions .v-btn{font-size:12px}.muted{color:#87948e}.text-sm{font-size:12px}.positive{color:#168563!important}.negative{color:#cf5557!important}.number{font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 21px 18px;position:relative;overflow:hidden}.kpi>span{font-size:12px;color:#809087}.kpi>span small{font-size:9px;background:#f1f4f2;color:#8e9b93;border-radius:3px;padding:2px 4px;margin-left:4px}.kpi>strong{display:block;font-size:29px;font-weight:600;line-height:1.3;letter-spacing:-1px;margin:17px 0 12px;font-variant-numeric:tabular-nums}.kpi p{font-size:10px;color:#98a49e;line-height:1.7}.kpi>.app-icon{position:absolute;right:20px;top:23px;color:#bcc9c2;width:18px}.kpi.featured{background:#16685b;border-color:#16685b;color:white}.kpi.featured>span{color:#c0d7cf}.kpi.featured p{color:#a8c9bc}.kpi.featured>.app-icon{color:#84b3a5}.kpi.featured>span small{background:#347f71;color:#cce2da}.overview-grid{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:20px;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:22px 23px;border-bottom:1px solid #eff2f0}.panel-heading small{font-size:10px;display:block;color:#91a095;margin-top:7px}.panel-heading p{font-size:11px;margin-top:8px;max-width:700px}.text-link{border:0;background:transparent;color:var(--teal);font-size:11px;padding:4px 0;text-align:left}.business-table{width:100%;border-collapse:collapse;font-size:12px}.business-table th{background:#fafcfb;padding:13px 20px;text-align:left;white-space:nowrap;color:#91a197;font-weight:500;font-size:10px;border-bottom:1px solid #f0f3f0}.business-table td{padding:20px;border-bottom:1px solid #f0f3f1;color:#576c60;vertical-align:middle;font-size:11px;line-height:1.65}.business-table td strong{font-weight:600;color:inherit;display:block}.business-table td small{display:block;font-size:9px;color:#a0ada3;line-height:1.8;margin-top:4px}.business-table tbody tr:last-child td{border-bottom:0}.business-table tbody tr:hover{background:#fcfefd}.projects-panel .business-table tr{cursor:pointer}.projects-panel .business-table th,.projects-panel .business-table td{padding-left:17px;padding-right:13px}.projects-panel .business-table td:first-child{max-width:260px}.status{display:inline-block;padding:4px 7px;line-height:1.5;font-size:9px;white-space:nowrap;color:#87968c;background:#f0f4f1;border-radius:5px}.status.success{color:#2c9270;background:#ecf6f0}.status.warning{color:#b39245;background:#fbf6e9}.status.danger{color:#c56568;background:#fceded}.status.info{color:#5e87a2;background:#edf4f8}.panel-footer{font-size:9px;padding:16px 20px;color:#a1ada5;background:#fcfdfc;border-top:1px solid #f0f3f1}.right-stack{display:grid;gap:20px}.attention .panel-heading{padding:22px 20px 15px;border:0}.dot{width:5px;height:5px;background:#afc5b7;border-radius:50%}.attention-row{display:flex;align-items:center;gap:12px;padding:18px 20px;border-top:1px solid #f3f5f3;cursor:pointer}.attention-icon{height:31px;width:31px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}.attention-icon .app-icon{width:16px}.amber{background:#fbf5e8;color:#c2a462}.red{background:#fceded;color:#cb7e7d}.gray{background:#f0f4f1;color:#94a797}.attention-row strong{font-size:11px;display:block;font-weight:500}.attention-row small{display:block;font-size:9px;color:#a6b0a8;margin-top:5px}.attention-row>span:last-child{font-size:12px;color:#a6b5aa;margin-left:auto}.share-card{border-radius:12px;background:#edf3ed;border:1px solid #e4ece4;padding:23px}.share-card .eyebrow{color:#99af9c;font-size:8px}.share-card h3{font-size:13px}.share-card>strong{display:block;font-size:25px;letter-spacing:-1px;margin:20px 0 12px;color:#486b4d;font-weight:550}.share-card p{font-size:10px;color:#91a18f;line-height:1.9}.share-card button{margin-top:15px;color:#6b886c}.principles{display:flex;justify-content:space-between;border:1px solid var(--line);background:#f8faf8;border-radius:9px;padding:18px 24px;margin-top:25px;font-size:10px;color:#8fa091;gap:8px}.principles span{display:flex;align-items:center;gap:9px}.main-footer{margin-top:40px;border-top:1px solid #e9eee8;padding:18px 0 0;display:flex;justify-content:space-between;color:#abb7ab;font-size:8px;letter-spacing:1.4px}.main-footer b{font-weight:400;margin-left:6px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:20px;font-size:11px;color:#8b9b8e}.search-field{max-width:330px}.search-field .v-field{background:white}.contract-card,.batch-card{margin-bottom:22px}.contract-code{font-size:9px;letter-spacing:.5px;color:#92a496;margin-bottom:8px}.contract-actions{display:flex;align-items:center;gap:10px}.contract-metrics{display:grid;grid-template-columns:repeat(4,1fr);padding:20px 25px;gap:18px}.contract-metrics small{display:block;color:#97a69b;font-size:10px;margin-bottom:7px}.contract-metrics strong{font-size:18px;font-weight:550}.milestone-strip{display:flex;background:#f9fbf8;padding:16px 24px;border-top:1px solid #edf2eb;border-bottom:1px solid #edf2eb;gap:40px;flex-wrap:wrap}.milestone-strip>div{border-left:2px solid #aac4ad;padding-left:12px}.milestone-strip span{font-size:10px;display:block;color:#718973}.milestone-strip strong{font-size:12px;display:block;margin:4px 0}.milestone-strip small{display:block;font-size:9px;color:#9daa9c}.notice{font-size:11px;color:#92753b;background:#fff9ea;border:1px solid #ece2c6;padding:13px 18px;border-radius:8px;margin-bottom:24px;line-height:1.8;display:flex;align-items:center;gap:12px}.notice.subtle{color:#6b826e;background:#edf4ed;border-color:#dfeadf;display:block}.payment-stats{display:flex;gap:35px;font-size:12px;color:#8fa18f;margin-bottom:22px}.payment-stats b{font-size:20px;font-weight:500;color:#3f6047;margin-left:8px}.approval-chain{display:flex;flex-direction:column;gap:5px}.approval-chain span{font-size:10px;color:#a2aea4}.approval-chain .done{color:#43a077}.approval-chain .current{color:#bd9955;font-weight:600}.batch-total{display:flex;gap:60px;padding:22px;background:#f6faf5;border-bottom:1px solid #e6eee5;align-items:center}.batch-total small{display:block;color:#94a58f;font-size:10px;margin-bottom:7px}.batch-total strong{font-size:24px;font-weight:600;color:var(--teal)}.batch-total b{font-size:15px;font-weight:550}.permission-tag{font-size:9px;padding:3px 5px;background:#f1f5ef;display:inline-block;margin:3px;color:#8b9b85;border-radius:3px}.approval-config{padding:25px;display:flex;gap:40px;align-items:center;flex-wrap:wrap}.approval-config>div{display:flex;gap:12px;align-items:center}.approval-config strong{font-size:12px}.approval-config small{font-size:10px;color:#a0ad9b}.step-index{height:25px;width:25px;border-radius:50%;background:#eaf2e6;color:#79a069;display:grid;place-items:center;font-size:10px;flex-shrink:0}.mono{font-family:ui-monospace,monospace}.audit-detail{max-width:360px;overflow-wrap:anywhere;font-size:9px!important}.empty{padding:50px 20px!important;text-align:center;color:#97a891!important;font-size:12px}.form-card{border-radius:14px!important}.form-card>.v-card-title{display:flex;justify-content:space-between;align-items:center;padding:25px 28px 18px;border-bottom:1px solid var(--line)}.form-card .v-card-title .eyebrow{display:block;font-size:8px;line-height:1.6}.form-card .v-card-text{padding:24px 28px!important}.form-card .v-card-actions{padding:16px 25px!important;border-top:1px solid var(--line)}.form-card .v-card-actions>span{font-size:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 18px}.form-grid .wide{grid-column:1/-1}.form-hint{font-size:12px;line-height:1.8;color:#8e9b87;margin-bottom:20px;background:#f6f8f3;border-radius:7px;padding:13px}.form-error{font-size:12px;color:#bb4a4d;background:#fff0ef;border-radius:7px;padding:12px;margin-top:15px}.form-section-heading{display:flex;align-items:center;justify-content:space-between;margin:15px 0 12px}.milestone-form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 10px;align-items:center;border-top:1px solid var(--line);padding-top:15px}.milestone-form>:nth-child(4){grid-column:1/3}.approval-form{display:flex;align-items:center;gap:12px;margin-bottom:15px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:26px 0}.detail-grid small{display:block;color:#9dad94;font-size:11px;margin-bottom:6px}.detail-grid strong{font-size:13px;font-weight:500}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;padding:10vh 12vw;gap:10vw;align-items:center;background:#f4f7f3}.login-brand .large{width:72px;height:72px;border-radius:18px;font-size:50px;line-height:72px;margin-bottom:45px}.login-brand .eyebrow{color:#8aa48a;font-size:10px}.login-brand h1{font-size:40px;line-height:1.5;margin-top:20px;color:#2b4b36}.login-brand p{margin-top:20px;font-size:13px;color:#92a18d}.login-note{margin-top:55px;font-size:10px;color:#a1af99}.login-card{padding:36px!important;border:1px solid #e4eade;border-radius:16px!important;min-width:340px}.login-card h2{margin-bottom:12px}.login-card>p{font-size:11px}.login-hint{font-size:10px!important;color:#a0aa96;line-height:1.8;margin-top:25px}
@media(min-width:1600px){.kpi>strong{font-size:34px}.overview-grid{grid-template-columns:minmax(0,1fr) 320px}.business-table td{font-size:12px}}@media(max-width:1250px){.sidebar{width:208px;padding-left:12px;padding-right:12px}.workspace{margin-left:208px}main{padding:28px 24px}.topbar{padding:0 24px}.overview-grid{grid-template-columns:1fr}.right-stack{grid-template-columns:1fr 1fr}.kpi>strong{font-size:24px}.kpi{padding:19px 16px}.panel{overflow-x:auto}.page-heading{align-items:flex-start}.heading-actions{flex-wrap:wrap;justify-content:flex-end}.principles{flex-wrap:wrap}.business-table{min-width:700px}}@media(max-width:820px){.sidebar{width:72px;padding:20px 8px}.brand{margin:0 auto 30px}.brand>div:last-child,.entity-picker,.nav-caption,nav button span,nav b,.system-indicator,.profile>div:not(.avatar),.profile>button{display:none}nav button{padding:14px 17px}.profile{padding:16px 10px}.workspace{margin-left:72px}.topbar{height:60px;padding:0 18px}.topbar-right{gap:10px;font-size:9px}.topbar-right>span:nth-child(2){display:none}main{padding:24px 16px}.page-heading{flex-direction:column}h1{font-size:25px}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:12px}.right-stack{grid-template-columns:1fr}.contract-metrics{grid-template-columns:1fr 1fr}.contract-actions{flex-wrap:wrap}.contract-card .panel-heading{align-items:flex-start}.principles{gap:15px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.login-shell{grid-template-columns:1fr;padding:35px}.login-brand{display:none}.login-card{min-width:0}.approval-form{flex-wrap:wrap}.approval-config{gap:25px}.main-footer{letter-spacing:0;font-size:8px}.heading-actions .v-btn{font-size:11px}.notice{font-size:10px}.contract-code{overflow-wrap:anywhere}.batch-total{gap:30px}}

/* Floating labels must not inherit the pale outline color. */
.v-field-label {color:#52645e!important;opacity:1!important}
