:root{--ink:#18373c;--muted:#7b8c91;--teal:#14796b;--line:#e5ebeb;--bg:#f4f7f6}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg);font-size:14px}[v-cloak]{display:none}a{color:var(--teal);text-decoration:none}button{cursor:pointer;font-family:inherit}.muted{color:var(--muted);line-height:1.7}.small,small{font-size:12px}.wide{width:100%}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--teal)}h1,h2,h3,p{margin-top:0}h1{font-size:30px;font-weight:650;letter-spacing:-.7px;margin:9px 0 10px}h2{font-size:23px}h3{font-size:16px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;background:#d7efe5;color:#126759;border-radius:11px;font-size:24px;font-weight:700;width:43px;height:43px}.sidebar{width:232px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:30px 18px;display:flex;flex-direction:column;z-index:30;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;font-size:19px;font-weight:700;padding:0 8px 35px}.brand div span{display:block;font-size:9px;letter-spacing:2px;color:#8ba19f;margin-top:5px}.nav-label{font-size:11px;color:#9aabaa;padding:4px 14px 12px}.nav-item{display:flex;align-items:center;width:100%;border:0;background:none;color:#728386;padding:12px 14px;margin:2px 0;border-radius:8px;font-size:14px;text-align:left;gap:12px}.nav-item i{font-size:18px}.nav-item.active{background:#e9f4ef;color:#116c5d;font-weight:600}.nav-item:hover{background:#f3f7f5}.nav-badge{margin-left:auto;background:#d7843b;color:white;border-radius:8px;padding:1px 6px;font-size:10px}.sidebar-bottom{margin-top:auto;padding:32px 12px 0;font-size:12px;color:#77928a;line-height:2}.sidebar-bottom small{color:#a3b0ad}.online-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#25a581;margin-right:6px}.online-dot.amber{background:#da9c39}.main{margin-left:232px}.topbar{height:82px;background:#fff;border-bottom:1px solid var(--line);padding:0 36px;display:flex;justify-content:space-between;align-items:center}.breadcrumb{display:flex;align-items:center;gap:18px;color:#8f9d9c;font-size:12px}.breadcrumb strong{font-weight:500;color:#304f51}.slash{color:#c7d0ce}.user-area{display:flex;gap:12px;align-items:center}.avatar{width:34px;height:34px;background:#f0eadd;color:#9d864b;display:flex;align-items:center;justify-content:center;border-radius:50%}.user-name{font-size:12px}.user-name small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.content{padding:32px 36px 50px;max-width:1800px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-heading p{margin-bottom:0}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.stat-card{background:white;border:1px solid var(--line);border-radius:12px;padding:24px}.stat-card>span{font-size:12px;color:#718982}.stat-card strong{display:block;font-size:38px;font-weight:600;margin:12px 0}.stat-card strong small{font-size:12px;margin-left:8px;color:#879993;font-weight:400}.stat-note{font-size:11px;color:#8aa096}.warning{color:#c88a25!important}.dashboard-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;margin-bottom:24px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 24px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel-head h3{margin:0}.stage-row{display:flex;align-items:center;gap:16px;margin:15px 0;font-size:12px}.stage-row>span{width:88px;color:#738a85}.stage-track{flex:1;background:#f1f5f2;height:6px;border-radius:6px;overflow:hidden}.stage-track>div{height:100%;background:#77ab96;border-radius:6px}.stage-row b{width:20px;text-align:right;font-size:12px}.empty-state{text-align:center;color:#8ca098;padding:38px 0}.empty-state i{font-size:36px;color:#a1c3b2;margin-bottom:16px}.empty-state p{margin-bottom:8px}.reminder-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #f0f3f1}.reminder-row>div{flex:1}.reminder-row p{margin:5px 0 0;font-size:12px;color:var(--muted)}.reminder-icon{background:#faf3e8;color:#b59753;width:35px;height:35px;display:flex;align-items:center;justify-content:center;border-radius:8px}.toolbar{display:flex;align-items:center;gap:15px;margin-bottom:20px;flex-wrap:wrap}.toolbar .search-input{width:330px}.toolbar .el-button:last-child{margin-left:auto}.el-button--primary{background:var(--teal);border-color:var(--teal)}.el-button--primary:hover,.el-button--primary:focus{background:#26947f;border-color:#26947f}.el-button--text{color:var(--teal)}.el-table{color:#405d5c;font-size:12px}.el-table th.el-table__cell{background:#f8faf8;color:#8a9d98;font-size:11px;font-weight:500}.el-table td.el-table__cell{padding:14px 0;border-bottom:1px solid #eff3f0}.el-table::before{background:var(--line)}.el-pagination{margin-top:22px;text-align:right}.el-tag{border-radius:5px}.clickable{cursor:pointer}.el-tabs__active-bar{background:var(--teal)}.el-tabs__item.is-active,.el-tabs__item:hover{color:var(--teal)}.el-input__inner:focus,.el-textarea__inner:focus{border-color:var(--teal)}.el-dialog{border-radius:12px}.el-dialog__body{padding:20px 28px;max-height:70vh;overflow-y:auto}.el-form-item{margin-bottom:20px}.el-form--label-top .el-form-item__label{padding-bottom:5px;line-height:24px;font-size:12px}.form-tip{margin-bottom:18px}.drawer-content{padding:30px}.drawer-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:20px}.drawer-heading h2{margin:10px 0}.detail-summary{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px;padding:20px;background:#f3f7f4;border-radius:10px;margin:20px 0}.detail-summary small{color:#879b91}.detail-summary p{margin:8px 0}.detail-summary b{display:block;margin-top:10px;font-size:20px}.action-bar{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.action-bar .el-button+.el-button{margin-left:0}.section-head{display:flex;align-items:center;gap:14px;padding:12px 0 20px}.file-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.file-card{border:1px solid var(--line);padding:16px;border-radius:8px;display:flex;align-items:center;gap:12px;min-width:0}.file-card>i:first-child{font-size:24px}.file-card>div{flex:1;min-width:0}.file-card span,.file-card small{display:block;color:var(--muted);font-size:11px;margin-top:6px;overflow:hidden;text-overflow:ellipsis}.part-row{display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid var(--line)}.part-row p{margin:5px 0}.accept-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin:20px 0}.accept-card{padding:20px;background:#f5f8f5;border:1px solid var(--line);border-radius:8px}.accept-card small{color:#87998f}.accept-card h3{margin:12px 0}.accept-card p{font-size:12px;color:#6a8175;margin:0}.addendum{padding:14px;background:#f8f6ef;margin:12px 0}.addendum small{display:block;margin-top:8px}pre{white-space:pre-wrap;word-break:break-word;background:#f6f8f6;padding:16px;border-radius:8px;font-size:11px;max-height:320px;overflow:auto}.quote-line{border:1px solid var(--line);border-radius:8px;padding:16px;margin:16px 0}.quote-line-head{display:flex;justify-content:space-between;align-items:center}.quote-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}.quote-fields .el-select,.quote-fields .el-input-number{width:100%}.quote-flags{padding-bottom:15px;display:flex;gap:12px;flex-wrap:wrap}.quote-flags .el-checkbox{margin-right:0}.quote-total{margin-right:20px;color:var(--teal)}.qr-preview{text-align:center}.qr-preview img{width:260px;max-width:100%}.qr-preview p{color:var(--muted);font-size:12px}.settlement-total{background:var(--ink);color:white;border-radius:12px;padding:24px;margin:20px 0}.settlement-total strong{font-size:34px;display:block;margin:10px 0}.settlement-total p{font-size:12px;color:#abc8bf;margin-bottom:0}.scan-card{max-width:540px;margin:30px auto;background:white;border:1px solid var(--line);border-radius:18px;padding:38px;text-align:center}.scan-card h1{font-size:42px;margin:20px 0 12px}.scan-state{padding:14px;background:#f1f7f3;border-radius:8px;margin:25px 0}.scan-time{font-size:12px;color:#7c9188;line-height:2;margin:20px 0}.clock-button{height:60px;font-size:20px;border-radius:10px}.scan-empty{text-align:center;padding:70px 20px}.scan-empty>i{font-size:60px;color:#8dbda6;margin-bottom:22px}.scan-empty p{line-height:2;color:var(--muted)}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.15fr 1fr;background:white}.login-brand{background:#163d3d;color:#e0eee7;padding:65px 12%;position:relative;display:flex;flex-direction:column;justify-content:center}.login-brand>.brand-mark{margin-bottom:28px}.login-brand>span{font-size:11px;color:#83b4a3;letter-spacing:2px}.login-brand h1{font-size:48px;line-height:1.5;font-weight:500;margin:40px 0 24px}.login-brand p{font-size:13px;color:#9bbdb0}.login-caption{position:absolute;bottom:40px;font-size:11px;color:#74998b}.login-panel{padding:70px 14%;display:flex;flex-direction:column;justify-content:center}.login-panel h2{margin:18px 0 12px;font-size:28px}.login-panel .el-form{margin-top:30px}.login-panel .wide{height:46px}.mobile-toggle{display:none}.el-alert{margin:8px 0}.el-empty{padding:28px 0}.el-drawer__body{overflow-y:auto}.el-timeline{padding-left:12px;margin-top:22px}.el-timeline-item p{font-size:12px;color:#809487;margin-top:8px}
@media(max-width:1100px){.sidebar{width:200px;padding:25px 12px}.main{margin-left:200px}.content{padding:25px 22px}.topbar{padding:0 22px}.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.login-brand h1{font-size:38px}}@media(max-width:700px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:240px}.sidebar.open{transform:translateX(0)}.scrim{position:fixed;inset:0;background:#0006;z-index:25}.main{margin-left:0}.topbar{height:62px;padding:0 15px}.breadcrumb{gap:10px}.breadcrumb>span{display:none}.mobile-toggle{display:block;background:none;border:0;font-size:22px;color:var(--ink);padding:0}.user-name{max-width:100px;overflow:hidden;white-space:nowrap}.user-area{gap:8px}.content{padding:22px 15px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:20px;gap:16px}h1{font-size:25px}.stat-grid{gap:10px}.stat-card{padding:18px}.stat-card strong{font-size:30px}.stat-note{font-size:10px}.panel{padding:16px 12px;border-radius:10px}.dashboard-grid{gap:16px;margin-bottom:16px}.panel-head h3{font-size:14px}.toolbar .search-input{width:100%}.toolbar{gap:10px}.drawer-content{padding:20px 15px}.detail-summary{grid-template-columns:1fr 1fr;gap:14px;padding:16px}.detail-summary>div:first-child{grid-column:span 2}.drawer-heading h2{font-size:21px}.file-grid{grid-template-columns:1fr}.quote-fields{grid-template-columns:1fr}.quote-flags{display:block}.quote-flags .el-checkbox{margin:8px}.el-dialog__body{padding:15px 20px}.quote-total{display:block;margin:0 0 15px}.login-wrap{display:block}.login-brand{min-height:220px;padding:35px}.login-brand h1{font-size:25px;margin:15px 0}.login-brand>.brand-mark,.login-caption,.login-brand p{display:none}.login-panel{padding:35px 30px}.login-panel .el-form{margin-top:18px}.scan-card{padding:28px 22px;margin:15px auto}.scan-card h1{font-size:36px}.el-date-editor--daterange.el-input__inner{width:100%}.heading-actions{display:flex;flex-wrap:wrap;gap:8px}.heading-actions .el-button{margin-left:0}}

/* V1.1 mobile roles and item evidence */
.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}.quick-grid button{min-height:100px;border:1px solid #cbded7;background:#fff;color:#17463b;border-radius:16px;padding:20px;font-size:21px;font-weight:600;cursor:pointer}.quick-grid button:first-child{background:#17463b;color:white}.job-card{padding:20px;border:1px solid #e0e8e4;border-radius:14px;background:white;margin:12px 0}.job-card>b{font-size:20px}.job-card>.el-tag{float:right}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:15px}.photo-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.photo-thumbs img{height:110px;width:110px;object-fit:cover;border-radius:8px}.photo-upload{display:inline-block;background:#e9f2ed;color:#17463b;padding:12px;border-radius:8px;cursor:pointer}.photo-upload input{display:none}.analytics-toolbar{flex-wrap:wrap;gap:10px}.analytics-toolbar>.el-input{max-width:240px}
@media(max-width:700px){.quick-grid{gap:10px}.quick-grid button{padding:14px;font-size:19px}.simple-home h1{font-size:27px}.action-bar .el-button{min-height:46px;font-size:16px;margin:5px!important}.drawer-content{padding:16px!important}.quote-fields{grid-template-columns:1fr!important}.job-card{padding:16px}.photo-thumbs img{width:85px;height:85px}.el-input__inner{font-size:16px}.el-dialog__body{padding:16px}.detail-summary{display:block!important}.content{padding:18px!important}}

.stage-hint{margin:16px 0}.action-bar{position:sticky;top:0;z-index:4;background:#fff;padding:14px 0;display:flex;flex-wrap:wrap;gap:8px}.action-bar .el-button{margin-left:0}@media(max-width:700px){.action-bar .el-button{min-height:44px;font-size:15px;flex:1 1 45%}.quote-fields{grid-template-columns:1fr!important}.quote-line .el-select,.quote-line .el-input-number{width:100%}.drawer-content{padding:16px}}

.captain-home .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.captain-home .quick-grid button{min-height:110px;font-size:23px}
