:root{font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#17212b;background:#f4f5f7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#eef2f4}.login-panel{width:min(420px,100%);display:grid;gap:14px;padding:24px;border:1px solid #d9e1e8;border-radius:8px;background:#fff;box-shadow:0 16px 42px #17212b24}.login-panel--status{min-height:144px;align-content:center}.login-panel__heading{display:flex;align-items:center;gap:12px;margin-bottom:4px;color:#17212b}.login-panel__heading svg{color:#1f7a8c}.login-panel h1,.login-panel p{margin:0}.login-panel h1{font-size:22px}.login-panel p{margin-top:3px;color:#627080;font-size:13px}.login-panel label{display:grid;gap:6px;color:#5e6c7b;font-size:12px}.login-panel input{height:40px;min-width:0;border:1px solid #d6dde5;border-radius:6px;background:#fff;color:#17212b;padding:0 10px}.login-panel .login-remember{display:flex;align-items:center;gap:8px;width:fit-content;color:#334a58;font-size:14px}.login-panel .login-remember input{width:18px;height:18px;margin:0;padding:0;accent-color:#1f7a8c}.login-panel .error-line{margin-bottom:0}.wecom-login-button{min-width:0;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:9px 12px;border:1px solid #1f7a8c;border-radius:6px;background:#fff;color:#176474;font-weight:700;line-height:1.4;text-align:center;text-decoration:none}.wecom-login-button:hover{background:#eef8fa}.wecom-login-button:focus-visible{outline:3px solid rgba(31,122,140,.24);outline-offset:2px}.wecom-login-button svg{flex:0 0 auto}.wecom-login-button span{min-width:0;overflow-wrap:anywhere}.login-divider{min-width:0;display:flex;align-items:center;gap:10px;color:#71808e;font-size:12px;text-align:center}.login-divider:before,.login-divider:after{content:"";min-width:0;height:1px;flex:1 1 0;background:#dfe5eb}.login-divider span{min-width:0;overflow-wrap:anywhere}.login-button{justify-content:center;width:100%}button,input,select{font:inherit}button{cursor:pointer}.base-city-editor{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:8px 0 12px;padding:12px;border:1px solid #b7d5df;border-radius:8px;background:#f1f8fa}.base-city-editor label{display:grid;gap:6px;color:#334a58;font-size:13px}.base-city-editor select{min-width:180px;min-height:36px}.temporary-password-notice{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 12px 12px;padding:12px;border:1px solid #b8dce3;border-radius:6px;background:#eef8fa}.temporary-password-notice__content{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;color:#334a58;font-size:13px;line-height:1.45}.temporary-password-notice__content strong{color:#17212b}.temporary-password-notice output{padding:4px 8px;border:1px solid #9ec8d2;border-radius:4px;background:#fff;color:#17212b;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:14px;font-weight:700;letter-spacing:0;overflow-wrap:anywhere}.temporary-password-notice__actions{display:flex;flex:0 0 auto;gap:8px}.mobile-only,.mobile-bottom-nav,.mobile-more-menu,.mobile-city-list-button,.desktop-city-list-button,.sync-run-cards,.details-card-list,.mobile-record-card{display:none}.shell,.map-stage,.map-canvas{min-height:100vh}.map-stage{position:relative;overflow:hidden;background:#e7edf1}.map-canvas{position:absolute;inset:0}.topbar{position:absolute;top:18px;left:18px;right:18px;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid rgba(22,32,42,.1);border-radius:8px;background:#ffffffeb;box-shadow:0 10px 28px #17212b1f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar>div:first-child{flex:0 0 auto;min-width:0}.topbar h1,.topbar p,.panel-heading h2,.panel-heading h3{margin:0}.topbar h1{font-size:20px;font-weight:720}.topbar p{margin-top:3px;color:#627080;font-size:13px;white-space:nowrap}.topbar__controls{display:flex;flex:1 1 auto;min-width:0;align-items:center;gap:8px;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.topbar__controls::-webkit-scrollbar{display:none}.topbar__controls>*{flex:0 0 auto}.date-control,.search-box,.count-pill,.type-chip{display:inline-flex;align-items:center;gap:7px}.date-control,.search-box{height:38px;padding:0 10px;border:1px solid #d6dde5;border-radius:6px;background:#fff}.date-control input,.date-control select,.search-box input{border:0;outline:0;background:transparent;color:#17212b}.date-control select{min-width:94px}.map-employee-search input{width:92px}.icon-button{width:38px;height:38px;display:inline-grid;place-items:center;border:1px solid #d6dde5;border-radius:6px;background:#17212b;color:#fff}.nav-button,.primary-button{height:38px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;border:1px solid #d6dde5;border-radius:6px;background:#fff;color:#17212b}.primary-button{border-color:#17212b;background:#17212b;color:#fff}.primary-button:disabled,.icon-button:disabled,.nav-button:disabled,.text-button:disabled{cursor:not-allowed;opacity:.72}.primary-button:disabled,.text-button:disabled{border-color:#b7c1ca;background:#e3e8ec;color:#65727f;box-shadow:none}.page-navigation,.page-navigation__desktop{display:contents}.page-navigation__button{flex:0 0 auto}.page-navigation__button--active{border-color:#1f7a8c;background:#e7f3f5;color:#135767;font-weight:700}.page-navigation__mobile{display:none}.city-panel,.detail-panel{position:absolute;z-index:9;top:94px;bottom:18px;overflow:hidden;border:1px solid rgba(22,32,42,.1);border-radius:8px;background:#fffffff0;box-shadow:0 12px 32px #17212b24;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.city-panel{left:18px;width:320px;padding:12px;display:flex;flex-direction:column}.detail-panel{right:18px;width:380px;display:flex;flex-direction:column;padding:16px}.desktop-city-list-button{position:absolute;top:94px;right:64px;z-index:12;height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;border:1px solid rgba(22,32,42,.14);border-radius:6px;background:#fffffff0;color:#17212b;box-shadow:0 10px 24px #17212b24;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-weight:700}.detail-panel__body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding-right:2px}.city-list,.employee-list{margin-top:12px;overflow:auto}.city-list{flex:1;min-height:0}.map-filter-form{display:grid;gap:9px}.map-filter-form label{display:grid;gap:5px;color:#5e6c7b;font-size:12px}.map-filter-form input,.map-filter-form select{height:34px;min-width:0;border:1px solid #d6dde5;border-radius:6px;background:#fff;color:#17212b;padding:0 9px}.map-filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.map-filter-actions .primary-button,.map-filter-actions .nav-button{justify-content:center}.city-row{width:100%;height:42px;display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;padding:0 10px;border:1px solid transparent;border-radius:6px;background:#f5f7f9;color:#17212b;text-align:left}.city-row.is-active,.employee-row.is-active{border-color:#1f7a8c;background:#eaf6f8}.city-row strong{min-width:30px;height:24px;display:inline-grid;place-items:center;border-radius:12px;background:#17212b;color:#fff;font-size:12px}.city-index-list{display:grid;gap:8px;margin-top:12px}.city-index-row{width:100%;display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;padding:10px;border:1px solid #e2e7ed;border-radius:8px;background:#fff;color:#17212b;text-align:left}.city-index-row.is-active{border-color:#1f7a8c;background:#eaf6f8;box-shadow:0 0 0 3px #1f7a8c1f}.city-index-row__count{width:32px;height:32px;display:inline-grid;place-items:center;border-radius:50%;background:#1f7a8c;color:#fff;font-size:13px;font-weight:800}.city-index-row__main{min-width:0}.city-index-row__main strong,.city-index-row__main small,.city-index-row__main em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.city-index-row__main strong{font-size:15px}.city-index-row__main small{margin-top:3px;color:#1f7a8c;font-size:12px;font-weight:700}.city-index-row__main em{margin-top:3px;color:#617080;font-size:12px;font-style:normal}.selected-city-employees{margin-top:14px;padding-top:12px;border-top:1px solid #e0e6ec}.selected-city-employees__heading{margin-bottom:2px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.panel-heading__title{min-width:0;display:flex;align-items:flex-start;gap:8px}.eyebrow{display:block;margin-bottom:4px;color:#6b7886;font-size:12px}.panel-heading h2{font-size:22px}.panel-heading h3{font-size:18px}.panel-heading__actions{display:flex;flex-shrink:0;align-items:center;gap:8px}.count-pill,.type-chip{min-height:26px;padding:0 8px;border-radius:13px;background:#edf1f4;color:#31404f;font-size:12px;font-style:normal;white-space:nowrap}.panel-close-button,.panel-back-button{width:30px;height:30px;display:inline-grid;place-items:center;border:1px solid #d6dde5;border-radius:6px;background:#fff;color:#31404f}.panel-close-button:hover,.panel-back-button:hover{border-color:#1f7a8c;color:#1f7a8c}.panel-back-button{flex:0 0 auto}.employee-list{flex:1;min-height:0}.detail-panel__body .employee-list{flex:none;min-height:auto;overflow:visible}.employee-row{width:100%;display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center;margin-bottom:8px;padding:10px;border:1px solid #e2e7ed;border-radius:8px;background:#fff;color:#17212b;text-align:left}.employee-row em{grid-column:2 / 4;color:#617080;font-size:12px;font-style:normal;line-height:1.45}.employee-row__main{min-width:0}.employee-row__main strong,.employee-row__main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.employee-row__main small{margin-top:2px;color:#7a8794;font-size:12px}.avatar{width:34px;height:34px;display:inline-grid;place-items:center;border-radius:50%;background:#1f7a8c;color:#fff;font-weight:700}.trip-drawer{margin-top:12px;padding-top:12px;border-top:1px solid #e0e6ec}.detail-panel__body>.trip-drawer:first-child{margin-top:0;padding-top:0;border-top:0}.trip-item{margin-top:8px;padding:10px;border-radius:8px;background:#f7f9fb}.trip-item__head{display:flex;align-items:center;justify-content:space-between;gap:10px}.trip-item__head strong{min-width:0;overflow-wrap:anywhere;text-align:right}.trip-item p,.trip-item small,.muted{color:#5e6c7b}.trip-item p{margin:8px 0 3px}.trip-meta-grid{display:grid;grid-template-columns:1fr;gap:6px;margin-top:10px;padding:10px;border:1px solid #e5eaf0;border-radius:8px;background:#f8fafb;color:#5e6c7b;font-size:12px}.trip-section-title{margin:12px 0 4px;color:#263442;font-size:13px}.trip-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 5px}.trip-tags span{min-height:22px;display:inline-flex;align-items:center;padding:0 7px;border-radius:11px;background:#edf1f4;color:#31404f;font-size:12px}.muted{margin:10px 0 0;font-size:13px}.raw-detail-list{display:grid;gap:10px;margin-top:10px}.raw-detail-section{border:1px solid #dfe5eb;border-radius:8px;background:#fff;overflow:hidden}.raw-detail-section h4{margin:0;padding:8px 10px;border-bottom:1px solid #e5eaf0;background:#f2f5f7;color:#263442;font-size:13px}.raw-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0}.raw-field{min-width:0;padding:8px 10px;border-right:1px solid #edf1f4;border-bottom:1px solid #edf1f4}.raw-field--wide{grid-column:1 / -1;border-right:0}.raw-field dt{margin:0 0 4px;color:#6b7886;font-size:11px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}.raw-field dd{margin:0;color:#17212b;font-size:12px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.raw-array{display:grid;gap:8px}.raw-array-item{border:1px solid #e5eaf0;border-radius:6px;overflow:hidden}.raw-array-title{padding:6px 8px;background:#f7f9fb;color:#6b7886;font-size:11px;font-weight:650}.raw-empty,.raw-scalar{display:block;margin:0;padding:8px 10px;color:#5e6c7b;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.error-line{margin-bottom:10px;padding:9px 10px;border:1px solid #f3b7b7;border-radius:6px;background:#fff2f2;color:#9f2f2f;font-size:13px}.notice-line{margin-top:12px;padding:9px 10px;border:1px solid #b9dec6;border-radius:6px;background:#f0fbf4;color:#27633b;font-size:13px}.admin-shell{min-height:100vh;background:#f4f5f7}.admin-header{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px;border-bottom:1px solid #dfe5eb;background:#fff}.admin-header h1,.admin-header p{margin:0}.admin-header h1{font-size:22px}.admin-header p{margin-top:4px;color:#627080;font-size:13px}.admin-header>.topbar__controls{justify-content:flex-end}.admin-main{display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(300px,.9fr);gap:14px;padding:18px 22px 24px}.governance-page,.projects-page{min-height:100vh;padding-bottom:24px;background:#f4f5f7}.governance-page>.error-line,.governance-page>.success-line,.projects-page>.error-line,.projects-page>.success-line{margin:14px 22px 0}.governance-page .admin-card-grid,.projects-page .admin-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 22px 0}.governance-page .admin-card,.projects-page .admin-card{min-width:0;margin:14px 22px 0;padding:18px;border:1px solid #dfe5eb;border-radius:8px;background:#fff}.governance-page .admin-card-grid>.admin-card,.projects-page .admin-card-grid>.admin-card{margin:0}.governance-page .admin-card h2,.projects-page .admin-card h2{margin:0;color:#17212b;font-size:19px}.governance-page .admin-card>p,.projects-page .admin-card>p{margin:8px 0 0;color:#5e6c7b;font-size:13px;line-height:1.5}.governance-page .admin-card-grid>form.admin-card,.projects-page .admin-card-grid>form.admin-card,.governance-page .admin-card>form:not(.base-city-editor){display:grid;gap:12px;align-content:start}.governance-page .admin-card>label,.projects-page .admin-card>label,.governance-page .admin-card>form:not(.base-city-editor)>label{min-width:0;display:grid;gap:6px;color:#526170;font-size:13px;line-height:1.4}.governance-page .admin-card input:not([type=checkbox]),.governance-page .admin-card select,.projects-page .admin-card input,.projects-page .admin-card select{box-sizing:border-box;width:100%;min-width:0;min-height:40px;padding:0 10px;border:1px solid #cbd5df;border-radius:6px;background:#fff;color:#17212b}.governance-page .admin-card fieldset{min-width:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px 12px;margin:0;padding:10px;border:1px solid #dfe5eb;border-radius:6px}.governance-page .admin-card legend{padding:0 4px;color:#526170;font-size:12px}.governance-page .admin-card fieldset label{min-width:0;display:flex;align-items:center;gap:7px;color:#334a58;font-size:13px}.governance-page .admin-card fieldset input[type=checkbox]{width:17px;height:17px;margin:0;flex:0 0 auto}.governance-page .text-button,.projects-page .text-button{min-height:38px;padding:0 12px;border:1px solid #cbd5df;border-radius:6px;background:#fff;color:#334a58}.governance-page .text-button[aria-pressed=true]{border-color:#1f7a8c;background:#eaf6f8;color:#176474}.governance-page .admin-row,.projects-page .admin-row{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:13px 0;border-top:1px solid #e5eaf0}.projects-page .admin-row>div{min-width:0;display:grid;gap:5px}.projects-page .admin-row strong,.projects-page .admin-row span{overflow-wrap:anywhere}.projects-page .admin-row span{color:#5e6c7b;font-size:13px;line-height:1.45}.projects-page .pending-order-group{border-top:1px solid #e5eaf0}.projects-page .pending-order-group .admin-row{border-top:0}.projects-page .pending-order-toolbar,.projects-page .project-cost-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.8fr) auto auto;gap:10px;align-items:end;margin-top:12px}.projects-page .pending-order-toolbar label,.projects-page .project-cost-toolbar label{display:grid;gap:6px;color:#5e6c7b;font-size:12px}.projects-page .pending-order-toolbar input,.projects-page .project-cost-toolbar input{min-height:38px;min-width:0;padding:0 10px;border:1px solid #cbd5df;border-radius:6px;background:#fff;color:#17212b;font:inherit}.projects-page .pending-order-toolbar>span,.projects-page .project-cost-toolbar>span,.projects-page .projects-pagination>span{color:#5e6c7b;font-size:13px;white-space:nowrap}.projects-page .projects-export-button,.governance-page .governance-export-button,.sync-runs-export-button{align-self:end;justify-content:center;min-height:38px}.projects-page .projects-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}.projects-page .projects-pagination .icon-button{width:36px;height:36px}.projects-page .pending-order-records{padding:0 0 13px}.projects-page .pending-order-records summary{width:fit-content;cursor:pointer;color:#176474;font-size:13px}.projects-page .pending-order-record-list{display:grid;gap:7px;margin-top:10px;padding:10px;border-left:2px solid #c8e1e6;background:#f7f9fb}.projects-page .pending-order-record-list>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;color:#526170;font-size:12px;line-height:1.45}.projects-page .project-assignment-audit__header,.projects-page .project-assignment-audit__item summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.projects-page .project-assignment-audit__header .icon-button{width:36px;height:36px}.projects-page .project-assignment-audit__item{border-top:1px solid #e5eaf0}.projects-page .project-assignment-audit__item summary{min-height:58px;padding:10px 0;cursor:pointer;list-style:none}.projects-page .project-assignment-audit__item summary::-webkit-details-marker{display:none}.projects-page .project-assignment-audit__summary{min-width:0;display:grid;gap:4px}.projects-page .project-assignment-audit__summary strong{color:#263442;font-size:14px}.projects-page .project-assignment-audit__summary span,.projects-page .project-assignment-audit__item time{color:#5e6c7b;font-size:12px}.projects-page .project-assignment-audit__item time{flex:0 0 auto;white-space:nowrap}.projects-page .project-assignment-audit__item pre{overflow:auto;margin:0 0 12px;padding:10px 12px;border-left:3px solid #c8e1e6;background:#f7f9fb;color:#334a58;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.governance-page .admin-row>.topbar__controls,.governance-page .governance-filter-bar{min-width:auto;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;overflow:visible}.governance-page .governance-table__actions{min-width:auto;flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end;overflow:visible}.governance-page .governance-list-toolbar,.governance-page .governance-pagination{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-top:12px}.governance-page .governance-list-toolbar label{min-width:min(360px,100%);display:grid;gap:6px;color:#5e6c7b;font-size:12px}.governance-page .governance-list-toolbar input{min-height:38px;padding:0 10px;border:1px solid #cbd5df;border-radius:6px;background:#fff;color:#17212b;font:inherit}.governance-page .governance-list-toolbar>span,.governance-page .governance-pagination>span{color:#5e6c7b;font-size:13px;white-space:nowrap}.governance-page .governance-pagination{justify-content:flex-end;align-items:center}.governance-page .governance-pagination .icon-button{width:36px;height:36px}.governance-page .governance-account-filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.projects-page .admin-table-wrap{margin-top:14px;overflow-x:auto;border:1px solid #dfe5eb;border-radius:6px}.projects-page .admin-table-wrap table{width:100%;min-width:760px;border-collapse:collapse;font-size:13px}.projects-page .admin-table-wrap th,.projects-page .admin-table-wrap td{padding:10px 12px;border-bottom:1px solid #e5eaf0;text-align:left;vertical-align:middle}.projects-page .admin-table-wrap th{color:#627080;font-weight:650;background:#f7f9fb;white-space:nowrap}.projects-page .admin-table-wrap td{color:#263442}.project-cost-card-list{display:none}.rail-tickets-page{min-height:100vh;padding-bottom:24px;background:#f4f5f7}.rail-tickets-page>.error-line,.rail-tickets-page>.success-line{margin:14px 22px 0}.rail-tickets-page .admin-card{min-width:0;margin:14px 22px 0;padding:18px;border:1px solid #dfe5eb;border-radius:8px;background:#fff}.rail-tickets-page .admin-card h2{margin:0;color:#17212b;font-size:19px}.rail-tickets-page .admin-card>.muted{margin-top:8px}.rail-ticket-ocr-field,.rail-ticket-form label,.rail-ticket-cancel-form>label{min-width:0;display:grid;gap:6px;color:#526170;font-size:13px;line-height:1.4}.rail-ticket-cancel-dialog{display:contents}.rail-ticket-cancel-form{display:grid;gap:12px}.rail-ticket-cancel-form__header,.rail-ticket-cancel-form__actions{display:flex;align-items:center;gap:10px}.rail-ticket-cancel-form__header{justify-content:space-between}.rail-ticket-cancel-form__header .icon-button{flex:0 0 auto}.rail-ticket-cancel-form__actions{justify-content:flex-end}.rail-ticket-ocr-field{margin-top:14px}.rail-ticket-ocr-actions{display:flex;align-items:flex-end;gap:10px;margin-top:14px}.rail-ticket-ocr-actions .rail-ticket-ocr-field{flex:1 1 auto;margin-top:0}.rail-ticket-ocr-actions .text-button{flex:0 0 auto}.rail-ticket-assist-notice{margin:8px 0 0;color:#8a4b10;font-size:14px;line-height:1.45}.rail-ticket-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.rail-ticket-form>label,.rail-ticket-review-field,.rail-ticket-required-field{min-width:0;display:grid;gap:6px;align-content:start}.rail-ticket-required-field--missing input{border-color:#c83b37!important;background:#fff2f1}.rail-ticket-required-hint,.rail-ticket-submit-hint{margin:0;color:#a12d2a;font-size:13px;font-weight:700;line-height:1.4}.rail-ticket-review-state{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 72px;align-items:center;gap:8px;min-height:42px;box-sizing:border-box;padding:5px 5px 5px 10px;border:1px solid #d6dee7;border-radius:5px}.rail-ticket-review-copy{min-width:0;display:grid;gap:1px;overflow-wrap:anywhere}.rail-ticket-review-copy strong{font-size:14px;font-weight:700;line-height:1.25}.rail-ticket-review-copy small{font-size:12px;line-height:1.25}.rail-tickets-page .rail-ticket-review-state .text-button{width:72px;min-height:32px;padding:0 8px;justify-content:center}.rail-tickets-page .rail-ticket-review-state .text-button:disabled{border-color:#b7c1ca;background:#e3e8ec;color:#65727f}.rail-ticket-review-state--pending{border-color:#e3ab55;background:#fff7e8;color:#7c4304}.rail-tickets-page .rail-ticket-review-state--pending .text-button:not(:disabled){border-color:#a9610d;background:#a9610d;color:#fff}.rail-ticket-review-state--confirmed{border-color:#9ccab1;background:#f0f9f3;color:#1f6a3b}.rail-ticket-review-field--warning input{border-color:#d79225!important;background:#fff8e8}.rail-ticket-review-field--warning .rail-ticket-review-state{color:#8a4b10}.rail-ticket-review-field--error input{border-color:#c83b37!important;background:#fff2f1}.rail-ticket-review-field--error .rail-ticket-review-state{color:#a12d2a}.rail-ticket-project-field,.rail-ticket-actions{grid-column:1 / -1}.rail-ticket-project-field{position:relative;min-width:0;display:grid;gap:6px}.rail-ticket-project-options{position:absolute;z-index:20;top:72px;right:0;left:0;display:grid;max-height:272px;overflow-y:auto;border:1px solid #b9c7d4;border-radius:6px;background:#fff;box-shadow:0 10px 24px #17212b29}.rail-ticket-project-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;min-height:46px;padding:8px 12px;border:0;border-bottom:1px solid #e5eaf0;background:#fff;color:#17212b;text-align:left}.rail-ticket-project-option:last-child{border-bottom:0}.rail-ticket-project-option:hover,.rail-ticket-project-option[aria-selected=true]{background:#edf7fa}.rail-ticket-project-option strong{min-width:0;overflow-wrap:anywhere}.rail-ticket-project-option small{color:#5e6c7b;font-size:12px;white-space:nowrap}.rail-ticket-project-empty,.rail-ticket-project-selected{margin:0;font-size:13px;line-height:1.4}.rail-ticket-project-empty{padding:12px;color:#5e6c7b}.rail-ticket-project-selected{color:#1f6a3b}.rail-ticket-form input:not([type=checkbox]),.rail-ticket-form select,.rail-ticket-cancel-form>label>input{box-sizing:border-box;width:100%;min-width:0;min-height:40px;padding:0 10px;border:1px solid #cbd5df;border-radius:6px;background:#fff;color:#17212b}.rail-ticket-ocr-field input[type=file]{box-sizing:border-box;width:100%;min-width:0;min-height:40px;padding:7px 9px;border:1px solid #cbd5df;border-radius:6px;background:#fff;color:#334a58}.rail-ticket-checkbox{grid-column:1 / -1;display:flex!important;align-items:center;gap:8px;min-height:40px;color:#334a58!important}.rail-ticket-checkbox input{width:18px;height:18px;margin:0;flex:0 0 auto}.rail-ticket-actions{display:flex;align-items:center;gap:10px}.rail-tickets-page .text-button{min-height:40px;padding:0 13px;border:1px solid #cbd5df;border-radius:6px;background:#fff;color:#334a58}.rail-ticket-record{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:24px;padding:14px 0;border-top:1px solid #e5eaf0}.rail-ticket-record--adjustable{grid-template-columns:minmax(0,1fr) minmax(420px,48%)}.rail-ticket-record__summary{min-width:0;display:grid;gap:10px}.rail-ticket-record__title,.rail-ticket-record__metadata span:last-child,.rail-ticket-record__audit time,.rail-ticket-record__audit span:last-child{overflow-wrap:anywhere}.rail-ticket-record__metadata{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px}.rail-ticket-record__metadata>div{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;align-items:baseline}.rail-ticket-record__metadata span:first-child,.rail-ticket-record__audit>span:first-child{color:#5e6c7b;font-size:13px;white-space:nowrap}.rail-ticket-record__metadata span:last-child{color:#334a58;font-size:13px;line-height:1.45}.rail-ticket-record__audit{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:30px;padding:5px 9px;border-left:3px solid #b9d9eb;background:#f7fafc;color:#546576;font-size:12px;line-height:1.45}.rail-ticket-record__audit>span:not(:first-child){padding-left:8px;border-left:1px solid #d8e2ea}.rail-ticket-record__actions{min-width:0;display:grid;gap:10px;align-content:start}.rail-ticket-record__ticket-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.rail-ticket-record__project-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.rail-ticket-record__project-actions select{width:100%;min-width:180px;min-height:40px;padding:0 10px;border:1px solid #cbd5df;border-radius:6px;background:#fff}.governance-table{margin-top:12px;min-width:0;overflow-x:auto;border:1px solid #dfe5eb;border-radius:6px}.admin-card .governance-filter-bar{justify-content:flex-end;flex-wrap:nowrap;margin:0;padding:0}.governance-table__header,.governance-table__row{display:grid;min-width:1160px;grid-template-columns:140px 100px 100px 110px minmax(220px,1fr) minmax(420px,max-content);gap:10px;align-items:center;padding:10px 12px}.governance-table__header{border-bottom:1px solid #dfe5eb;background:#f7f9fb;color:#5e6c7b;font-size:12px;font-weight:650}.governance-table__entry+.governance-table__entry{border-top:1px solid #edf0f3}.governance-table__row{min-height:52px;color:#334a58;font-size:13px}.governance-table__row>span{min-width:0;overflow-wrap:anywhere}.governance-table__actions{flex-wrap:nowrap;justify-content:flex-end;white-space:nowrap}.governance-page .governance-audit__header,.governance-page .governance-audit__toolbar,.governance-page .governance-audit__item summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.governance-page .governance-audit__header .icon-button{width:36px;height:36px}.governance-page .governance-audit__toolbar{align-items:flex-start;margin-top:12px}.governance-page .governance-audit__toolbar>span{padding-top:9px;color:#5e6c7b;font-size:13px;white-space:nowrap}.governance-page .governance-audit__filters{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.governance-page .governance-audit__item{border-top:1px solid #e5eaf0}.governance-page .governance-audit__item summary{min-height:58px;padding:10px 0;cursor:pointer;list-style:none}.governance-page .governance-audit__item summary::-webkit-details-marker{display:none}.governance-page .governance-audit__summary{min-width:0;display:grid;gap:4px}.governance-page .governance-audit__summary strong{color:#263442;font-size:14px}.governance-page .governance-audit__summary span,.governance-page .governance-audit__item time{color:#5e6c7b;font-size:12px}.governance-page .governance-audit__item time{flex:0 0 auto;white-space:nowrap}.governance-page .governance-audit__item pre{overflow:auto;margin:0 0 12px;padding:10px 12px;border-left:3px solid #c8e1e6;background:#f7f9fb;color:#334a58;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.ops-panel{border:1px solid #dfe5eb;border-radius:8px;background:#fff;padding:16px}.runs-panel{grid-column:1 / -1}.sync-runs-toolbar{display:flex;align-items:end;gap:10px;margin-top:12px}.sync-runs-toolbar label{display:grid;gap:6px;color:#5e6c7b;font-size:12px}.sync-runs-toolbar input{width:180px;height:38px;min-width:0;padding:0 10px;border:1px solid #cbd5df;border-radius:6px;background:#fff;color:#17212b;font:inherit}.sync-runs-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}.sync-runs-pagination>span{color:#5e6c7b;font-size:13px;white-space:nowrap}.sync-runs-pagination .icon-button{width:36px;height:36px}.manual-form{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto auto;gap:10px;align-items:end;margin-top:14px}.manual-form label{display:grid;gap:6px;color:#5e6c7b;font-size:12px}.manual-form input,.manual-form select{height:38px;min-width:0;border:1px solid #d6dde5;border-radius:6px;background:#fff;color:#17212b;padding:0 10px}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.summary-item{min-height:72px;display:grid;gap:4px;align-content:center;padding:10px 12px;border:1px solid #e2e7ed;border-radius:8px;background:#f8fafb}.summary-item span,.summary-item small{color:#627080;font-size:12px}.summary-item strong{color:#17212b;font-size:24px;line-height:1}.runs-table-wrap{margin-top:14px;overflow:auto}.runs-table{width:100%;min-width:940px;border-collapse:collapse;font-size:13px}.report-main{grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr)}.report-filter-panel,.report-kpi-panel{grid-column:1 / -1}.report-filter-form{grid-template-columns:repeat(2,minmax(170px,220px)) auto;justify-content:start}.report-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.report-kpi{min-height:92px;display:grid;gap:5px;align-content:center;padding:14px;border:1px solid #e2e7ed;border-radius:8px;background:#f8fafb}.report-kpi span,.report-kpi small{color:#627080;font-size:12px}.report-kpi strong{color:#17212b;font-size:24px;line-height:1.05}.report-kpi--total{border-color:#bfd7dc;background:#eef8fa}.report-table{min-width:0}.report-amount-note td{padding-top:8px;padding-bottom:8px;background:#f7f9fb;color:#627080;font-size:12px}.report-period-panel,.report-status-panel{grid-column:span 1}.report-two-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.details-main{grid-template-columns:1fr}.details-filter-panel,.details-table-panel{grid-column:1 / -1}.details-filter-form{grid-template-columns:repeat(5,minmax(140px,1fr)) auto auto}.details-export-button{justify-content:center}.details-table-wrap{margin-top:0}.details-table{min-width:1380px}.details-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}.details-pagination>span{color:#5e6c7b;font-size:13px;white-space:nowrap}.details-pagination .icon-button{width:36px;height:36px}.details-table td strong,.details-table td small,.details-table td span{display:block}.details-table td small{margin-top:3px;color:#6b7886;font-size:12px}.table-action-button{min-height:28px;padding:0 10px;border:1px solid #d6dde5;border-radius:6px;background:#fff;color:#17212b;font-size:12px}.details-expanded-row td{padding:12px;background:#f8fafb}.details-expanded-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.details-expanded-summary span{min-height:26px;display:inline-flex;align-items:center;padding:0 8px;border-radius:13px;background:#edf1f4;color:#31404f;font-size:12px}.calendar-main{grid-template-columns:1fr}.calendar-filter-panel,.calendar-grid-panel{grid-column:1 / -1}.calendar-filter-form{grid-template-columns:minmax(120px,160px) repeat(2,minmax(160px,210px)) auto auto;justify-content:start}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:10px}.calendar-day{min-height:132px;display:grid;align-content:start;gap:5px;padding:10px;border:1px solid #dfe5eb;border-radius:8px;background:#fff;color:#17212b;text-align:left}.calendar-day.has-trips{border-color:#bfd7dc;background:#f1f9fa}.calendar-day__date{color:#627080;font-size:12px}.calendar-day strong{font-size:26px;line-height:1}.calendar-day small{color:#627080;font-size:12px}.calendar-day__cities{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}.calendar-day__cities span{min-height:22px;display:inline-flex;align-items:center;padding:0 6px;border-radius:11px;background:#edf1f4;color:#31404f;font-size:12px}.runs-table th,.runs-table td{padding:10px 9px;border-bottom:1px solid #e5eaf0;text-align:left;vertical-align:middle}.runs-table th{color:#627080;font-weight:650;background:#f7f9fb}.runs-table td{color:#263442}.status-badge{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:12px;background:#edf1f4;color:#31404f;white-space:nowrap}.status-badge--success{background:#e8f6ee;color:#27633b}.status-badge--failed{background:#fff2f2;color:#9f2f2f}.status-badge--running,.status-badge--pending{background:#fff6df;color:#785900}.city-marker{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px 0 5px;border:1px solid rgba(23,33,43,.16);border-radius:17px;background:#fff;color:#17212b;box-shadow:0 8px 18px #17212b38;white-space:nowrap}.city-marker.is-selected{border-color:#1f7a8c;box-shadow:0 0 0 3px #1f7a8c38,0 10px 22px #17212b33}.city-marker__count{min-width:24px;height:24px;display:inline-grid;place-items:center;border-radius:12px;background:#1f7a8c;color:#fff;font-size:12px;font-weight:700}.city-marker__name{font-size:13px;font-weight:650}.route-label{min-height:24px;display:inline-flex;align-items:center;padding:0 8px;border:1px solid rgba(46,169,242,.34);border-radius:12px;background:#ffffffeb;color:#0f5f93;box-shadow:0 6px 16px #17212b24;font-size:12px;font-weight:700;white-space:nowrap}.route-label--rail{border-color:#93c5fd;color:#1d4ed8}.map-route-legend{position:absolute;z-index:20;right:22px;bottom:22px;display:grid;gap:7px;padding:10px 12px;border:1px solid rgba(148,163,184,.45);border-radius:10px;background:#ffffffeb;box-shadow:0 8px 22px #0f172a24;color:#334155;font-size:12px}.map-route-legend span{display:inline-flex;align-items:center;gap:7px}.map-route-legend__line{width:24px;border-top:3px solid #f59e0b}.map-route-legend__line--rail{border-top-color:#2563eb;border-top-style:dashed}.rail-route-direction{display:inline-block;font-size:19px;line-height:1;transform-origin:center}.route-origin-marker{height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 10px 0 4px;border:1px solid rgba(31,159,229,.42);border-radius:15px;background:#fffffff0;color:#0f5f93;box-shadow:0 8px 18px #17212b2e;font-size:13px;font-weight:700;white-space:nowrap}.route-origin-marker__dot{width:22px;height:22px;display:inline-grid;place-items:center;border-radius:50%;background:#1f9fe5;color:#fff;font-size:12px}.route-target-arrow{width:24px;height:24px;display:block;overflow:visible;filter:drop-shadow(0 2px 4px rgba(23,33,43,.28));transform-origin:center}.route-target-arrow path{fill:var(--route-color, #1f9fe5);stroke:#fff;stroke-width:1.8;stroke-linejoin:round}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:2100px)and (min-width:961px){.topbar{gap:10px;padding:12px}.topbar h1{font-size:19px}.topbar p{font-size:12px}.topbar__controls{gap:6px}.topbar .date-control,.topbar .search-box{padding:0 8px}.topbar .nav-button{gap:6px;padding:0 9px}}@media(max-width:960px){.topbar{flex-direction:column;align-items:stretch}.topbar__controls{flex-wrap:wrap;overflow:visible;justify-content:space-between}.city-panel{top:auto;right:18px;bottom:18px;width:auto;height:210px}.detail-panel{inset:150px 18px 18px;width:auto}.admin-header{align-items:stretch;flex-direction:column}.admin-main{grid-template-columns:1fr;padding:14px}.details-filter-panel{position:static}.details-filter-panel,.details-table-panel{grid-column:1 / -1}.manual-form,.summary-grid,.report-filter-form,.report-kpi-grid,.report-two-tables,.details-filter-form,.calendar-filter-form,.calendar-grid{grid-template-columns:1fr}}@media(max-width:640px){body{overflow-x:hidden}input,select{font-size:16px}.shell,.map-stage,.map-canvas{min-height:100dvh}.map-stage{height:100dvh}.topbar{top:calc(8px + env(safe-area-inset-top));left:10px;right:10px;gap:8px;padding:10px}.topbar h1{font-size:17px}.topbar p{display:none}.topbar__controls{flex-wrap:wrap;justify-content:flex-start;gap:7px;width:100%;overflow:visible;padding-bottom:0}.topbar .nav-button,.topbar .icon-button{display:none;flex:0 0 44px;width:44px;height:44px;justify-content:center;padding:0}.topbar .logout-button{display:inline-flex;flex:0 0 100px;width:100px;min-width:100px;gap:6px;padding:0 11px;font-size:14px}.topbar .nav-button:not(.logout-button){gap:0;font-size:0}.topbar .logout-button__label{display:inline;font-size:14px}.topbar .nav-button svg,.topbar .icon-button svg{flex:0 0 auto}.topbar .date-control{flex:1 1 142px;width:auto;height:44px;padding:0 8px}.topbar .map-date-control{flex:1 1 0;max-width:min(270px,calc(100% - 108px))}.topbar .map-employee-search{flex:1 1 120px;height:44px}.topbar .map-employee-search input{width:100%}.topbar .map-status-control{flex:1 1 120px}.topbar .map-status-control select{width:100%;min-width:0}.topbar .date-control input{width:100%;min-width:0;font-size:15px;white-space:nowrap}.topbar .mobile-only,.desktop-city-list-button{display:none}.panel-heading .mobile-only{display:inline-grid}.city-panel,.detail-panel{left:10px;right:10px;width:auto;border-radius:12px;display:none}.city-panel{top:auto;bottom:calc(68px + env(safe-area-inset-bottom));height:34dvh;min-height:190px;max-height:330px;padding:10px;z-index:12;overflow:visible}.city-panel.mobile-panel-cities{display:flex}.city-panel.mobile-panel-cities .map-filter-form{display:none}.city-panel.mobile-panel-cities .city-list{margin-top:0}.city-panel.mobile-panel-filters{display:block;height:auto;max-height:calc(100dvh - 186px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto}.city-panel.mobile-panel-filters .map-filter-form{display:grid}.city-panel.mobile-panel-filters .city-list{display:none}.detail-panel{top:auto;bottom:calc(68px + env(safe-area-inset-bottom));height:38dvh;min-height:220px;max-height:390px;padding:12px;overflow:hidden;border-bottom-right-radius:0;border-bottom-left-radius:0;z-index:11}.detail-panel.mobile-panel-employees{display:flex}.mobile-city-list-button{position:fixed;right:14px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:42;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 15px;border:1px solid rgba(23,33,43,.14);border-radius:22px;background:#17212b;color:#fff;box-shadow:0 10px 24px #17212b38;font-size:14px;font-weight:700;white-space:nowrap}.map-stage--with-mobile-nav .mobile-city-list-button{bottom:calc(186px + env(safe-area-inset-bottom))}.map-stage--with-mobile-nav .map-route-legend{bottom:calc(110px + env(safe-area-inset-bottom))}.mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:6px 6px calc(6px + env(safe-area-inset-bottom));border-top:1px solid rgba(22,32,42,.12);background:#fffffff5;box-shadow:0 -10px 24px #17212b1f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mobile-bottom-nav--user{grid-template-columns:repeat(3,minmax(0,1fr))}.mobile-bottom-nav button{min-width:0;min-height:52px;display:grid;place-items:center;gap:2px;border:0;border-radius:8px;background:transparent;color:#526170;font-size:11px}.mobile-bottom-nav button.is-active{background:#eaf6f8;color:#1f7a8c}.mobile-more-menu{position:fixed;right:10px;bottom:calc(70px + env(safe-area-inset-bottom));z-index:41;display:grid;gap:6px;min-width:154px;padding:7px;border:1px solid rgba(22,32,42,.14);border-radius:8px;background:#fffffffa;box-shadow:0 10px 24px #17212b29;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mobile-more-menu button{min-height:42px;display:flex;align-items:center;gap:9px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:#263442;font-size:14px;text-align:left}.mobile-more-menu button:active{background:#eaf6f8;color:#176474}.map-stage--with-mobile-nav .map-canvas .amap-logo,.map-stage--with-mobile-nav .map-canvas .amap-copyright{bottom:calc(76px + env(safe-area-inset-bottom))!important}.map-stage--with-mobile-nav .map-canvas .amap-copyright{max-width:calc(100vw - 70px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.panel-heading h2{font-size:18px}.panel-heading h3{font-size:17px}.city-row{height:44px}.employee-row{grid-template-columns:34px 1fr;gap:8px;padding:10px}.employee-row .type-chip{grid-column:1 / -1;justify-self:start}.employee-row em{grid-column:1 / -1}.trip-drawer{margin-top:14px}.trip-item__head{align-items:flex-start;flex-direction:column}.trip-item__head strong{text-align:left}.date-control,.search-box,.nav-button,.primary-button,.icon-button,.manual-form input,.manual-form select,.map-filter-form input,.map-filter-form select{min-height:44px}.admin-header{position:sticky;top:0;z-index:30;gap:10px;align-items:stretch;flex-direction:column;padding:12px;overflow:hidden}.admin-header h1{font-size:20px}.admin-header p{display:none}.admin-header .topbar__controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;justify-content:stretch}.admin-header .nav-button,.admin-header .icon-button{width:100%;min-width:0;justify-content:center;gap:4px;padding:0 5px;height:44px;font-size:13px;white-space:nowrap;overflow:hidden}.admin-header .nav-button svg,.admin-header .icon-button svg{flex:0 0 auto}.page-navigation{display:block;position:relative;min-width:0}.page-navigation__desktop{display:none}.page-navigation__mobile{display:block;position:relative}.page-navigation__trigger{width:100%}.page-navigation__menu{position:fixed;z-index:100;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px;border:1px solid #d6dde5;border-radius:8px;background:#fff;box-shadow:0 12px 30px #17212b2e}.page-navigation__menu-item{min-height:42px;display:inline-flex;align-items:center;justify-content:flex-start;gap:7px;padding:0 10px;border:1px solid transparent;border-radius:6px;background:transparent;color:#31404f;font:inherit;font-size:13px;text-align:left}.page-navigation__menu-item--active{border-color:#b8dce3;background:#e7f3f5;color:#135767;font-weight:700}.admin-main{gap:12px;padding:12px 10px calc(18px + env(safe-area-inset-bottom))}.temporary-password-notice{align-items:stretch;flex-direction:column}.temporary-password-notice__actions>button{flex:1 1 0}.ops-panel{padding:12px}.sync-runs-toolbar{align-items:stretch;flex-wrap:wrap}.sync-runs-toolbar label,.sync-runs-toolbar input{width:100%}.sync-runs-toolbar .text-button,.sync-runs-export-button{align-self:flex-start}.sync-runs-pagination,.details-pagination{justify-content:space-between}.manual-form{gap:9px}.summary-grid,.report-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-item,.report-kpi{min-height:78px;padding:10px}.summary-item strong,.report-kpi strong{font-size:20px;overflow-wrap:anywhere}.runs-panel>.runs-table-wrap .runs-table,.details-table-wrap .details-table{display:none}.sync-run-cards,.details-card-list{display:grid;gap:10px;margin-top:14px}.details-card-list{margin-top:0}.mobile-record-card{display:grid;gap:10px;padding:12px;border:1px solid #dfe5eb;border-radius:8px;background:#fff}.mobile-record-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.mobile-record-card__head h3{margin:0;color:#17212b;font-size:16px;line-height:1.35;overflow-wrap:anywhere}.mobile-card-grid{display:grid;gap:7px;color:#5e6c7b;font-size:13px}.mobile-card-grid span{overflow-wrap:anywhere}.mobile-card-alert{padding:8px 9px;border:1px solid #f4cf9c;border-radius:6px;background:#fff8eb;color:#7a5100;font-size:13px}.mobile-card-action{min-height:40px;width:100%}.mobile-card-expanded{display:grid;gap:10px;padding-top:10px;border-top:1px solid #e5eaf0}.details-expanded-summary{gap:6px}.details-expanded-summary span{min-height:28px;overflow-wrap:anywhere}.raw-field-grid{grid-template-columns:1fr}.raw-field{border-right:0}.calendar-grid{gap:8px}.calendar-day{min-height:100px}.runs-table-wrap{overflow-x:auto}.rail-tickets-page{padding-bottom:calc(18px + env(safe-area-inset-bottom))}.rail-tickets-page--with-mobile-nav{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.rail-tickets-page>.error-line,.rail-tickets-page>.success-line,.rail-tickets-page .admin-card{margin-right:10px;margin-left:10px}.rail-tickets-page .admin-card{padding:14px}.rail-tickets-page .admin-card h2{font-size:18px}.rail-ticket-form{grid-template-columns:minmax(0,1fr);gap:14px}.rail-ticket-ocr-actions{align-items:stretch;flex-direction:column}.rail-ticket-ocr-actions .text-button{width:100%}.rail-ticket-cancel-dialog{position:fixed;z-index:100;inset:0;display:flex;align-items:flex-end;padding:18px 10px calc(10px + env(safe-area-inset-bottom));background:#17212b70}.rail-tickets-page .admin-card.rail-ticket-cancel-form{width:min(100%,560px);max-height:min(78dvh,680px);margin:0 auto;overflow-y:auto;border-radius:8px;box-shadow:0 -10px 30px #17212b38}.rail-ticket-cancel-form__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.rail-ticket-cancel-form__actions .primary-button,.rail-ticket-cancel-form__actions .text-button{width:100%;min-height:44px}.rail-ticket-project-field,.rail-ticket-actions,.rail-ticket-checkbox{grid-column:auto}.rail-ticket-form input:not([type=checkbox]),.rail-ticket-form select,.rail-ticket-cancel-form>label>input,.rail-ticket-ocr-field input[type=file]{min-height:44px}.rail-ticket-actions,.rail-ticket-record,.rail-ticket-record--adjustable{width:100%;grid-template-columns:minmax(0,1fr);align-items:stretch}.rail-ticket-actions .primary-button,.rail-ticket-actions .text-button,.rail-ticket-record .text-button,.rail-ticket-record__project-actions select{width:100%;min-height:44px}.rail-ticket-record__metadata,.rail-ticket-record__project-actions{grid-template-columns:minmax(0,1fr)}.rail-ticket-record__ticket-actions{justify-content:stretch}.rail-ticket-record__audit{align-items:flex-start;flex-direction:column;gap:3px}.rail-ticket-record__audit>span:not(:first-child){padding-left:0;border-left:0}.governance-page,.projects-page{padding-bottom:calc(18px + env(safe-area-inset-bottom))}.governance-page>.error-line,.governance-page>.success-line,.projects-page>.error-line,.projects-page>.success-line,.governance-page .admin-card,.projects-page .admin-card{margin-right:10px;margin-left:10px}.governance-page .admin-card-grid,.projects-page .admin-card-grid{grid-template-columns:minmax(0,1fr);margin-right:10px;margin-left:10px}.governance-page .admin-card-grid>.admin-card,.projects-page .admin-card-grid>.admin-card{margin:0}.governance-page .admin-card,.projects-page .admin-card{padding:14px}.governance-page .admin-card h2,.projects-page .admin-card h2{font-size:18px}.governance-page .admin-card>form:not(.base-city-editor){grid-template-columns:minmax(0,1fr)}.governance-page .admin-card fieldset{grid-template-columns:minmax(0,1fr)}.governance-page .admin-card input:not([type=checkbox]),.governance-page .admin-card select,.projects-page .admin-card input,.projects-page .admin-card select{min-height:44px}.governance-page .admin-row,.projects-page .admin-row{flex-direction:column;align-items:stretch}.governance-page .admin-row>.topbar__controls,.governance-page .governance-filter-bar,.governance-page .governance-table__actions{width:100%;flex-wrap:wrap;justify-content:flex-start}.governance-page .governance-list-toolbar{align-items:stretch;flex-direction:column}.governance-page .governance-list-toolbar label{min-width:0;width:100%}.governance-page .governance-list-toolbar>span{align-self:flex-start}.governance-page .governance-export-button{align-self:flex-start}.governance-page .governance-account-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.governance-page .governance-account-filters .text-button{width:100%;min-height:40px}.governance-page .governance-audit__toolbar,.governance-page .governance-audit__item summary{align-items:flex-start;flex-direction:column}.governance-page .governance-audit__filters{width:100%;justify-content:flex-start}.governance-page .governance-audit__filters .text-button{flex:1 1 72px;min-height:40px}.governance-page .governance-audit__item time{padding-bottom:2px}.governance-page .governance-table{overflow:visible;border:0;background:transparent}.governance-page .governance-table__header{display:none}.governance-page .governance-table__entry{overflow:hidden;border:1px solid #dfe5eb;border-radius:6px;background:#fff}.governance-page .governance-table__entry+.governance-table__entry{margin-top:10px;border-top:1px solid #dfe5eb}.governance-page .governance-table__row{min-width:0;grid-template-columns:minmax(0,1fr);gap:0;min-height:0;padding:0}.governance-page .governance-table__row>span{display:grid;grid-template-columns:84px minmax(0,1fr);gap:8px;padding:10px 12px;border-bottom:1px solid #edf0f3}.governance-page .governance-table__row>span:before{color:#5e6c7b}.governance-page .governance-table__row>span:nth-child(1):before{content:"姓名"}.governance-page .governance-table__row>span:nth-child(2):before{content:"员工状态"}.governance-page .governance-table__row>span:nth-child(3):before{content:"账号状态"}.governance-page .governance-table__row>span:nth-child(4):before{content:"Base 地"}.governance-page .governance-table__row>span:nth-child(5):before{content:"部门"}.governance-page .governance-table__actions{padding:10px 12px}.governance-page .governance-pagination{justify-content:space-between}.projects-page .admin-row>.text-button{width:100%;min-height:44px}.projects-page .project-assignment-audit__item summary{align-items:flex-start;flex-direction:column}.projects-page .project-assignment-audit__item time{padding-bottom:2px}.projects-page .pending-order-toolbar,.projects-page .project-cost-toolbar{grid-template-columns:minmax(0,1fr)}.projects-page .pending-order-toolbar>span,.projects-page .project-cost-toolbar>span{justify-self:start}.projects-page .projects-pagination{justify-content:space-between}.projects-page .admin-table-wrap{display:none}.project-cost-card-list{display:grid;gap:10px;margin-top:14px}.project-cost-card{display:grid;gap:12px;min-width:0;padding:12px;border:1px solid #dfe5eb;border-radius:6px;background:#fff}.project-cost-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.project-cost-card__head>div{min-width:0;display:grid;gap:4px}.project-cost-card__head strong{color:#17212b;font-size:16px;line-height:1.4;overflow-wrap:anywhere}.project-cost-card__amounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.project-cost-card__amounts>div{min-width:0;display:grid;gap:3px;padding:8px 9px;border:1px solid #e5eaf0;border-radius:6px;background:#f8fafb}.project-cost-card__amounts dt{color:#627080;font-size:12px}.project-cost-card__amounts dd{margin:0;color:#17212b;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.project-cost-card__amounts .project-cost-card__total{grid-column:1 / -1;border-color:#b8dce3;background:#eaf6f8}.projects-page .pending-order-record-list>div{grid-template-columns:minmax(0,1fr);overflow-wrap:anywhere}}@media(max-width:380px){.topbar .date-control{flex-basis:auto}.summary-grid,.report-kpi-grid{grid-template-columns:1fr}.city-panel.mobile-panel-cities{height:32dvh;min-height:176px}}
