:root {
  --ink: #17313a;
  --ink-soft: #55727b;
  --muted: #8ca3aa;
  --line: #dbe6e8;
  --panel: #fff;
  --canvas: #f3f7f6;
  --nav: #102a33;
  --cyan: #0e7490;
  --teal: #16847d;
  --orange: #d97732;
  --red: #cf4b4b;
  --purple: #7662a8;
  --shadow: 0 16px 40px rgba(20, 52, 60, .08);
  --radius: 14px;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: Inter, "Segoe UI", "Microsoft YaHei", sans-serif; color: var(--ink); background: var(--canvas); font-size: 14px; }
a { text-decoration: none; color: inherit; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.icon { width: 18px; height: 18px; display: inline-block; vertical-align: middle; flex: none; }

.app-body { display: flex; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 244px; background: var(--nav); color: #d9e8e9; display: flex; flex-direction: column; padding: 22px 14px 18px; z-index: 20; }
.sidebar-brand { height: 54px; display: flex; align-items: center; gap: 11px; padding: 0 10px 21px; border-bottom: 1px solid rgba(255,255,255,.1); position: relative; }
.sidebar-brand strong { font-size: 14px; letter-spacing: 1.8px; color: #fff; display: block; }
.sidebar-brand span { display: block; font-size: 11px; color: #83abb0; margin-top: 3px; letter-spacing: 1px; }
.brand-mark { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: linear-gradient(135deg,#35c3c1,#0b6686); color: #fff; font-weight: 800; letter-spacing: -1px; box-shadow: 0 8px 24px rgba(30,190,185,.23); }
.brand-mark.small { width: 32px; height: 32px; border-radius: 9px; font-size: 12px; }
.sidebar-label { font-size: 10px; letter-spacing: 1.5px; color: #5d858d; margin: 28px 12px 9px; }
.admin-label { margin-top: 23px; }
.sidebar-nav { display: flex; flex-direction: column; gap: 3px; }
.nav-item { min-height: 42px; border-radius: 10px; color: #a7c0c3; display: flex; align-items: center; gap: 12px; padding: 0 12px; transition: .18s; position: relative; }
.nav-item:hover { background: rgba(255,255,255,.07); color: #fff; }
.nav-item.active { background: linear-gradient(90deg,rgba(29,161,164,.35),rgba(14,116,144,.18)); color: #fff; box-shadow: inset 3px 0 #36c5bf; }
.nav-item.active .icon { color: #58d2cb; }
.nav-item span { flex: 1; }
.nav-count { font-style: normal; font-size: 10px; background: #c95858; color: #fff; border-radius: 20px; padding: 2px 6px; }
.sidebar-bottom { margin-top: auto; }
.system-status { margin: 0 7px 17px; padding: 10px; border: 1px solid rgba(118,198,189,.18); border-radius: 10px; display: flex; gap: 8px; align-items: center; background: rgba(33,112,115,.12); }
.system-status > span { width: 7px; height: 7px; border-radius: 50%; background: #4dd0b4; box-shadow: 0 0 0 4px rgba(77,208,180,.12); }
.system-status strong { display: block; color: #d9f1ec; font-size: 11px; }
.system-status small { display: block; color: #699399; font-size: 10px; margin-top: 3px; }
.sidebar-version { text-align: center; color: #52757b; font-size: 10px; letter-spacing: .4px; }

.app-main { margin-left: 244px; width: calc(100% - 244px); min-height: 100vh; }
.topbar { height: 72px; background: rgba(255,255,255,.85); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; padding: 0 36px; position: sticky; top: 0; z-index: 10; backdrop-filter: blur(12px); }
.breadcrumbs { display: flex; align-items: center; gap: 11px; color: #8ba0a6; font-size: 12px; }
.breadcrumbs b { font-weight: 400; color: #c0ced0; }
.breadcrumbs strong { color: var(--ink); font-weight: 600; }
.topbar-actions { display: flex; align-items: center; gap: 15px; }
.icon-button { border: 0; background: none; color: #6e878d; padding: 7px; border-radius: 8px; display: grid; place-items: center; }
.icon-button:hover { background: #edf4f3; color: var(--cyan); }
.notification { position: relative; }.notification i { position: absolute; right: 5px; top: 4px; width: 5px; height: 5px; border-radius: 50%; background: #dd684b; border: 1px solid #fff; }
.profile-menu { display: flex; align-items: center; gap: 9px; border-left: 1px solid var(--line); padding-left: 17px; }
.avatar { height: 33px; width: 33px; display: grid; place-items: center; color: #fff; border-radius: 10px; font-weight: 700; font-size: 13px; }
.profile-copy strong { font-size: 12px; display: block; }.profile-copy small { display: block; font-size: 10px; color: var(--muted); margin-top: 2px; }
.page-content { padding: 32px 36px 54px; max-width: 1700px; margin: auto; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 28px; }.page-heading h1 { font-size: 27px; margin: 5px 0 7px; letter-spacing: -.7px; }.page-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.eyebrow, .section-kicker { font-size: 10px; letter-spacing: 1.7px; color: var(--cyan); font-weight: 700; }

.button { border: 0; border-radius: 9px; padding: 10px 15px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-size: 12px; font-weight: 650; transition: .18s; }.button .icon { width: 15px; height: 15px; }.button-primary { background: var(--ink); color: #fff; box-shadow: 0 7px 18px rgba(23,49,58,.15); }.button-primary:hover { background: #245563; transform: translateY(-1px); }.button-secondary { background: #e7f2f1; color: #176a70; }.button-light { background: #fff; border: 1px solid var(--line); color: var(--ink-soft); }.button-danger { background: #fff0ef; color: #b24545; }.button-block { width: 100%; }
.card { background: var(--panel); border: 1px solid #e4ecec; border-radius: var(--radius); box-shadow: var(--shadow); }.card-head { display: flex; align-items: center; justify-content: space-between; padding: 19px 20px; border-bottom: 1px solid #edf2f2; }.card-head h2 { font-size: 14px; margin: 0; letter-spacing: -.1px; }.card-head p { margin: 4px 0 0; font-size: 11px; color: var(--muted); }.card-body { padding: 20px; }.muted-inline { font-size: 11px; color: var(--muted); font-weight: 400; margin-left: 4px; }

.stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 15px; margin-bottom: 18px; }.stat-card { padding: 18px 18px 16px; position: relative; overflow: hidden; }.stat-card:after { content: ""; position: absolute; width: 90px; height: 90px; border-radius: 50%; background: currentColor; opacity: .035; right: -22px; bottom: -30px; }.stat-head { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 11px; }.stat-icon { width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; }.stat-card h3 { font-size: 26px; letter-spacing: -1px; margin: 13px 0 5px; }.stat-meta { font-size: 10px; color: var(--muted); }.stat-cyan { color: var(--cyan); }.stat-cyan .stat-icon { background: #e4f5f6; color: var(--cyan); }.stat-orange { color: var(--orange); }.stat-orange .stat-icon { background: #fff1e4; color: var(--orange); }.stat-purple { color: var(--purple); }.stat-purple .stat-icon { background: #f0edfa; color: var(--purple); }.stat-red { color: var(--red); }.stat-red .stat-icon { background: #fdecea; color: var(--red); }.stat-green { color: var(--teal); }.stat-green .stat-icon { background: #e8f6ee; color: var(--teal); }
.dashboard-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; margin-bottom: 18px; }.dashboard-grid.equal { grid-template-columns: 1fr 1fr; }.table-card { overflow: hidden; }.table-wrap { overflow-x: auto; }.data-table { width: 100%; border-collapse: collapse; text-align: left; }.data-table th { font-size: 10px; letter-spacing: .6px; color: #95a8ac; text-transform: uppercase; font-weight: 700; background: #fbfcfc; padding: 11px 20px; white-space: nowrap; }.data-table td { padding: 14px 20px; border-top: 1px solid #eef3f3; font-size: 12px; white-space: nowrap; }.data-table tr:hover td { background: #fbfdfd; }.primary-cell { font-weight: 650; color: var(--ink); }.secondary-cell { color: var(--muted); font-size: 11px; margin-top: 4px; }.link-cell { color: var(--cyan); font-weight: 650; }.empty-state { text-align: center; color: var(--muted); padding: 45px 20px !important; }.empty-icon { width: 42px; height: 42px; margin: 0 auto 10px; border-radius: 12px; display: grid; place-items: center; background: #eef5f4; color: #84a8aa; }
.badge { display: inline-flex; align-items: center; gap: 5px; border-radius: 20px; padding: 5px 8px; font-size: 10px; font-weight: 650; }.badge-dot { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }.badge-blue { background: #e9f1fa; color: #3976a7; }.badge-cyan { background: #e4f6f4; color: #16847d; }.badge-green { background: #e8f6ee; color: #299363; }.badge-amber { background: #fff5de; color: #b78329; }.badge-orange { background: #fff0e5; color: #c06b2e; }.badge-red { background: #fdece9; color: #c75650; }.badge-purple { background: #f0edfa; color: #7662a8; }.badge-gray { background: #f0f3f3; color: #7d9296; }
.panel-list { display: flex; flex-direction: column; }.list-row { display: flex; align-items: center; gap: 12px; padding: 14px 20px; border-top: 1px solid #eef3f3; }.list-row:first-child { border-top: 0; }.list-marker { width: 31px; height: 31px; border-radius: 9px; display: grid; place-items: center; background: #edf5f4; color: var(--cyan); flex: none; }.list-copy { flex: 1; min-width: 0; }.list-copy strong { font-size: 12px; display: block; overflow: hidden; text-overflow: ellipsis; }.list-copy small { font-size: 10px; color: var(--muted); display: block; margin-top: 4px; }.list-value { text-align: right; font-size: 11px; color: var(--ink-soft); }.progress-line { height: 5px; background: #e8eeee; border-radius: 5px; overflow: hidden; margin-top: 8px; }.progress-line span { display: block; height: 100%; background: linear-gradient(90deg,#21aba5,#50c8bc); border-radius: 5px; }

.toolbar { display: flex; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 18px; }.toolbar-left,.toolbar-right { display: flex; gap: 9px; align-items: center; }.search-box { position: relative; }.search-box .icon { position: absolute; left: 11px; top: 10px; color: #9bafb1; width: 15px; height: 15px; }.search-box input { width: 235px; padding-left: 33px; }
textarea,input,select { border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); padding: 10px 11px; outline: none; transition: .15s; }textarea:focus,input:focus,select:focus { border-color: #6bb9b6; box-shadow: 0 0 0 3px rgba(55,174,166,.1); }textarea { min-height: 90px; resize: vertical; }.table-actions { display: flex; gap: 6px; }.form-card { max-width: 1000px; }.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }.form-grid.single-column { grid-template-columns: 1fr; }.form-grid label { display: flex; flex-direction: column; gap: 7px; color: var(--ink-soft); font-size: 11px; font-weight: 600; }.form-grid label.full,.form-grid .full { grid-column: 1/-1; }.form-actions { display: flex; justify-content: flex-end; gap: 10px; border-top: 1px solid #edf2f2; margin-top: 22px; padding-top: 18px; }.form-section { grid-column: 1/-1; padding: 4px 0 2px; font-size: 11px; color: var(--cyan); letter-spacing: .8px; font-weight: 700; border-bottom: 1px solid #e8efef; }.field-hint { font-weight: 400; color: var(--muted); font-size: 10px; }
.role-select-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }.role-option { display: flex !important; flex-direction: row !important; align-items: flex-start; gap: 9px; background: #f6faf9; border: 1px solid #e4eeee; border-radius: 9px; padding: 11px; cursor: pointer; }.role-option input { margin-top: 2px; accent-color: var(--teal); }.role-option b { display: block; color: var(--ink); }.role-option small { display: block; margin-top: 4px; color: var(--muted); font-weight: 400; }
.permission-select-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }.permission-option { display: flex !important; flex-direction: row !important; align-items: flex-start; gap: 8px; background: #fbfcfc; border: 1px solid #e7eeee; border-radius: 8px; padding: 9px; cursor: pointer; font-size: 11px !important; }.permission-option input { margin-top: 2px; accent-color: var(--cyan); }.permission-option span { font-weight: 600; color: var(--ink); }.permission-option small { display: block; color: var(--muted); font-size: 9px; font-weight: 400; margin-top: 3px; }
.detail-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; }.detail-title { display: flex; gap: 12px; align-items: flex-start; }.detail-title h1 { font-size: 22px; margin: 2px 0 7px; }.detail-meta { color: var(--muted); font-size: 11px; }.key-values { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }.key-values div { min-width: 0; }.key-values dt { font-size: 10px; color: var(--muted); margin-bottom: 5px; }.key-values dd { font-size: 13px; color: var(--ink); margin: 0; font-weight: 600; word-break: break-word; }
.timeline { padding: 5px 20px 20px; }.timeline-item { display: flex; gap: 12px; position: relative; padding: 15px 0; }.timeline-item:not(:last-child):after { content: ""; position: absolute; left: 5px; top: 29px; bottom: -5px; border-left: 1px dashed #c8dddd; }.timeline-dot { width: 11px; height: 11px; border-radius: 50%; background: #44b9af; box-shadow: 0 0 0 4px #e6f5f2; flex: none; z-index: 1; margin-top: 3px; }.timeline-copy strong { font-size: 12px; display: block; }.timeline-copy small { font-size: 10px; color: var(--muted); display: block; margin-top: 4px; }.timeline-copy p { font-size: 11px; line-height: 1.7; color: var(--ink-soft); margin: 7px 0 0; }
.kanban { display: grid; grid-template-columns: repeat(4,minmax(210px,1fr)); gap: 14px; overflow-x: auto; }.kanban-column { background: #eaf1f0; border-radius: 12px; padding: 11px; min-height: 330px; }.kanban-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }.kanban-head strong { font-size: 11px; }.kanban-head span { font-size: 10px; background: #dce8e7; color: #648084; border-radius: 10px; padding: 3px 7px; }.task-card { background: #fff; border: 1px solid #e3eceb; border-radius: 10px; padding: 13px; margin-bottom: 9px; box-shadow: 0 5px 12px rgba(26,70,77,.04); }.task-card strong { font-size: 12px; display: block; line-height: 1.5; }.task-card small { color: var(--muted); font-size: 10px; display: block; margin-top: 6px; }.task-card .task-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; }.task-avatar { width: 22px; height: 22px; border-radius: 7px; display: grid; place-items: center; color: #fff; font-size: 9px; }.countdown { font-weight: 700; font-size: 11px; }.countdown.safe { color: var(--teal); }.countdown.warn { color: var(--orange); }.countdown.danger { color: var(--red); }
.notice { padding: 12px 15px; border-radius: 9px; margin-bottom: 16px; font-size: 12px; line-height: 1.6; }.notice-success { background: #e8f7ef; color: #287c55; border: 1px solid #c9ecd7; }.notice-danger { background: #fff0ee; color: #ae4b45; border: 1px solid #f4d1cc; }.notice-warning { background: #fff7e5; color: #a6751f; border: 1px solid #f3e0aa; }.notice-info { background: #eaf6f7; color: #27717b; border: 1px solid #c9e8e8; }
.chart-bars { height: 182px; display: flex; align-items: flex-end; gap: 15px; padding: 25px 20px 6px; }.bar-wrap { height: 100%; flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 7px; }.bar { width: 100%; max-width: 30px; border-radius: 5px 5px 2px 2px; background: linear-gradient(#42beb1,#198a87); }.bar-label { font-size: 10px; color: var(--muted); }.bar-value { font-size: 9px; color: var(--ink-soft); }

.auth-page { background: #eef5f3; min-height: 100vh; display: grid; place-items: center; position: relative; overflow: hidden; }.auth-page:before { content: ""; position: absolute; width: 680px; height: 680px; border: 1px solid rgba(31,125,135,.12); border-radius: 50%; right: -250px; top: -240px; }.auth-page:after { content: ""; position: absolute; width: 460px; height: 460px; border: 1px solid rgba(31,125,135,.09); border-radius: 50%; left: -260px; bottom: -230px; }.auth-shell { width: min(930px,calc(100% - 32px)); min-height: 540px; display: grid; grid-template-columns: 1fr 1fr; border-radius: 20px; overflow: hidden; box-shadow: 0 25px 70px rgba(26,66,72,.13); position: relative; z-index: 1; }.auth-brand-panel { background: linear-gradient(140deg,#112f38,#0d4e59); color: #fff; padding: 58px 54px; position: relative; overflow: hidden; }.auth-brand-panel:after { content: ""; position: absolute; right: -100px; bottom: -140px; width: 420px; height: 420px; border-radius: 50%; border: 1px solid rgba(119,226,211,.22); box-shadow: 0 0 0 35px rgba(119,226,211,.04),0 0 0 70px rgba(119,226,211,.03); }.auth-brand-panel .brand-mark { margin-bottom: 58px; }.auth-brand-panel .eyebrow { color: #69c9c0; }.auth-brand-panel h1 { font-size: 42px; line-height: 1.04; letter-spacing: 2px; margin: 0 0 20px; }.auth-brand-panel h1 span { font-size: 24px; letter-spacing: 4px; color: #a4d5d2; }.auth-brand-panel p { max-width: 310px; color: #a4c2c4; font-size: 13px; line-height: 2; margin: 0; }.brand-lines { display: flex; gap: 5px; margin-top: 65px; }.brand-lines i { height: 3px; width: 34px; background: #45c2ba; border-radius: 2px; }.brand-lines i:nth-child(2) { width: 17px; background: #df9957; }.brand-lines i:nth-child(3) { width: 9px; background: #557f87; }.auth-card { background: #fff; padding: 58px 52px; display: flex; justify-content: center; flex-direction: column; }.auth-card-head h2 { font-size: 27px; letter-spacing: -.7px; margin: 10px 0 8px; }.auth-card-head p { font-size: 12px; color: var(--muted); line-height: 1.7; margin: 0 0 28px; }.login-form { display: flex; flex-direction: column; gap: 16px; }.login-field { position: relative; }.login-field .icon { position: absolute; left: 13px; top: 12px; color: #94a8ab; width: 16px; height: 16px; }.login-field input { width: 100%; padding-left: 38px; }.login-options { display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 11px; }.login-options label { display: flex; align-items: center; gap: 6px; }.login-options input { accent-color: var(--teal); }.login-form .button { margin-top: 5px; padding: 12px; }.auth-footer { text-align: center; color: #99aaad; font-size: 10px; margin-top: 32px; }.setup-shell { min-height: 570px; }.setup-note { font-size: 10px; color: #a0b0b2; border-top: 1px solid #edf2f2; margin-top: 22px; padding-top: 16px; }.mobile-menu,.mobile-close { display: none; }

@media (max-width: 1100px) { .stat-grid { grid-template-columns: repeat(2,1fr); }.dashboard-grid,.detail-grid { grid-template-columns: 1fr; }.page-content { padding: 26px 24px; }.topbar { padding: 0 24px; } }
@media (max-width: 760px) { .sidebar { transform: translateX(-100%); transition: .2s; }.sidebar-open .sidebar { transform: translateX(0); }.app-main { margin-left: 0; width: 100%; }.topbar { height: 62px; padding: 0 16px; }.mobile-menu { display: block; border: 0; background: none; color: var(--ink); font-size: 20px; margin-right: 10px; }.mobile-close { display: block; position: absolute; right: 10px; top: 8px; background: none; border: 0; color: #8eabb0; font-size: 22px; }.breadcrumbs span,.breadcrumbs b { display: none; }.profile-copy { display: none; }.page-content { padding: 22px 15px; }.page-heading { align-items: flex-start; gap: 15px; flex-direction: column; margin-bottom: 21px; }.page-heading h1 { font-size: 23px; }.page-heading .button { width: 100%; }.stat-grid { grid-template-columns: 1fr 1fr; gap: 10px; }.stat-card { padding: 13px; }.stat-card h3 { font-size: 22px; }.dashboard-grid,.dashboard-grid.equal { grid-template-columns: 1fr; gap: 13px; }.toolbar { align-items: stretch; flex-direction: column; }.toolbar-left,.toolbar-right { width: 100%; }.search-box,.search-box input { width: 100%; }.toolbar-right .button { flex: 1; }.form-grid { grid-template-columns: 1fr; }.form-grid label.full,.form-grid .full { grid-column: auto; }.role-select-grid,.permission-select-grid { grid-template-columns: 1fr; }.auth-shell { grid-template-columns: 1fr; width: min(470px,calc(100% - 24px)); min-height: auto; }.auth-brand-panel { padding: 36px 31px; }.auth-brand-panel .brand-mark { margin-bottom: 35px; }.auth-brand-panel h1 { font-size: 32px; }.auth-brand-panel p,.brand-lines { display: none; }.auth-card { padding: 36px 28px; }.setup-shell .auth-brand-panel { display: none; }.setup-shell .auth-card { padding: 38px 28px; }.key-values { grid-template-columns: 1fr; }.kanban { grid-template-columns: repeat(4,240px); }.data-table th,.data-table td { padding-left: 13px; padding-right: 13px; } }

/* Soft industrial UI refresh: lower contrast, calmer palette, larger reading size. */
:root {
  --ink: #2e454b;
  --ink-soft: #647b80;
  --muted: #91a2a5;
  --line: #dce6e5;
  --canvas: #f0f4f2;
  --nav: #29464e;
  --cyan: #3e8490;
  --teal: #57958b;
  --orange: #bd8b5c;
  --red: #b97976;
  --purple: #82799b;
  --shadow: 0 10px 28px rgba(49, 76, 78, .055);
}
html, body { font-size: 16px; color: var(--ink); background: var(--canvas); }
.sidebar { background: var(--nav); padding-top: 24px; }
.sidebar-brand strong { font-size: 15px; }
.sidebar-brand span { font-size: 12px; color: #a9c1c1; }
.sidebar-label { color: #8ca7a8; font-size: 11px; }
.nav-item { color: #d0dddd; min-height: 46px; font-size: 14px; }
.nav-item.active { background: rgba(116, 185, 177, .2); box-shadow: inset 3px 0 #91d1c8; }
.nav-item.active .icon { color: #b1e1d9; }
.system-status strong { font-size: 12px; }.system-status small { font-size: 11px; }
.breadcrumbs { font-size: 14px; }.profile-copy strong { font-size: 14px; }.profile-copy small { font-size: 12px; }
.page-heading h1 { font-size: 29px; }.page-heading p { font-size: 15px; }.eyebrow, .section-kicker { font-size: 11px; letter-spacing: 1.45px; }
.button { font-size: 14px; padding: 11px 16px; }.button .icon { width: 17px; height: 17px; }
.card-head { padding: 21px 22px; }.card-head h2 { font-size: 16px; }.card-head p { font-size: 13px; }.card-body { padding: 22px; }
.stat-card { padding: 20px; }.stat-head { font-size: 13px; }.stat-card h3 { font-size: 29px; }.stat-meta { font-size: 12px; }.stat-icon { width: 36px; height: 36px; }
.data-table th { font-size: 12px; padding: 13px 22px; }.data-table td { font-size: 14px; padding: 16px 22px; }.secondary-cell { font-size: 13px; }.primary-cell { font-size: 14px; }
.badge { font-size: 12px; padding: 6px 10px; }.badge-dot { width: 6px; height: 6px; }.list-row { padding: 16px 22px; }.list-copy strong { font-size: 14px; }.list-copy small { font-size: 12px; }.list-value { font-size: 13px; }
.search-box input, textarea, input, select { font-size: 14px; }.form-grid label { font-size: 13px; }.field-hint { font-size: 12px; }.form-section { font-size: 13px; }.role-option, .permission-option { font-size: 13px !important; }.role-option small, .permission-option small { font-size: 11px; }
.detail-title h1 { font-size: 25px; }.detail-meta { font-size: 13px; }.key-values dt { font-size: 12px; }.key-values dd { font-size: 15px; }.task-card strong { font-size: 14px; }.task-card small { font-size: 12px; }
.notice { font-size: 14px; }.timeline-copy strong { font-size: 14px; }.timeline-copy small { font-size: 12px; }.timeline-copy p { font-size: 13px; }.countdown { font-size: 13px; }
.stat-cyan .stat-icon { background: #e8f2f1; }.stat-orange .stat-icon { background: #f5eee7; }.stat-purple .stat-icon { background: #efedf3; }.stat-red .stat-icon { background: #f5eceb; }
.link-cell { color: #397983; }

/* Navy industrial direction: restrained dark-blue brand with steel-blue accents. */
:root {
  --ink: #1c3449;
  --ink-soft: #5b7182;
  --muted: #8a9ba8;
  --line: #d9e3ea;
  --canvas: #eef3f7;
  --nav: #102b43;
  --cyan: #3f7090;
  --teal: #527d9b;
  --orange: #ad855e;
  --red: #aa7373;
  --purple: #707f9d;
  --shadow: 0 10px 28px rgba(26, 55, 77, .065);
}
.sidebar { background: #102b43; }
.brand-mark { background: linear-gradient(135deg,#477e9d,#173b5a); box-shadow: 0 8px 24px rgba(30, 73, 105, .25); }
.sidebar-brand span { color: #9eb5c4; }
.sidebar-label { color: #7997ad; }
.nav-item { color: #c2d0da; }
.nav-item:hover { background: rgba(119, 167, 195, .10); }
.nav-item.active { background: linear-gradient(90deg,rgba(87,139,172,.30),rgba(42,91,126,.18)); box-shadow: inset 3px 0 #8dbbd3; }
.nav-item.active .icon { color: #a6cee0; }
.system-status { border-color: rgba(124, 181, 211, .2); background: rgba(67, 116, 149, .16); }
.system-status > span { background: #82b7d0; box-shadow: 0 0 0 4px rgba(130,183,208,.12); }
.system-status strong { color: #e0edf4; }.system-status small { color: #9bb7c9; }.sidebar-version { color: #6e8fa6; }
.stat-cyan .stat-icon { background: #e5eff5; color: #3f7090; }.stat-orange .stat-icon { background: #f4eee8; }.stat-purple .stat-icon { background: #eceff5; }.stat-red .stat-icon { background: #f5ecec; }.stat-green .stat-icon { background: #e7eff4; color: #527d9b; }
.progress-line span { background: linear-gradient(90deg,#477f9f,#76a6bd); }
.list-marker { background: #e8f0f5; color: #4e7894; }
.link-cell { color: #376782; }
.bar { background: linear-gradient(#5b91ad,#315f7e); }
.preview-ribbon { background: #365f7c !important; box-shadow: 0 10px 25px rgba(30,70,100,.18) !important; }

/* Beginner-friendly production planning. */
.simple-guide { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 18px; }
.simple-guide-title { display: flex; align-items: center; gap: 12px; padding: 15px 17px; border: 1px solid #d8e4ea; background: #f8fbfc; border-radius: 12px; }
.guide-number { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: #e2edf4; color: #3d6d89; font-size: 12px; font-weight: 750; }
.simple-guide-title strong { display: block; font-size: 14px; color: var(--ink); }.simple-guide-title small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }
.owner-layout { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; margin-bottom: 18px; }
.focus-list { padding: 4px 22px 11px; }.focus-item { display: flex; align-items: center; gap: 13px; padding: 17px 0; border-bottom: 1px solid #e8eef1; }.focus-item:last-child { border-bottom: 0; }
.focus-icon { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; flex: none; }.focus-danger { color: #a86e70; background: #f7eded; }.focus-warning { color: #a37d56; background: #f7f0e9; }.focus-safe { color: #557d94; background: #e9f1f5; }
.focus-copy { flex: 1; min-width: 0; }.focus-copy strong { display: block; font-size: 14px; }.focus-copy small { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; }.focus-copy p { margin: 7px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.5; }.action-chip { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; color: #3d6d89; font-size: 12px; font-weight: 700; }.action-chip .icon { width: 14px; height: 14px; }.focus-done { color: #557d94; background: #e9f1f5; border-radius: 14px; padding: 6px 10px; font-size: 12px; }
.quick-plan { overflow: hidden; }.step-pill { color: #3d6d89; background: #e8f0f5; border-radius: 20px; padding: 6px 10px; font-size: 11px; font-weight: 700; }.quick-step { display: flex; gap: 12px; padding: 14px 20px 4px; }.quick-step > span { display: grid; place-items: center; flex: none; width: 24px; height: 24px; border-radius: 50%; background: #dce9f1; color: #3d6d89; font-size: 12px; font-weight: 750; }.quick-step strong { display: block; font-size: 13px; }.quick-step small { display: block; margin: 4px 0 8px; color: var(--muted); font-size: 11px; }.quick-step > div { flex: 1; }.quick-step select { width: 100%; padding: 9px 10px; font-size: 12px; }.quick-plan > .button { margin: 17px 20px 0; width: calc(100% - 40px); }.plain-tip { margin: 13px 20px 19px; padding: 10px; border-radius: 8px; background: #f5f8fa; color: var(--muted); font-size: 11px; line-height: 1.5; }.plain-tip .icon { width: 13px; height: 13px; margin-right: 3px; vertical-align: -2px; }
.simple-task-list { overflow: hidden; }.simple-progress { width: 90px; height: 6px; display: inline-block; vertical-align: middle; margin-right: 6px; background: #e6edf0; border-radius: 8px; overflow: hidden; }.simple-progress span { display: block; height: 100%; background: #5c8ca7; border-radius: 8px; }.simple-task-list td small { color: var(--muted); font-size: 11px; }.priority-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 6px; }.priority-high { background: #b97976; }.priority-mid { background: #ad855e; }.priority-normal { background: #6b91a7; }
@media (max-width: 900px) { .simple-guide,.owner-layout { grid-template-columns: 1fr; }.focus-item { align-items: flex-start; flex-wrap: wrap; }.focus-item .action-chip { margin-left: 51px; }.quick-plan > .button { width: calc(100% - 40px); } }

/* Game-like team roster and drag/drop production map. */
.game-banner { display:flex; align-items:center; gap:14px; margin-bottom:18px; padding:16px 20px; border:1px solid #d7e3eb; border-radius:16px; background:linear-gradient(110deg,#f8fbfd,#edf4f8); box-shadow:0 8px 20px rgba(29,63,89,.04); }
.game-banner-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; background:#dceaf2; color:#3f7090; flex:none; }.game-banner-icon .icon { width:21px; height:21px; }
.game-banner strong { display:block; color:var(--ink); font-size:15px; }.game-banner span { display:block; margin-top:4px; color:var(--muted); font-size:12px; }.game-banner-progress { margin-left:auto; min-width:72px; text-align:center; padding-left:18px; border-left:1px solid #d4e1e9; }.game-banner-progress b { display:block; color:#3f7090; font-size:23px; line-height:1; }.game-banner-progress small { display:block; margin-top:4px; color:var(--muted); font-size:11px; }
.employee-board { display:grid; grid-template-columns:1.2fr .8fr; gap:18px; margin-bottom:18px; }.employee-list { padding:5px 20px 12px; }.employee-row { display:flex; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid #e8eef2; }.employee-row:last-child { border-bottom:0; }.employee-avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; color:#fff; font-weight:800; font-size:16px; flex:none; box-shadow:0 5px 12px rgba(21,55,79,.14); }.employee-copy { min-width:0; flex:1; }.employee-copy strong { display:block; font-size:14px; }.employee-copy span,.employee-copy small { display:block; margin-top:4px; color:var(--muted); font-size:12px; }.employee-capacity { min-width:52px; text-align:right; }.employee-capacity b { display:block; color:#3f7090; font-size:14px; }.employee-capacity small { display:block; margin-top:3px; color:var(--muted); font-size:10px; }.presence { display:inline-flex; align-items:center; gap:5px; padding:5px 8px; border-radius:12px; font-size:11px; white-space:nowrap; }.presence i { width:6px; height:6px; border-radius:50%; background:#78a0b5; }.presence-ready { color:#467c78; background:#e8f3f2; }.presence-ready i { background:#5c9e93; }.presence-busy { color:#896c4b; background:#f7f0e8; }.presence-busy i { background:#bd8c58; }.presence-away { color:#7c8491; background:#edf0f3; }.presence-away i { background:#aab2ba; }
.employee-rules { min-height:100%; }.role-legend { display:grid; gap:14px; padding:3px 22px 18px; }.role-legend > div { display:grid; grid-template-columns:34px 1fr; column-gap:10px; align-items:center; }.role-legend strong { font-size:13px; }.role-legend small { grid-column:2; margin-top:3px; color:var(--muted); font-size:11px; }.role-icon { grid-row:1 / span 2; width:34px; height:34px; display:grid; place-items:center; border-radius:10px; }.role-icon .icon { width:17px; height:17px; }.role-blue { color:#3f7090; background:#e7f0f5; }.role-purple { color:#707f9d; background:#eceff6; }.role-orange { color:#a77e53; background:#f6eee6; }
.employee-form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:15px; padding:20px 22px 22px; }.employee-form-grid label { display:flex; flex-direction:column; gap:7px; color:var(--ink-soft); font-size:13px; }.employee-form-grid label.full { grid-column:1 / -1; }.employee-form-grid small { color:var(--muted); font-size:11px; }.employee-form-grid input,.employee-form-grid select { width:100%; }.employee-form-grid .form-actions { display:flex; justify-content:flex-end; padding-top:3px; }
.schedule-game { overflow:hidden; margin-bottom:18px; }.schedule-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }.schedule-head h2 { margin-top:4px; }.schedule-actions { display:flex; gap:8px; flex:none; }.schedule-instruction { display:flex; align-items:center; gap:10px; margin:0 22px; padding:12px 14px; border:1px solid #e1eaf0; border-radius:11px; background:#f8fbfd; color:var(--ink-soft); font-size:12px; }.instruction-step { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }.instruction-step b { display:grid; place-items:center; width:21px; height:21px; border-radius:50%; background:#dceaf2; color:#3f7090; font-size:11px; }.instruction-arrow { color:#9ab0bd; }.schedule-status { margin-left:auto; display:inline-flex; align-items:center; gap:5px; color:#4e7e78; white-space:nowrap; }.schedule-status.is-saved { color:#2f8a6f; font-weight:700; }.schedule-status .icon { width:14px; height:14px; }
.schedule-layout { display:grid; grid-template-columns:220px 1fr; gap:14px; padding:16px 22px 0; }.schedule-queue { min-width:0; padding:14px; border:1px solid #dce7ee; border-radius:14px; background:#f7fafc; }.queue-head { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:12px; }.queue-head h3 { margin:0; font-size:15px; }.queue-head small { display:block; margin-top:4px; color:var(--muted); font-size:11px; }.queue-head > span { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; color:#3f7090; background:#dceaf2; font-size:12px; font-weight:800; }.queue-list { display:grid; gap:10px; }.queue-foot { display:flex; gap:5px; margin-top:13px; padding-top:11px; border-top:1px solid #e1eaf0; color:var(--muted); font-size:10px; line-height:1.5; }.queue-foot .icon { width:13px; height:13px; flex:none; }
.schedule-scroll { min-width:0; overflow-x:auto; padding-bottom:6px; }.schedule-grid { display:grid; grid-template-columns:190px repeat(5,minmax(165px,1fr)); gap:8px; min-width:1050px; }.schedule-corner,.schedule-day,.employee-lane-label,.schedule-cell { border:1px solid #dfe9ef; border-radius:12px; }.schedule-corner { display:flex; flex-direction:column; justify-content:center; padding:13px 15px; background:#f7fafc; }.schedule-corner span { color:var(--ink); font-size:12px; font-weight:800; }.schedule-corner small { margin-top:4px; color:var(--muted); font-size:10px; }.schedule-day { padding:12px 13px; background:#f7fafc; }.schedule-day strong { display:block; color:var(--ink); font-size:13px; }.schedule-day small,.schedule-day span { display:block; margin-top:4px; color:var(--muted); font-size:10px; }.schedule-day span { color:#5c8a99; }.schedule-day.is-today { border-color:#86b4cb; background:#edf5f9; box-shadow:inset 0 2px #5b91ad; }.employee-lane-label { display:flex; align-items:center; gap:8px; min-height:118px; padding:10px; background:#f7fafc; }.employee-lane-label > div:nth-child(2) { min-width:0; flex:1; }.employee-lane-label strong { display:block; font-size:12px; }.employee-lane-label small { display:block; margin-top:4px; color:var(--muted); font-size:10px; white-space:nowrap; }.employee-lane-label .presence { margin-top:auto; align-self:flex-end; font-size:9px; padding:4px 6px; }.employee-mini-avatar { width:30px; height:30px; display:grid; place-items:center; flex:none; border-radius:9px; color:#fff; font-size:13px; font-weight:800; }.avatar-blue { background:#4e809b; }.avatar-purple { background:#737f9e; }.avatar-orange { background:#ad835b; }.avatar-green { background:#5d8e82; }
.schedule-cell { position:relative; min-height:118px; padding:7px; background:#fff; transition:.15s ease; }.schedule-cell.is-today { background:#fbfdfe; }.schedule-cell.is-over { border-color:#4e8bad; background:#edf6fa; box-shadow:inset 0 0 0 2px rgba(78,139,173,.16); }.drop-hint { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); color:#b5c4cc; font-size:11px; pointer-events:none; }.mission-card { cursor:grab; user-select:none; border:1px solid #dce7ee; border-left:4px solid #5b91ad; border-radius:10px; padding:9px 10px; background:#fff; box-shadow:0 5px 13px rgba(28,59,80,.07); transition:transform .15s ease,box-shadow .15s ease; }.mission-card:hover { transform:translateY(-2px); box-shadow:0 8px 18px rgba(28,59,80,.12); }.mission-card.is-dragging { opacity:.45; transform:rotate(2deg); }.mission-blue { border-left-color:#4f86a2; }.mission-purple { border-left-color:#7b83a8; }.mission-orange { border-left-color:#bd8b5c; }.mission-top,.mission-bottom { display:flex; align-items:center; justify-content:space-between; gap:6px; }.mission-type { display:inline-flex; align-items:center; gap:4px; color:#668293; font-size:10px; }.mission-type .icon { width:12px; height:12px; }.mission-stars { color:#bd8b5c; font-size:10px; letter-spacing:1px; }.mission-card strong { display:block; margin:7px 0 5px; color:var(--ink); font-size:12px; line-height:1.4; }.mission-card small { display:block; color:var(--muted); font-size:10px; }.mission-bottom { margin-top:8px; color:var(--muted); font-size:10px; }.mission-badge { padding:3px 6px; border-radius:8px; color:#54788b; background:#edf4f7; }.compact-card { padding:8px 9px; }.compact-card strong { font-size:11px; margin:5px 0 4px; }.compact-card small { font-size:9px; }.compact-card .mission-bottom { display:none; }.schedule-note { display:flex; gap:9px; align-items:flex-start; margin:14px 22px 20px; padding:11px 13px; border-radius:10px; background:#f5f8fa; color:var(--muted); }.schedule-note > span { color:#5c8a99; }.schedule-note .icon { width:15px; height:15px; }.schedule-note strong { display:block; color:var(--ink-soft); font-size:11px; }.schedule-note small { display:block; margin-top:3px; font-size:10px; }
@media (max-width: 1000px) { .employee-board { grid-template-columns:1fr; }.schedule-head { flex-direction:column; }.schedule-actions { width:100%; }.schedule-actions .button { flex:1; }.schedule-layout { grid-template-columns:1fr; }.schedule-queue { order:0; }.queue-list { grid-template-columns:repeat(3,1fr); }.schedule-scroll { order:1; } }
@media (max-width: 700px) { .employee-form-grid { grid-template-columns:1fr; }.employee-form-grid label.full { grid-column:auto; }.employee-row { align-items:flex-start; flex-wrap:wrap; }.employee-capacity { margin-left:auto; }.employee-row .presence { order:5; margin-left:50px; }.schedule-instruction { flex-wrap:wrap; }.instruction-arrow { display:none; }.schedule-status { width:100%; margin-left:0; padding-top:5px; border-top:1px solid #e1eaf0; }.queue-list { grid-template-columns:1fr; } }

/* Shared game-board language for the whole workspace. */
.game-quest-panel,.game-quest-strip { border:1px solid #d6e3eb; border-radius:16px; background:linear-gradient(110deg,#f8fbfd,#edf4f8); box-shadow:0 8px 22px rgba(29,63,89,.045); }
.game-quest-panel { margin-bottom:18px; padding:20px 22px 17px; }.quest-head { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; }.quest-head h2 { margin:4px 0 5px; font-size:17px; }.quest-head p { margin:0; color:var(--muted); font-size:12px; }.level-badge { color:#3e6f8b; background:#dceaf2; border-radius:16px; padding:7px 11px; font-size:11px; font-weight:800; white-space:nowrap; }.quest-path { display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin-top:19px; }.quest-node { position:relative; text-align:center; }.quest-node:not(:last-child):after { content:""; position:absolute; z-index:0; top:16px; left:50%; width:100%; height:2px; background:#d3e2ea; }.quest-node.done:not(:last-child):after { background:#78a4b8; }.quest-dot { position:relative; z-index:1; display:grid; place-items:center; width:32px; height:32px; margin:0 auto 7px; border:3px solid #f8fbfd; border-radius:50%; color:#5e869d; background:#dceaf2; box-shadow:0 0 0 1px #a5c3d2; }.quest-node.done .quest-dot { color:#fff; background:#4e809b; box-shadow:0 0 0 1px #4e809b; }.quest-node.current .quest-dot { color:#fff; background:#ad855e; box-shadow:0 0 0 4px rgba(173,133,94,.12),0 0 0 1px #ad855e; }.quest-dot .icon { width:14px; height:14px; }.quest-node strong { display:block; color:var(--ink); font-size:12px; }.quest-node small { display:block; margin-top:4px; color:var(--muted); font-size:10px; }.quest-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:17px; padding-top:12px; border-top:1px solid #dfe9ef; color:var(--muted); font-size:11px; }.quest-footer b { color:#3f7090; font-size:14px; }.game-quest-strip { display:flex; align-items:center; gap:15px; margin-bottom:18px; padding:12px 16px; }.game-quest-strip .quest-strip-label { color:var(--ink); font-size:12px; font-weight:800; white-space:nowrap; }.game-quest-strip .quest-strip-path { display:flex; align-items:center; gap:8px; flex:1; }.game-quest-strip .quest-strip-path span { display:inline-flex; align-items:center; gap:5px; color:var(--muted); font-size:11px; }.game-quest-strip .quest-strip-path b { color:#4e809b; }.game-quest-strip .quest-strip-path .icon { width:13px; height:13px; }.game-quest-strip .quest-strip-score { color:#3e6f8b; font-size:11px; font-weight:800; white-space:nowrap; }
@media (max-width: 700px) { .quest-head { flex-direction:column; }.quest-path { gap:2px; }.quest-node small { display:none; }.quest-footer { align-items:flex-start; flex-direction:column; }.game-quest-strip { align-items:flex-start; flex-direction:column; gap:8px; }.game-quest-strip .quest-strip-path { width:100%; overflow-x:auto; padding-bottom:2px; }.game-quest-strip .quest-strip-path span { white-space:nowrap; } }
.game-quest-strip .quest-strip-path span a { display:inline-flex; align-items:center; gap:5px; color:inherit; text-decoration:none; }.game-quest-strip .quest-strip-path span.is-current { color:#3f7090; font-weight:800; }.game-quest-strip .quest-strip-path span.is-current a { padding:4px 8px; border-radius:10px; background:#dceaf2; }

/* Extrusion and pelletizing engineering data */
.domain-spec-card{background:linear-gradient(135deg,#f8fbfc 0%,#f0f6f7 100%);border:1px solid #d5e4e8;overflow:hidden}
.domain-spec-card .card-head{border-bottom:1px solid #dbe8eb}
.spec-flag{display:inline-flex;align-items:center;gap:7px;color:#176d73;background:#e3f4f1;border:1px solid #b9e2dc;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700;white-space:nowrap}
.spec-flag svg{width:15px;height:15px}
.spec-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px}
.spec-grid>div{background:#fff;border:1px solid #dfeaec;border-radius:12px;padding:13px 14px;min-height:66px}
.spec-grid span,.spec-note span{display:block;color:#6c858d;font-size:12px;margin-bottom:6px}
.spec-grid strong{display:block;color:#183b48;font-size:15px;line-height:1.4}
.spec-note{margin:0 18px 18px;padding:12px 14px;background:#eaf4f5;border-radius:10px;color:#355b65;font-size:13px;line-height:1.7}
.spec-note span{display:inline;color:#6c858d;margin:0 4px 0 0}
.material-chip{display:inline-flex;padding:5px 9px;border-radius:8px;background:#e5f1f3;color:#1a6872;font-weight:700;font-size:12px}
@media (max-width:1100px){.spec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:650px){.spec-grid{grid-template-columns:1fr}.spec-flag{display:none}}

.equipment-module-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px;padding:11px 14px;border:1px solid #d6e3eb;border-radius:12px;background:#f7fafc}
.equipment-module{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:9px;color:#7b919d;background:#edf2f5;font-size:11px;font-weight:700}
.equipment-module .icon{width:13px;height:13px}.equipment-module.is-done{color:#3f7875;background:#e6f2f0}.equipment-module.is-current{color:#3f7090;background:#dceaf2;box-shadow:0 0 0 1px #a9c5d4}
.equipment-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}
.equipment-card{padding:20px;overflow:hidden}.equipment-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.equipment-type{display:inline-flex;align-items:center;gap:5px;color:#4f809a;font-size:11px;font-weight:800}.equipment-type .icon{width:15px;height:15px}.equipment-card h2{margin:16px 0 5px;color:var(--ink);font-size:17px}.equipment-card>p{margin:0;color:var(--muted);font-size:12px}.equipment-spec-list{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:18px}.equipment-spec-list>div{padding:10px;border:1px solid #e4ecef;border-radius:10px;background:#f9fbfc}.equipment-spec-list span{display:block;color:var(--muted);font-size:10px}.equipment-spec-list strong{display:block;margin-top:5px;color:var(--ink-soft);font-size:12px;line-height:1.4}.equipment-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid #e6eef1;color:var(--muted);font-size:11px}.equipment-card-foot span{display:inline-flex;align-items:center;gap:4px}.equipment-card-foot .icon{width:13px;height:13px}.equipment-card-foot a{display:inline-flex;align-items:center;gap:4px;color:#3f7090;font-weight:700}.equipment-card-foot a .icon{width:12px;height:12px}
.equipment-checklist{overflow:hidden}.equipment-form-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;padding:20px 22px 24px}.equipment-form-preview label{display:flex;flex-direction:column;gap:7px;color:var(--ink-soft);font-size:13px}.equipment-form-preview input,.equipment-form-preview select{width:100%}
@media (max-width:1100px){.equipment-cards{grid-template-columns:1fr 1fr}}@media (max-width:700px){.equipment-cards,.equipment-form-preview{grid-template-columns:1fr}.equipment-module-strip{overflow-x:auto;flex-wrap:nowrap}.equipment-module{white-space:nowrap}}

/* Apple-inspired visual system: quiet surfaces, generous spacing, system typography. */
:root {
  --ink: #1d1d1f; --ink-soft: #6e6e73; --muted: #8e8e93; --line: rgba(60,60,67,.16);
  --panel: rgba(255,255,255,.94); --canvas: #f5f5f7; --nav: rgba(255,255,255,.88);
  --cyan: #007aff; --teal: #34c759; --orange: #ff9f0a; --red: #ff3b30; --purple: #5856d6;
  --shadow: 0 10px 30px rgba(0,0,0,.055); --radius: 18px;
}
html,body { font-family: -apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI","Microsoft YaHei",sans-serif; color:var(--ink); background:var(--canvas); font-size:15px; letter-spacing:-.01em; }
body { -webkit-font-smoothing:antialiased; }.app-body { background:var(--canvas); }
.sidebar { width:250px; padding:20px 13px 17px; background:var(--nav); color:#6e6e73; border-right:1px solid rgba(60,60,67,.12); box-shadow:8px 0 28px rgba(0,0,0,.025); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); }
.sidebar-brand { height:57px; padding:0 11px 21px; gap:11px; border-bottom:1px solid rgba(60,60,67,.12); }.sidebar-brand strong { color:#1d1d1f; font-size:14px; letter-spacing:2px; }.sidebar-brand span { color:#8e8e93; font-size:11px; letter-spacing:.3px; }
.brand-mark { width:38px; height:38px; border-radius:12px; background:linear-gradient(145deg,#2f9df4,#006fe6); box-shadow:0 7px 16px rgba(0,122,255,.22); }.brand-mark.small { width:32px; height:32px; border-radius:10px; }
.sidebar-label { margin:27px 12px 9px; color:#8e8e93; font-size:10px; letter-spacing:1.3px; font-weight:700; }.admin-label { margin-top:25px; }.sidebar-nav { gap:2px; }.nav-item { min-height:43px; padding:0 12px; border-radius:12px; color:#6e6e73; gap:12px; font-size:14px; transition:background .18s,color .18s,transform .18s; }.nav-item:hover { background:#f2f2f7; color:#1d1d1f; }.nav-item.active { background:#e8f2ff; color:#007aff; box-shadow:none; }.nav-item.active .icon { color:#007aff; }.nav-count { background:#ff3b30; padding:2px 6px; }
.system-status { margin:0 7px 17px; padding:11px; border:1px solid rgba(60,60,67,.12); border-radius:13px; background:#f2f2f7; }.system-status > span { background:#34c759; box-shadow:0 0 0 4px rgba(52,199,89,.13); }.system-status strong { color:#3a3a3c; font-size:11px; }.system-status small { color:#8e8e93; }.sidebar-version { color:#aeaeb2; }
.app-main { margin-left:250px; width:calc(100% - 250px); }.topbar { height:68px; padding:0 38px; background:rgba(255,255,255,.78); border-bottom:1px solid rgba(60,60,67,.12); backdrop-filter:saturate(180%) blur(22px); -webkit-backdrop-filter:saturate(180%) blur(22px); }
.breadcrumbs { color:#8e8e93; font-size:13px; }.breadcrumbs b { color:#c7c7cc; }.breadcrumbs strong { color:#1d1d1f; font-weight:650; }.topbar-actions { gap:12px; }.icon-button { color:#8e8e93; border-radius:10px; }.icon-button:hover { color:#007aff; background:#f2f2f7; }.profile-menu { border-left:1px solid rgba(60,60,67,.12); }.profile-copy strong { color:#1d1d1f; }.profile-copy small { color:#8e8e93; }.avatar { border-radius:50%; }
.page-content { max-width:1740px; padding:36px 40px 60px; }.page-heading { margin-bottom:30px; }.page-heading h1 { color:#1d1d1f; font-size:32px; font-weight:750; letter-spacing:-1.1px; }.page-heading p { color:#6e6e73; font-size:15px; }.eyebrow,.section-kicker { color:#007aff; font-size:11px; letter-spacing:1.3px; }
.button { border-radius:11px; min-height:40px; padding:10px 16px; font-size:14px; font-weight:650; box-shadow:none; }.button-primary { background:#007aff; color:#fff; box-shadow:0 7px 16px rgba(0,122,255,.17); }.button-primary:hover { background:#006fe6; transform:translateY(-1px); }.button-secondary { background:#e8f2ff; color:#006fe6; }.button-light { background:#fff; border:1px solid rgba(60,60,67,.16); color:#3a3a3c; }.button-light:hover { background:#f2f2f7; }.button-danger { background:#fff0ef; color:#d70015; }
.card { background:var(--panel); border:1px solid rgba(60,60,67,.12); border-radius:var(--radius); box-shadow:var(--shadow); }.card-head { padding:22px 23px; border-bottom:1px solid rgba(60,60,67,.09); }.card-head h2 { color:#1d1d1f; font-size:17px; font-weight:700; }.card-head p { color:#8e8e93; font-size:13px; }.card-body { padding:23px; }
.stat-grid { gap:16px; margin-bottom:20px; }.stat-card { padding:21px; border-radius:16px; }.stat-card:after { opacity:.018; }.stat-head { color:#8e8e93; font-size:13px; }.stat-icon { border-radius:11px; }.stat-card h3 { color:#1d1d1f; font-size:30px; font-weight:750; }.stat-meta { color:#8e8e93; font-size:12px; }.stat-cyan .stat-icon { background:#e8f2ff; color:#007aff; }.stat-orange .stat-icon { background:#fff4e1; color:#ff9f0a; }.stat-purple .stat-icon { background:#eeedff; color:#5856d6; }.stat-red .stat-icon { background:#ffebe9; color:#ff3b30; }.stat-green .stat-icon { background:#e7f8ec; color:#34c759; }
.dashboard-grid { gap:20px; margin-bottom:20px; }.data-table th { color:#8e8e93; background:#fafafa; font-size:11px; font-weight:700; padding:13px 22px; }.data-table td { color:#3a3a3c; border-top:1px solid rgba(60,60,67,.09); padding:16px 22px; font-size:14px; }.data-table tr:hover td { background:#fafafa; }.primary-cell { color:#1d1d1f; font-weight:700; }.secondary-cell { color:#8e8e93; font-size:13px; }.link-cell { color:#007aff; }.empty-icon { background:#f2f2f7; color:#8e8e93; }.list-row { border-top-color:rgba(60,60,67,.09); }.list-marker { background:#e8f2ff; color:#007aff; }.list-copy strong { color:#1d1d1f; }.list-copy small,.list-value { color:#8e8e93; }.progress-line { background:#e5e5ea; }.progress-line span { background:linear-gradient(90deg,#007aff,#5ac8fa); }
.badge-blue { background:#e8f2ff; color:#007aff; }.badge-cyan { background:#e6f8f5; color:#248a75; }.badge-green { background:#e7f8ec; color:#248a3d; }.badge-amber,.badge-orange { background:#fff4e1; color:#b86f00; }.badge-red { background:#ffebe9; color:#d70015; }.badge-purple { background:#eeedff; color:#4f4dcc; }.badge-gray { background:#f2f2f7; color:#8e8e93; }
.toolbar { margin-bottom:20px; }.search-box .icon { color:#8e8e93; }.search-box input,textarea,input,select { border-color:rgba(60,60,67,.18); border-radius:11px; background:#fff; color:#1d1d1f; }.search-box input { min-height:40px; }.search-box input:focus,textarea:focus,input:focus,select:focus { border-color:#007aff; box-shadow:0 0 0 4px rgba(0,122,255,.12); }.form-grid label { color:#6e6e73; font-size:14px; }.form-section { color:#007aff; border-bottom-color:rgba(60,60,67,.12); font-size:13px; }.form-actions { border-top-color:rgba(60,60,67,.1); }
.notice { border-radius:12px; font-size:14px; }.notice-info { color:#006fe6; background:#eaf3ff; border-color:#c9e1ff; }.notice-success { background:#eaf8ee; border-color:#c8edd3; }.notice-danger { background:#ffefed; border-color:#ffd1cc; }
.game-quest-panel,.game-quest-strip { border-color:rgba(60,60,67,.12); background:rgba(255,255,255,.82); box-shadow:var(--shadow); }.game-quest-panel { padding:22px 24px 18px; }.quest-head h2 { color:#1d1d1f; }.quest-head p,.quest-node small,.quest-footer { color:#8e8e93; }.level-badge { color:#007aff; background:#e8f2ff; }.quest-node:not(:last-child):after { background:#d1d1d6; }.quest-dot { color:#8e8e93; background:#f2f2f7; box-shadow:0 0 0 1px #d1d1d6; }.quest-node.done .quest-dot { background:#007aff; box-shadow:0 0 0 1px #007aff; }.quest-node.current .quest-dot { background:#ff9f0a; box-shadow:0 0 0 4px rgba(255,159,10,.14),0 0 0 1px #ff9f0a; }.game-quest-strip { padding:13px 17px; }.game-quest-strip .quest-strip-label { color:#1d1d1f; }.game-quest-strip .quest-strip-path span.is-current { color:#007aff; }.game-quest-strip .quest-strip-path span.is-current a { background:#e8f2ff; }.game-quest-strip .quest-strip-score { color:#007aff; }
.simple-guide-title { background:#fff; border-color:rgba(60,60,67,.12); border-radius:14px; }.guide-number { background:#e8f2ff; color:#007aff; }.simple-guide-title strong { color:#1d1d1f; }.simple-guide-title small { color:#8e8e93; }.focus-item { border-bottom-color:rgba(60,60,67,.1); }.focus-copy strong { color:#1d1d1f; }.focus-copy small,.focus-copy p { color:#8e8e93; }.focus-danger { background:#ffebe9; color:#ff3b30; }.focus-warning { background:#fff4e1; color:#ff9f0a; }.focus-safe { background:#e8f2ff; color:#007aff; }.action-chip { color:#007aff; }.focus-done { background:#e7f8ec; color:#248a3d; }.step-pill { color:#007aff; background:#e8f2ff; }.quick-step > span { background:#e8f2ff; color:#007aff; }.plain-tip { background:#f2f2f7; color:#8e8e93; }
.schedule-game { border-color:rgba(60,60,67,.12); }.schedule-instruction,.schedule-queue,.schedule-corner,.schedule-day,.employee-lane-label { border-color:rgba(60,60,67,.12); background:#fafafa; }.schedule-cell { border-color:rgba(60,60,67,.12); background:#fff; }.schedule-day.is-today,.schedule-cell.is-today { background:#f5f9ff; }.schedule-day.is-today { border-color:#9ccaff; box-shadow:inset 0 2px #007aff; }.schedule-cell.is-over { border-color:#007aff; background:#eaf3ff; }.schedule-status { color:#248a3d; }.mission-card { border-color:rgba(60,60,67,.12); box-shadow:0 5px 13px rgba(0,0,0,.06); }.mission-card:hover { box-shadow:0 9px 20px rgba(0,0,0,.1); }.mission-blue { border-left-color:#007aff; }.mission-purple { border-left-color:#5856d6; }.mission-orange { border-left-color:#ff9f0a; }.mission-type { color:#6e6e73; }.mission-card strong { color:#1d1d1f; }.mission-card small,.mission-bottom,.queue-head small,.queue-foot { color:#8e8e93; }.mission-badge { background:#e8f2ff; color:#006fe6; }.schedule-note { background:#f2f2f7; color:#8e8e93; }.schedule-note strong { color:#3a3a3c; }
.equipment-module-strip { border-color:rgba(60,60,67,.12); background:#fff; }.equipment-module { color:#8e8e93; background:#f2f2f7; }.equipment-module.is-done { color:#248a3d; background:#e7f8ec; }.equipment-module.is-current { color:#007aff; background:#e8f2ff; box-shadow:0 0 0 1px #9ccaff; }.equipment-card { box-shadow:var(--shadow); }.equipment-card h2,.equipment-spec-list strong { color:#1d1d1f; }.equipment-card>p,.equipment-spec-list span,.equipment-card-foot { color:#8e8e93; }.equipment-spec-list>div { border-color:rgba(60,60,67,.1); background:#fafafa; }.equipment-card-foot { border-top-color:rgba(60,60,67,.1); }.equipment-card-foot a { color:#007aff; }.domain-spec-card { background:#fff; border-color:rgba(60,60,67,.12); }.spec-flag { color:#007aff; background:#e8f2ff; border-color:#c9e1ff; }.spec-grid>div { border-color:rgba(60,60,67,.1); background:#fafafa; }.spec-grid span,.spec-note span { color:#8e8e93; }.spec-grid strong { color:#1d1d1f; }.spec-note { background:#f2f2f7; color:#6e6e73; }.material-chip { color:#006fe6; background:#e8f2ff; }
.kanban-column { background:#eaeaef; }.kanban-head span { background:#d1d1d6; color:#6e6e73; }.task-card { border-color:rgba(60,60,67,.12); box-shadow:0 5px 12px rgba(0,0,0,.045); }.task-card strong { color:#1d1d1f; }
.auth-page { background:#f5f5f7; }.auth-page:before,.auth-page:after { border-color:rgba(0,122,255,.1); }.auth-shell { border:1px solid rgba(60,60,67,.12); box-shadow:0 25px 70px rgba(0,0,0,.1); }.auth-brand-panel { background:linear-gradient(145deg,#eef6ff,#f7f7f8); color:#1d1d1f; }.auth-brand-panel:after { border-color:rgba(0,122,255,.15); box-shadow:0 0 0 35px rgba(0,122,255,.04),0 0 0 70px rgba(0,122,255,.025); }.auth-brand-panel .eyebrow { color:#007aff; }.auth-brand-panel h1 span { color:#6e6e73; }.auth-brand-panel p { color:#6e6e73; }.brand-lines i { background:#007aff; }.brand-lines i:nth-child(2) { background:#ff9f0a; }.brand-lines i:nth-child(3) { background:#d1d1d6; }.auth-card { background:#fff; }.auth-card-head h2 { color:#1d1d1f; }.auth-card-head p { color:#8e8e93; }.login-field .icon { color:#8e8e93; }.login-options { color:#8e8e93; }.login-options input { accent-color:#007aff; }.auth-footer,.setup-note { color:#8e8e93; border-top-color:rgba(60,60,67,.1); }
.preview-ribbon { background:#1d1d1f !important; box-shadow:0 8px 22px rgba(0,0,0,.12) !important; }
@media (max-width:760px) { .app-main { margin-left:0; width:100%; }.topbar { background:rgba(255,255,255,.9); }.page-content { padding:25px 16px 42px; }.page-heading h1 { font-size:28px; } }

/* Contract-first production planning. */
.contract-plan-intro{display:flex;align-items:center;gap:16px;padding:20px 22px;margin-bottom:28px;background:linear-gradient(105deg,#fff,#f7fbff);border-color:#d8e7fa}.contract-plan-intro-icon{display:grid;place-items:center;width:45px;height:45px;flex:none;border-radius:14px;color:#007aff;background:#e8f2ff}.contract-plan-intro-icon .icon{width:22px;height:22px}.contract-plan-intro h2{margin:0;color:#1d1d1f;font-size:18px}.contract-plan-intro p{margin:6px 0 0;color:#6e6e73;font-size:14px;line-height:1.6}.contract-plan-rule{margin-left:auto;padding-left:20px;border-left:1px solid #dce5ef;white-space:nowrap}.contract-plan-rule strong,.contract-plan-rule span{display:block}.contract-plan-rule strong{color:#007aff;font-size:13px}.contract-plan-rule span{margin-top:4px;color:#8e8e93;font-size:12px}.contract-plan-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:15px}.contract-plan-toolbar h2{margin:0;font-size:20px;letter-spacing:-.4px}.contract-plan-toolbar p{margin:5px 0 0;color:#8e8e93;font-size:13px}.contract-plan-list{display:grid;gap:13px}.contract-plan-card{display:flex;align-items:center;gap:22px;padding:20px 22px;transition:transform .18s,box-shadow .18s,border-color .18s}.contract-plan-card:hover{transform:translateY(-2px);border-color:#9ccaff;box-shadow:0 15px 35px rgba(0,122,255,.1)}.contract-plan-card-main{min-width:0;flex:1}.contract-plan-card-kicker{display:flex;align-items:center;gap:8px}.contract-no-chip{display:inline-flex;padding:5px 8px;border-radius:7px;background:#f2f2f7;color:#6e6e73;font-size:11px;font-weight:750;letter-spacing:.2px}.contract-plan-card h2{margin:11px 0 5px;font-size:18px;color:#1d1d1f}.contract-plan-card p{margin:0;color:#8e8e93;font-size:13px}.contract-plan-meta{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-top:14px;color:#6e6e73;font-size:12px}.contract-plan-meta span{display:inline-flex;align-items:center;gap:5px}.contract-plan-meta .icon{width:14px;height:14px;color:#007aff}.contract-plan-card-progress{width:160px;flex:none}.contract-plan-progress-head{display:flex;justify-content:space-between;align-items:baseline}.contract-plan-progress-head strong{font-size:20px;color:#1d1d1f}.contract-plan-progress-head small{color:#8e8e93;font-size:11px}.contract-plan-card-progress .simple-progress{width:100%;margin:10px 0 8px}.contract-plan-card-progress .countdown{font-size:12px}.contract-plan-card-arrow{display:grid;place-items:center;width:35px;height:35px;flex:none;border-radius:50%;color:#007aff;background:#e8f2ff}.contract-plan-card-arrow .icon{width:16px;height:16px}.production-help{display:flex;align-items:center;gap:10px;margin-top:18px;padding:14px 16px;border-radius:13px;background:#f2f2f7;color:#8e8e93}.production-help>span{color:#34c759}.production-help .icon{width:17px;height:17px}.production-help strong,.production-help small{display:block}.production-help strong{color:#3a3a3c;font-size:13px}.production-help small{margin-top:3px;font-size:12px}
.contract-plan-heading{align-items:center}.contract-plan-heading-actions{display:flex;align-items:center;gap:14px}.contract-plan-summary{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:20px;padding:18px 21px;margin-bottom:20px}.contract-plan-summary-title strong,.contract-plan-summary-title small{display:block}.contract-plan-summary-title strong{margin-top:10px;font-size:15px}.contract-plan-summary-title small{margin-top:4px;color:#8e8e93;font-size:11px;line-height:1.5}.contract-spec-chips{display:grid;grid-template-columns:repeat(6,minmax(80px,1fr));gap:8px}.contract-spec-chips span{padding:10px 11px;border-radius:10px;background:#f2f2f7}.contract-spec-chips small,.contract-spec-chips b{display:block}.contract-spec-chips small{color:#8e8e93;font-size:10px}.contract-spec-chips b{margin-top:5px;color:#1d1d1f;font-size:12px;line-height:1.35}.contract-plan-summary-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.plan-progress{display:flex;align-items:baseline;gap:6px;color:#8e8e93}.plan-progress strong{color:#007aff;font-size:19px}.plan-progress span{font-size:11px}.contract-plan-board{overflow:hidden}.contract-plan-board-head{align-items:flex-start}.contract-plan-board-tools{display:flex;gap:8px;align-items:center}.contract-plan-empty{text-align:center;padding:60px 25px}.contract-plan-empty h3{margin:0 0 7px;font-size:18px}.contract-plan-empty p{max-width:520px;margin:0 auto;color:#8e8e93;font-size:13px;line-height:1.7}.contract-map-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:16px;padding:18px 22px 0}.package-queue{padding:15px;border:1px solid rgba(60,60,67,.12);border-radius:14px;background:#fafafa}.package-queue-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:13px}.package-queue-head h3{margin:0;font-size:15px}.package-queue-head small{display:block;margin-top:5px;color:#8e8e93;font-size:11px}.package-queue-head>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;color:#007aff;background:#e8f2ff;font-size:12px;font-weight:800}.package-list{display:grid;gap:10px}.package-list .mission-card{padding:11px}.package-all-done{display:flex;align-items:center;justify-content:center;gap:5px;padding:22px 8px;color:#248a3d;font-size:12px}.package-all-done .icon{width:15px;height:15px}.package-legend{display:flex;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(60,60,67,.1);color:#8e8e93;font-size:10px}.package-legend span{display:inline-flex;align-items:center;gap:4px}.package-legend .icon{width:12px;height:12px}.legend-production{color:#007aff}.legend-purchase{color:#ff9f0a}.contract-map-scroll{min-width:0;overflow-x:auto;padding-bottom:6px}.contract-map-grid{display:grid;grid-template-columns:190px repeat(5,minmax(155px,1fr));gap:8px;min-width:980px}.contract-map-grid .schedule-cell{min-height:120px}.contract-map-grid .employee-lane-label{min-height:120px}.contract-plan-board>.schedule-note{margin-bottom:20px}
@media(max-width:1100px){.contract-plan-summary{grid-template-columns:1fr auto}.contract-spec-chips{grid-column:1/-1;grid-row:2}.contract-map-layout{grid-template-columns:1fr}.package-list{grid-template-columns:repeat(3,minmax(0,1fr))}.package-legend{display:none}}
@media(max-width:700px){.contract-plan-intro{align-items:flex-start}.contract-plan-rule{display:none}.contract-plan-toolbar{align-items:flex-start;flex-direction:column}.contract-plan-card{align-items:flex-start;flex-wrap:wrap;gap:13px}.contract-plan-card-progress{width:calc(100% - 55px);margin-left:0}.contract-plan-card-arrow{margin-left:auto}.contract-plan-heading-actions{width:100%;justify-content:space-between}.contract-plan-summary{grid-template-columns:1fr}.contract-spec-chips{grid-template-columns:repeat(2,1fr);grid-column:auto;grid-row:auto}.contract-plan-summary-actions{align-items:stretch}.package-list{grid-template-columns:1fr}.contract-plan-board-tools{width:100%;flex-wrap:wrap}.contract-plan-board-tools form,.contract-plan-board-tools .button{flex:1}.contract-plan-board-head{flex-direction:column}}

.contract-demo-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:18px;margin-bottom:20px}.contract-demo-list,.contract-extract-panel{min-width:0;overflow:hidden}.demo-contract-items{display:grid;gap:9px;padding:13px}.demo-contract-item{display:block;padding:14px;border:1px solid transparent;border-radius:13px;color:inherit;background:#fafafa;transition:.18s}.demo-contract-item:hover{background:#f2f2f7}.demo-contract-item.is-active{border-color:#9ccaff;background:#eaf3ff;box-shadow:0 5px 15px rgba(0,122,255,.08)}.demo-contract-top{display:flex;align-items:center;justify-content:space-between;gap:7px}.demo-contract-item strong{display:block;margin-top:11px;color:#1d1d1f;font-size:14px}.demo-contract-item small{display:block;margin-top:5px;color:#8e8e93;font-size:11px}.demo-contract-item>div:last-child{display:flex;justify-content:space-between;gap:8px;margin-top:12px;color:#6e6e73;font-size:10px}.demo-contract-item>div:last-child span{display:inline-flex;align-items:center;gap:4px}.demo-contract-item>div:last-child .icon{width:12px;height:12px;color:#007aff}.contract-extract-panel .card-head{padding-bottom:18px}.contract-extract-panel .card-head h2{margin-top:7px;font-size:20px}.contract-extract-panel .card-head p{margin-top:6px}.extract-data-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:19px 22px}.extract-data-grid>div{padding:11px 12px;border-radius:10px;background:#fafafa;border:1px solid rgba(60,60,67,.1)}.extract-data-grid span,.extract-data-grid strong{display:block}.extract-data-grid span{color:#8e8e93;font-size:10px}.extract-data-grid strong{margin-top:5px;color:#1d1d1f;font-size:12px;line-height:1.4}.extract-action-row{display:flex;align-items:center;gap:13px;padding:0 22px 21px}.extract-action-row>span{display:inline-flex;align-items:center;gap:5px;color:#8e8e93;font-size:11px;line-height:1.5}.extract-action-row>span .icon{width:14px;height:14px;color:#34c759}.extract-action-row>span.is-saved{color:#248a3d;font-weight:650}.contract-preview-board{overflow:hidden}.demo-contract-map .mission-card{margin:0}.demo-contract-map .schedule-cell{min-height:120px}.demo-contract-map .employee-lane-label{min-height:120px}
@media(max-width:1100px){.contract-demo-layout{grid-template-columns:1fr}.extract-data-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.extract-data-grid{grid-template-columns:repeat(2,1fr)}.extract-action-row{align-items:flex-start;flex-direction:column}.extract-action-row .button{width:100%}}

/* Unified module experience: every business page explains the next action first. */
.module-guide{display:flex;align-items:center;gap:15px;margin:0 0 20px;padding:18px 21px;border:1px solid rgba(0,122,255,.14);border-radius:17px;background:linear-gradient(105deg,#fff 0%,#f7fbff 100%);box-shadow:0 8px 25px rgba(0,40,90,.045)}
.module-guide-icon{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:14px;color:#007aff;background:#e8f2ff}.module-guide-icon .icon{width:21px;height:21px}.module-guide strong,.module-guide span{display:block}.module-guide strong{color:#1d1d1f;font-size:15px}.module-guide span{margin-top:5px;color:#6e6e73;font-size:12px;line-height:1.55}.module-guide-next{margin-left:auto;padding-left:20px;border-left:1px solid #dce8f4;white-space:nowrap}.module-guide-next small,.module-guide-next b{display:block}.module-guide-next small{color:#8e8e93;font-size:10px}.module-guide-next b{margin-top:4px;color:#007aff;font-size:12px}
.customer-level{display:inline-flex;padding:4px 8px;border-radius:8px;color:#007aff;background:#e8f2ff;font-size:11px;font-weight:700}.step-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:9px;color:#007aff;background:#e8f2ff;font-size:11px;font-weight:750;white-space:nowrap}.create-guide-card{margin-top:20px}.create-guide-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:19px 22px}.create-guide-steps>div{display:grid;grid-template-columns:30px 1fr;column-gap:9px;align-items:center;padding:12px;border-radius:12px;background:#fafafa}.create-guide-steps b{grid-row:span 2;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;color:#007aff;background:#e8f2ff}.create-guide-steps strong{font-size:13px;color:#1d1d1f}.create-guide-steps small{margin-top:3px;color:#8e8e93;font-size:11px}
.module-two-col{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:20px;margin-top:20px}.inquiry-funnel{margin-bottom:0}.funnel-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;padding:18px 22px 21px}.funnel-step{min-height:102px;padding:13px;border:1px solid rgba(60,60,67,.09);border-radius:13px;background:#fafafa}.funnel-step-top{display:flex;align-items:center;gap:6px}.funnel-step-top>span{display:grid;place-items:center;width:23px;height:23px;border-radius:7px}.funnel-step-top .icon{width:13px;height:13px}.funnel-step-top b{font-size:12px;color:#3a3a3c}.funnel-step-top strong{margin-left:auto;font-size:19px;color:#1d1d1f}.funnel-step small{display:block;margin-top:13px;color:#8e8e93;font-size:10px;line-height:1.55}.funnel-blue .funnel-step-top>span{color:#007aff;background:#e8f2ff}.funnel-amber .funnel-step-top>span{color:#ff9f0a;background:#fff4e1}.funnel-purple .funnel-step-top>span{color:#5856d6;background:#eeedff}.funnel-green .funnel-step-top>span{color:#34c759;background:#e7f8ec}.funnel-gray .funnel-step-top>span{color:#8e8e93;background:#f2f2f7}.funnel-orange .funnel-step-top>span{color:#ff9f0a;background:#fff4e1}.next-action-card{min-width:0}.action-list{padding:9px 20px 17px}.action-list>div{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid rgba(60,60,67,.09)}.action-list>div:last-child{border-bottom:0}.action-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;flex:none}.action-icon .icon{width:15px;height:15px}.action-blue{color:#007aff;background:#e8f2ff}.action-purple{color:#5856d6;background:#eeedff}.action-orange{color:#ff9f0a;background:#fff4e1}.action-green{color:#34c759;background:#e7f8ec}.action-list strong,.action-list small{display:block}.action-list strong{font-size:12px;color:#1d1d1f}.action-list small{margin-top:3px;color:#8e8e93;font-size:10px;line-height:1.4}.action-list b{margin-left:auto;color:#007aff;font-size:15px}.next-action{display:inline-flex;align-items:center;gap:5px;color:#007aff;font-size:11px}.next-action .icon{width:13px;height:13px}.inquiry-detail-preview{margin-top:20px}.inquiry-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:19px 22px 0}.inquiry-fields>div{padding:13px;border-radius:11px;background:#fafafa;border:1px solid rgba(60,60,67,.09)}.inquiry-fields span,.inquiry-fields strong{display:block}.inquiry-fields span{color:#8e8e93;font-size:10px}.inquiry-fields strong{margin-top:7px;color:#1d1d1f;font-size:12px;line-height:1.5}.inquiry-detail-preview .form-actions{padding:18px 22px 22px}
.contract-health-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.health-card{display:flex;align-items:center;gap:12px;padding:17px 19px}.health-card>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:#007aff;background:#e8f2ff}.health-card>span .icon{width:18px;height:18px}.health-card small,.health-card strong,.health-card em{display:block}.health-card small{color:#8e8e93;font-size:11px}.health-card strong{margin-top:3px;color:#1d1d1f;font-size:23px}.health-card em{margin-top:3px;color:#248a3d;font-size:10px;font-style:normal}.contract-cockpit .card-head{align-items:flex-start}.contract-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;padding:19px 22px 22px}.contract-cockpit-card{padding:17px;border:1px solid rgba(60,60,67,.1);border-radius:15px;background:#fafafa}.contract-cockpit-top,.contract-cockpit-specs,.contract-progress-head,.contract-cockpit-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.contract-cockpit-card h3{margin:15px 0 5px;color:#1d1d1f;font-size:16px}.contract-cockpit-card>p{margin:0;color:#8e8e93;font-size:11px}.contract-cockpit-specs{justify-content:flex-start;flex-wrap:wrap;margin-top:13px;color:#6e6e73;font-size:10px}.contract-cockpit-specs span{display:inline-flex;align-items:center;gap:4px}.contract-cockpit-specs .icon{width:12px;height:12px;color:#007aff}.contract-progress-head{margin-top:16px}.contract-progress-head strong{color:#007aff;font-size:15px}.contract-progress-head span{color:#8e8e93;font-size:10px}.contract-cockpit-card .progress-line{margin-top:7px}.contract-cockpit-actions{margin-top:15px}.contract-cockpit-actions .button{padding:7px 10px;font-size:11px}.contract-cockpit-actions .link-cell{font-size:11px}.contract-create-guide{margin-top:20px}.contract-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:19px 22px 22px}.contract-step{position:relative;padding:15px;border:1px solid rgba(60,60,67,.1);border-radius:13px;background:#fafafa}.contract-step b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;color:#8e8e93;background:#f2f2f7;font-size:12px}.contract-step strong,.contract-step small{display:block}.contract-step strong{margin-top:12px;color:#1d1d1f;font-size:13px}.contract-step small{margin-top:5px;color:#8e8e93;font-size:11px;line-height:1.5}.contract-step.is-done{border-color:#bce8c7;background:#f7fff9}.contract-step.is-done b{color:#248a3d;background:#e7f8ec}.contract-step.is-current{border-color:#9ccaff;background:#f7fbff;box-shadow:0 5px 15px rgba(0,122,255,.08)}.contract-step.is-current b{color:#007aff;background:#e8f2ff}
.commissioning-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:20px}.commissioning-current .card-head{align-items:flex-start}.commissioning-current .card-head h2{margin-top:8px;font-size:19px}.commissioning-current .card-head p{margin-top:6px}.commissioning-progress{padding:20px 22px 0}.commissioning-progress>div:first-child{display:flex;justify-content:space-between;align-items:baseline}.commissioning-progress>div:first-child span{color:#6e6e73;font-size:12px}.commissioning-progress>div:first-child strong{color:#007aff;font-size:19px}.commissioning-progress .progress-line{margin-top:10px}.commissioning-checks{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.commissioning-checks span{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:8px;color:#8e8e93;background:#f2f2f7;font-size:10px}.commissioning-checks span .icon{width:12px;height:12px}.commissioning-checks span.is-done{color:#248a3d;background:#e7f8ec}.parameter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:20px 22px}.parameter-grid>div{padding:12px;border-radius:11px;background:#fafafa;border:1px solid rgba(60,60,67,.1)}.parameter-grid small,.parameter-grid strong,.parameter-grid span{display:block}.parameter-grid small{color:#8e8e93;font-size:10px}.parameter-grid strong{margin-top:5px;color:#1d1d1f;font-size:17px}.parameter-grid span{margin-top:3px;color:#248a3d;font-size:10px}.commissioning-current .form-actions{padding:0 22px 21px}.issue-list{padding:7px 20px 16px}.issue-item{display:grid;grid-template-columns:29px 1fr auto;gap:9px;padding:13px 0;border-bottom:1px solid rgba(60,60,67,.09)}.issue-item:last-child{border-bottom:0}.issue-symbol{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;color:#34c759;background:#e7f8ec}.issue-symbol .icon{width:14px;height:14px}.issue-item.is-open .issue-symbol{color:#ff3b30;background:#ffebe9}.issue-item strong,.issue-item small,.issue-item p{display:block}.issue-item strong{color:#1d1d1f;font-size:12px}.issue-item small{margin-top:4px;color:#8e8e93;font-size:10px;line-height:1.4}.issue-item p{margin:5px 0 0;color:#6e6e73;font-size:10px;line-height:1.5}.issue-item>span{color:#248a3d;font-size:10px;white-space:nowrap}.issue-item.is-open>span{color:#ff3b30}
.delivery-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.7fr);gap:20px}.delivery-current .card-head{align-items:flex-start}.delivery-current .card-head h2{margin-top:8px;font-size:19px}.delivery-current .card-head p{margin-top:6px}.delivery-checklist{padding:19px 22px}.delivery-check{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid rgba(60,60,67,.09)}.delivery-check:last-child{border-bottom:0}.delivery-check>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#8e8e93;background:#f2f2f7}.delivery-check>span .icon{width:14px;height:14px}.delivery-check strong,.delivery-check small{display:block}.delivery-check strong{color:#1d1d1f;font-size:13px}.delivery-check small{margin-top:4px;color:#8e8e93;font-size:10px}.delivery-check.is-done>span{color:#248a3d;background:#e7f8ec}.delivery-check.is-done small{color:#248a3d}.delivery-check.is-current>span{color:#007aff;background:#e8f2ff}.delivery-check.is-current strong{color:#007aff}.delivery-current .form-actions{padding:0 22px 21px}.delivery-cost .card-head{align-items:flex-start}.cost-total{padding:24px 21px 19px;text-align:center;background:#f7fbff}.cost-total small,.cost-total strong,.cost-total span{display:block}.cost-total small{color:#8e8e93;font-size:11px}.cost-total strong{margin-top:7px;color:#1d1d1f;font-size:27px}.cost-total span{margin-top:5px;color:#248a3d;font-size:10px}.cost-rows{padding:8px 21px 15px}.cost-rows>div{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(60,60,67,.09);color:#6e6e73;font-size:12px}.cost-rows b{color:#1d1d1f}.cost-rows .is-zero b{color:#248a3d}.delivery-cost .button-block{width:calc(100% - 42px);margin:0 21px 21px}.delivery-history{margin-top:20px}.warning-text{color:#ff3b30;font-size:11px}
.repair-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.75fr);gap:20px}.repair-workorders .card-head{align-items:flex-start}.repair-list{display:grid;gap:11px;padding:18px 22px 22px}.repair-card{padding:16px;border:1px solid rgba(60,60,67,.1);border-left:3px solid #ff9f0a;border-radius:14px;background:#fafafa}.repair-card.is-urgent{border-left-color:#ff3b30;background:#fffafa}.repair-card.is-done{border-left-color:#34c759;background:#fafffb}.repair-card-top{display:flex;align-items:center;justify-content:space-between}.repair-code{color:#8e8e93;font-size:10px;font-weight:800;letter-spacing:.4px}.repair-card h3{margin:12px 0 5px;color:#1d1d1f;font-size:15px}.repair-card>p{margin:0;color:#8e8e93;font-size:11px}.repair-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:13px;color:#6e6e73;font-size:10px}.repair-meta span{display:inline-flex;align-items:center;gap:4px}.repair-meta .icon{width:12px;height:12px;color:#007aff}.repair-result{display:flex;gap:8px;margin-top:13px;padding-top:12px;border-top:1px solid rgba(60,60,67,.09);font-size:10px;line-height:1.5}.repair-result strong{color:#1d1d1f;white-space:nowrap}.repair-result span{color:#6e6e73}.service-flow{display:grid;gap:0;padding:18px 21px}.service-flow>div{position:relative;display:grid;grid-template-columns:30px 1fr;column-gap:9px;min-height:65px}.service-flow>div:not(:last-child):after{content:"";position:absolute;left:14px;top:30px;bottom:0;width:1px;background:#d1d1d6}.service-flow b{position:relative;z-index:1;display:grid;place-items:center;width:29px;height:29px;border-radius:50%;color:#8e8e93;background:#f2f2f7}.service-flow b .icon{width:14px;height:14px}.service-flow strong,.service-flow small{display:block}.service-flow strong{padding-top:4px;color:#1d1d1f;font-size:12px}.service-flow small{margin-top:4px;color:#8e8e93;font-size:10px}.service-flow .is-done b{color:#248a3d;background:#e7f8ec}.service-flow .is-current b{color:#007aff;background:#e8f2ff;box-shadow:0 0 0 4px rgba(0,122,255,.08)}.plain-tip{display:flex;align-items:flex-start;gap:6px;margin:0 21px 20px;padding:11px 12px;border-radius:10px;color:#6e6e73;background:#f2f2f7;font-size:10px;line-height:1.55}.plain-tip .icon{width:13px;height:13px;flex:none;color:#34c759}.repair-create{margin-top:20px}.repair-fields{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:19px 22px 22px}.repair-fields>div{padding:12px;border-radius:11px;background:#fafafa;border:1px solid rgba(60,60,67,.1)}.repair-fields span,.repair-fields strong{display:block}.repair-fields span{color:#8e8e93;font-size:10px}.repair-fields strong{margin-top:6px;color:#1d1d1f;font-size:12px;line-height:1.4}
.report-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:20px;margin-bottom:20px}.conversion-bars{padding:19px 22px 23px;display:grid;gap:14px}.conversion-bars>div{display:grid;grid-template-columns:75px 1fr 45px;align-items:center;gap:10px}.conversion-bars span,.conversion-bars em{color:#6e6e73;font-size:11px;font-style:normal}.conversion-bars b{display:flex;align-items:center;min-width:38px;height:24px;padding:0 9px;border-radius:7px;color:#006fe6;background:#e8f2ff;font-size:11px}.conversion-bars b.is-green{color:#248a3d;background:#e7f8ec}.conversion-bars em{text-align:right;color:#8e8e93;font-size:10px}.stage-list{padding:10px 21px 18px}.stage-list>div{display:grid;grid-template-columns:11px 1fr auto;column-gap:8px;align-items:center;padding:10px 0}.stage-dot{width:9px;height:9px;border-radius:50%}.dot-blue{background:#007aff}.dot-purple{background:#5856d6}.dot-green{background:#34c759}.stage-list strong{color:#1d1d1f;font-size:12px}.stage-list b{color:#6e6e73;font-size:11px}.stage-list .progress-line{grid-column:2/-1;margin-top:7px}.report-table{margin-top:0}.report-focus-list{padding:7px 22px 18px}.report-focus-list>div{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid rgba(60,60,67,.09)}.report-focus-list>div:last-child{border-bottom:0}.focus-number{color:#007aff;font-size:11px;font-weight:800}.report-focus-list strong,.report-focus-list small{display:block}.report-focus-list strong{color:#1d1d1f;font-size:12px}.report-focus-list small{margin-top:4px;color:#8e8e93;font-size:10px}.focus-risk,.focus-warn,.focus-info{margin-left:auto;padding:4px 7px;border-radius:7px;font-size:10px;white-space:nowrap}.focus-risk{color:#ff3b30;background:#ffebe9}.focus-warn{color:#ff9f0a;background:#fff4e1}.focus-info{color:#007aff;background:#e8f2ff}
@media(max-width:1100px){.funnel-grid{grid-template-columns:repeat(3,1fr)}.contract-cards{grid-template-columns:1fr 1fr}.contract-health-grid{grid-template-columns:repeat(2,1fr)}.repair-fields{grid-template-columns:repeat(3,1fr)}.inquiry-fields{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.module-guide{align-items:flex-start}.module-guide-next{display:none}.create-guide-steps,.contract-steps,.contract-health-grid,.contract-cards{grid-template-columns:1fr}.module-two-col,.commissioning-layout,.delivery-layout,.repair-layout,.report-grid{grid-template-columns:1fr}.funnel-grid{grid-template-columns:repeat(2,1fr);padding-left:16px;padding-right:16px}.inquiry-fields,.parameter-grid,.repair-fields{grid-template-columns:1fr}.contract-cockpit .card-head{flex-direction:column}.contract-cockpit .toolbar-right{width:100%}.contract-cockpit .search-box{flex:1}.delivery-current .card-head,.commissioning-current .card-head{flex-direction:column}.conversion-bars>div{grid-template-columns:62px 1fr 38px}.report-focus-list>div{align-items:flex-start}.focus-risk,.focus-warn,.focus-info{margin-left:0}.repair-meta{gap:8px}.create-guide-steps{padding-left:16px;padding-right:16px}}

/* Large type + low-noise mode: prioritize the action and the current contract. */
body{font-size:16px;line-height:1.6}
.sidebar-label{font-size:12px}.nav-item{min-height:47px;font-size:16px}.sidebar-brand strong{font-size:17px}.sidebar-brand span{font-size:12px}.sidebar-bottom small{font-size:12px}.sidebar-version{font-size:11px}.breadcrumbs{font-size:14px}.profile-copy strong{font-size:14px}.profile-copy small{font-size:12px}
.page-content{padding-top:32px}.page-heading h1{font-size:36px;letter-spacing:-1.3px}.page-heading p{font-size:16px;line-height:1.65}.eyebrow,.section-kicker{font-size:12px}.card-head{padding:21px 24px}.card-head h2{font-size:19px}.card-head p{font-size:14px;line-height:1.55}.card-body{padding:24px}.button{font-size:14px;min-height:42px;padding:0 16px}.badge,.step-pill{font-size:12px}.data-table th{font-size:13px;padding:15px 22px}.data-table td{font-size:15px;padding:18px 22px}.primary-cell{font-size:15px}.secondary-cell{font-size:14px}.countdown{font-size:14px}.stat-head{font-size:14px}.stat-card h3{font-size:34px}.stat-meta{font-size:13px}.list-copy strong{font-size:15px}.list-copy small{font-size:13px}.list-value{font-size:14px}.game-quest-strip{min-height:52px}.game-quest-strip .quest-strip-label,.game-quest-strip .quest-strip-path span,.game-quest-strip .quest-strip-score{font-size:13px}.game-quest-strip .quest-strip-path .icon{width:15px;height:15px}
.module-guide strong{font-size:17px}.module-guide span{font-size:14px}.module-guide-next small{font-size:12px}.module-guide-next b{font-size:14px}.contract-plan-toolbar h2{font-size:22px}.contract-plan-toolbar p{font-size:14px}.contract-plan-intro{padding:17px 20px}.contract-plan-intro h2{font-size:20px}.contract-plan-intro p{font-size:14px}.contract-plan-rule strong{font-size:14px}.contract-plan-rule span{font-size:13px}.contract-plan-card h2{font-size:20px}.contract-plan-card p{font-size:14px}.contract-plan-meta{font-size:13px}.contract-plan-progress-head strong{font-size:22px}.contract-plan-progress-head small{font-size:13px}.production-help strong{font-size:15px}.production-help small{font-size:13px}
/* Remove repeated helper copy from the first production screen; the map remains the focus. */
.preview-body .notice-info{display:none}.preview-body .contract-plan-intro p{display:none}.preview-body .contract-plan-intro{margin-bottom:20px}.preview-body .contract-plan-rule span{display:none}.preview-body .contract-plan-card p{display:none}.preview-body .contract-plan-meta span:nth-child(2){display:none}.preview-body .contract-plan-list{gap:10px}.preview-body .contract-plan-card{padding:16px 19px}.preview-body .contract-plan-toolbar{margin-bottom:12px}
/* Keep secondary explanations readable, but do not let them compete with the action. */
.preview-body .section-kicker{letter-spacing:1px}.preview-body .card-head p{max-width:60ch}.preview-body .contract-demo-item small,.preview-body .mission-card small,.preview-body .employee-copy small{font-size:13px}.preview-body .mission-type,.preview-body .mission-bottom,.preview-body .drop-hint{font-size:12px}
@media(max-width:760px){.page-heading h1{font-size:32px}.page-heading p{font-size:15px}.nav-item{font-size:15px}.data-table th{font-size:12px}.data-table td{font-size:14px}.preview-body .contract-plan-intro{display:none}.preview-body .contract-plan-card p{display:block}.preview-body .contract-plan-meta span:nth-child(2){display:inline-flex}}

/* Production is a full-width workspace; the index and each contract map are separate screens. */
.screen-production .page-content{max-width:none;width:100%;margin:0}.production-screen{width:100%;max-width:none}.production-index-banner{display:flex;align-items:center;gap:18px;padding:20px 24px;margin-bottom:26px;border-color:#d8e7fa;background:linear-gradient(105deg,#fff,#f7fbff)}.production-index-icon{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:15px;color:#007aff;background:#e8f2ff}.production-index-icon .icon{width:23px;height:23px}.production-index-banner h2{margin:0;color:#1d1d1f;font-size:22px}.production-index-banner p{margin:6px 0 0;color:#6e6e73;font-size:15px}.production-index-rule{margin-left:auto;padding-left:24px;border-left:1px solid #dce8f4;white-space:nowrap}.production-index-rule strong,.production-index-rule b{display:block}.production-index-rule strong{color:#8e8e93;font-size:12px}.production-index-rule b{margin-top:4px;color:#007aff;font-size:15px}.production-index-head{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:14px}.production-index-head h2{margin:0;color:#1d1d1f;font-size:23px}.production-index-head p{margin:5px 0 0;color:#8e8e93;font-size:14px}.production-contract-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.production-contract-card{display:block;padding:22px;transition:transform .18s,box-shadow .18s,border-color .18s}.production-contract-card:hover{transform:translateY(-3px);border-color:#9ccaff;box-shadow:0 18px 42px rgba(0,122,255,.12)}.production-contract-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.production-contract-card h2{margin:18px 0 7px;color:#1d1d1f;font-size:21px}.production-contract-card>p{margin:0;color:#6e6e73;font-size:14px}.production-contract-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:17px;padding-top:15px;border-top:1px solid rgba(60,60,67,.1);color:#6e6e73;font-size:13px}.production-contract-facts span{display:inline-flex;align-items:center;gap:5px}.production-contract-facts .icon{width:15px;height:15px;color:#007aff}.production-contract-progress{margin-top:22px}.production-contract-progress>div:first-child{display:flex;align-items:baseline;gap:8px}.production-contract-progress strong{color:#007aff;font-size:25px}.production-contract-progress span{color:#8e8e93;font-size:12px}.production-contract-progress b{margin-left:auto;color:#007aff;font-size:13px}.production-contract-progress b .icon{width:14px;height:14px}.production-contract-progress .progress-line{height:7px;margin-top:10px}.production-index-help{display:flex;align-items:center;gap:10px;margin-top:19px;padding:15px 18px;border-radius:13px;background:#f2f2f7}.production-index-help>span{color:#34c759}.production-index-help>span .icon{width:18px;height:18px}.production-index-help strong{color:#3a3a3c;font-size:14px}.production-index-help small{color:#8e8e93;font-size:13px}.contract-map-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;margin-bottom:20px}.contract-map-toolbar-title{min-width:0}.contract-map-toolbar-title h1{margin:5px 0 2px;color:#1d1d1f;font-size:35px;letter-spacing:-1px}.contract-map-toolbar-title p{margin:0;color:#8e8e93;font-size:14px}.contract-map-toolbar>.countdown{font-size:15px}.contract-map-summary{display:grid;grid-template-columns:210px minmax(0,1fr) auto;align-items:center;gap:20px;padding:19px 22px;margin-bottom:20px}.contract-map-summary-title strong,.contract-map-summary-title small{display:block}.contract-map-summary-title strong{margin-top:10px;color:#1d1d1f;font-size:17px}.contract-map-summary-title small{margin-top:5px;color:#8e8e93;font-size:12px;line-height:1.5}.contract-map-specs{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:8px}.contract-map-specs>div{padding:10px;border-radius:10px;background:#fafafa;border:1px solid rgba(60,60,67,.1)}.contract-map-specs span,.contract-map-specs b{display:block}.contract-map-specs span{color:#8e8e93;font-size:11px}.contract-map-specs b{margin-top:5px;color:#1d1d1f;font-size:13px;line-height:1.35}.contract-map-summary-actions{display:flex;flex-direction:column;align-items:flex-end;gap:13px;white-space:nowrap}.contract-map-summary-actions>span{color:#8e8e93;font-size:12px}.contract-map-summary-actions>span strong{color:#007aff;font-size:22px}.contract-map-board{overflow:hidden}.contract-map-board .contract-map-layout{padding-top:18px}.contract-extract-result{margin:0 22px 20px;padding:12px 14px;border-radius:10px;background:#f2f2f7}.contract-extract-result .icon{color:#34c759}
@media(max-width:1100px){.production-contract-grid{grid-template-columns:1fr 1fr}.contract-map-summary{grid-template-columns:1fr auto}.contract-map-specs{grid-column:1/-1;grid-row:2}.contract-map-summary-actions{align-items:flex-end}}
@media(max-width:760px){.production-index-banner{align-items:flex-start}.production-index-rule{display:none}.production-index-head{align-items:flex-start;flex-direction:column}.production-contract-grid{grid-template-columns:1fr}.contract-map-toolbar{grid-template-columns:1fr;align-items:flex-start}.contract-map-toolbar>.countdown{justify-self:start}.contract-map-toolbar-title h1{font-size:30px}.contract-map-summary{grid-template-columns:1fr}.contract-map-specs{grid-template-columns:repeat(2,1fr);grid-column:auto;grid-row:auto}.contract-map-summary-actions{align-items:stretch}.contract-map-summary-actions .button{width:100%}}

/* Desktop workspace v2: a calm operations desktop with clear hierarchy and one primary action. */
:root{--desk-bg:#e9eef4;--desk-panel:#fff;--desk-line:#d9e2ec;--desk-ink:#18273d;--desk-muted:#708096;--desk-blue:#2677c9;--desk-navy:#14283f;--desk-lavender:#8b68df}
html,body{font-family:Inter,"SF Pro Display","Segoe UI","Microsoft YaHei",sans-serif;font-size:16px;color:var(--desk-ink)}
body.app-body{background:var(--desk-bg);line-height:1.6}
.sidebar{width:232px;background:linear-gradient(180deg,#14283f 0%,#193450 58%,#14283f 100%);border-right:0;box-shadow:8px 0 26px rgba(20,40,63,.09)}
.sidebar-brand{height:82px;padding:0 24px;border-bottom:1px solid rgba(255,255,255,.11)}
.sidebar-brand .brand-mark{width:38px;height:38px;border-radius:12px;background:#fff;color:var(--desk-blue);box-shadow:0 8px 20px rgba(0,0,0,.12)}
.sidebar-brand strong{font-size:18px;letter-spacing:.1px;color:#fff}.sidebar-brand span{font-size:12px;color:#b9c8d9}
.sidebar-label{margin:26px 22px 9px;color:#93a9c0;font-size:11px;letter-spacing:1.3px}
.nav-list{padding:0 12px}.nav-item{min-height:48px;margin:3px 0;border-radius:11px;color:#c7d4e3;font-size:16px;font-weight:600}.nav-item:hover{color:#fff;background:rgba(255,255,255,.09)}.nav-item.active{color:#fff;background:#2677c9;box-shadow:0 7px 17px rgba(0,0,0,.16)}.nav-item .icon{width:19px;height:19px}.sidebar-bottom{padding:18px 20px;color:#9eb2c7;border-top-color:rgba(255,255,255,.11)}.profile-copy strong{color:#fff}.profile-copy small{color:#a9bdd0}.sidebar-version{color:#8097ae}
.app-main{margin-left:232px;width:calc(100% - 232px);background:var(--desk-bg)}
.topbar{height:66px;padding:0 32px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--desk-line);box-shadow:0 1px 4px rgba(20,40,63,.03)}
.breadcrumbs{font-size:14px;color:var(--desk-muted)}.breadcrumbs strong{color:var(--desk-ink)}.breadcrumbs span{color:#a2afbd}.profile-copy strong{font-size:14px}
.page-content{max-width:none;padding:31px 34px 58px}
.page-heading{margin-bottom:24px;align-items:center}.page-heading h1{color:var(--desk-ink);font-size:36px;line-height:1.18;letter-spacing:-1.3px}.page-heading p{color:var(--desk-muted);font-size:16px;line-height:1.6}.eyebrow,.section-kicker{color:var(--desk-blue);font-size:12px;letter-spacing:1.15px;font-weight:750}
.card{border:1px solid var(--desk-line);border-radius:15px;background:var(--desk-panel);box-shadow:0 7px 20px rgba(20,40,63,.045)}.card:hover{box-shadow:0 10px 25px rgba(20,40,63,.065)}
.card-head{padding:22px 25px;border-bottom:1px solid #edf1f5}.card-head h2{font-size:20px;color:var(--desk-ink)}.card-head p{color:var(--desk-muted);font-size:14px}.card-body{padding:26px}
.button{min-height:44px;padding:0 17px;border-radius:10px;font-size:15px;font-weight:700;letter-spacing:.05px}.button-primary{background:var(--desk-blue);box-shadow:0 7px 16px rgba(38,119,201,.2)}.button-primary:hover{background:#1d67b0}.button-light{color:var(--desk-ink);background:#f5f8fb;border-color:var(--desk-line)}
.stat-grid{gap:18px;margin-bottom:21px}.stat-card{min-height:152px;padding:23px;border-radius:15px}.stat-head{color:var(--desk-muted);font-size:14px}.stat-icon{width:38px;height:38px;border-radius:11px}.stat-card h3{margin:17px 0 5px;color:var(--desk-ink);font-size:36px;letter-spacing:-1.5px}.stat-meta{color:var(--desk-muted);font-size:13px}
.dashboard-grid{gap:21px;margin-bottom:21px}.data-table th{padding:16px 23px;background:#f8fafc;color:#8291a4;font-size:12px;letter-spacing:.65px}.data-table td{padding:19px 23px;border-top-color:#edf1f5;color:#41526a;font-size:15px}.primary-cell{color:var(--desk-ink);font-size:16px}.secondary-cell{color:var(--desk-muted);font-size:14px}.data-table tr:hover td{background:#f7fafe}.link-cell{color:var(--desk-blue);font-size:14px}
.list-row{min-height:78px;padding:16px 24px;border-top-color:#edf1f5}.list-marker{width:36px;height:36px;border-radius:11px}.list-copy strong{color:var(--desk-ink);font-size:16px}.list-copy small,.list-value{color:var(--desk-muted);font-size:14px}.progress-line{height:8px;margin-top:9px;background:#e8eef5}.progress-line span{background:linear-gradient(90deg,#2677c9,#8b68df)}
.chart-bars{position:relative;height:250px;gap:22px;padding:28px 30px 32px;border-radius:0 0 15px 15px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 48px,rgba(130,147,169,.14) 49px,transparent 50px)}.chart-bars:before{content:"";position:absolute;inset:25px 30px 32px;border-bottom:1px solid #dfe7ef;pointer-events:none}.bar-wrap{position:relative;z-index:1;gap:9px}.bar{width:42px;max-width:42px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#8b68df 0%,#2677c9 100%);box-shadow:0 6px 14px rgba(38,119,201,.16)}.bar-value{font-size:14px;color:var(--desk-ink);font-weight:750}.bar-label{font-size:13px;color:var(--desk-muted)}
.timeline{padding:10px 25px 18px}.timeline-item{padding:15px 0}.timeline-dot{width:12px;height:12px;margin-top:7px;background:var(--desk-blue);box-shadow:0 0 0 5px #e8f2ff}.timeline-copy strong{color:var(--desk-ink);font-size:15px}.timeline-copy small,.timeline-copy p{color:var(--desk-muted);font-size:13px}
.form-card .card-body{padding:30px}.form-grid{gap:19px 22px}.form-grid label{color:var(--desk-ink);font-size:14px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{min-height:46px;margin-top:8px;border-color:#cfdbe8;border-radius:10px;background:#fbfdff;color:var(--desk-ink);font-size:15px}.form-grid textarea{min-height:115px;padding-top:12px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#70a9dd;box-shadow:0 0 0 4px rgba(38,119,201,.11);outline:0}.field-hint{color:var(--desk-muted);font-size:13px}
.game-quest-strip{min-height:58px;padding:14px 20px;background:#fff;border:1px solid var(--desk-line);border-radius:13px;box-shadow:0 4px 12px rgba(20,40,63,.03)}.game-quest-strip .quest-strip-label{color:var(--desk-ink);font-size:14px}.game-quest-strip .quest-strip-path span{font-size:14px;color:var(--desk-muted)}.game-quest-strip .quest-strip-path span.is-current a{color:var(--desk-blue);background:#e8f2ff}.game-quest-strip .quest-strip-score{color:var(--desk-blue);font-size:14px}
.module-guide,.contract-plan-intro,.production-index-banner{border-color:#d6e3f0;background:linear-gradient(105deg,#fff 0%,#f5f9fd 100%);box-shadow:0 6px 18px rgba(20,40,63,.035)}.module-guide strong{color:var(--desk-ink);font-size:18px}.module-guide span{color:var(--desk-muted);font-size:14px}
.screen-dashboard .page-heading{position:relative;min-height:196px;margin-bottom:25px;padding:31px 345px 31px 30px;overflow:hidden;border:1px solid var(--desk-line);border-radius:17px;background:linear-gradient(110deg,#fff 0%,#fff 57%,#f3f7fc 100%);box-shadow:0 8px 20px rgba(20,40,63,.045)}.screen-dashboard .page-heading:after{content:"";position:absolute;right:18px;bottom:-5px;width:320px;height:194px;background:url('../illustrations/factory-control.svg') right bottom/contain no-repeat;pointer-events:none}.screen-dashboard .page-heading .button{position:relative;z-index:2}.screen-dashboard .page-heading h1{font-size:40px}
.screen-production .page-content{padding-left:34px;padding-right:34px}.screen-production .production-index-banner{padding:24px 27px}.screen-production .production-contract-grid{gap:20px}.screen-production .production-contract-card{padding:25px;border-radius:16px}.screen-production .production-contract-card h2{font-size:22px}.screen-production .contract-map-board{border-radius:16px}.screen-production .contract-map-toolbar-title h1{font-size:39px}
.badge{font-size:13px;padding:5px 9px;border-radius:8px}.countdown{font-size:15px;font-weight:750}.empty-state{padding:58px 24px!important;color:var(--desk-muted);font-size:15px}.empty-icon{width:50px;height:50px;margin-bottom:14px;border-radius:14px;background:#eaf2fa;color:var(--desk-blue)}
@media(max-width:1100px){.page-content{padding-left:25px;padding-right:25px}.screen-dashboard .page-heading{padding-right:285px}.screen-dashboard .page-heading:after{width:270px}.stat-grid{grid-template-columns:repeat(2,1fr)}.chart-bars{gap:13px}}
@media(max-width:760px){.sidebar{width:232px}.app-main{margin-left:0;width:100%}.topbar{height:64px;padding:0 16px}.page-content{padding:24px 16px 42px}.page-heading{align-items:flex-start;gap:17px;flex-direction:column}.page-heading h1{font-size:32px}.page-heading p{font-size:15px}.screen-dashboard .page-heading{min-height:0;padding:25px 24px 185px}.screen-dashboard .page-heading:after{right:50%;bottom:-5px;width:280px;height:175px;transform:translateX(50%)}.screen-dashboard .page-heading .button{width:100%}.stat-card{min-height:135px;padding:18px}.stat-card h3{font-size:31px}.card-head{padding:19px 20px}.card-body{padding:20px}.data-table th{padding:13px 15px;font-size:11px}.data-table td{padding:16px 15px;font-size:14px}.list-row{padding:14px 18px}.chart-bars{height:220px;padding:23px 19px 30px}.bar{width:31px;max-width:31px}.screen-production .page-content{padding-left:16px;padding-right:16px}.screen-production .contract-map-toolbar-title h1{font-size:32px}}

/* Full-width pages + readable type v3. Every module uses the same desktop workspace. */
.page-content{width:100%;max-width:none;padding-left:36px;padding-right:36px}
.page-content > .page-heading,.page-content > .card,.page-content > .stat-grid,.page-content > .dashboard-grid,.page-content > .module-guide,.page-content > .toolbar,.page-content > .report-grid,.page-content > .production-screen{width:100%;max-width:none}
.page-heading h1{font-size:38px}.page-heading p{font-size:18px}.eyebrow,.section-kicker{font-size:14px}.page-heading{margin-bottom:28px}
.card-head h2{font-size:21px}.card-head p{font-size:16px}.card-head{padding:24px 27px}.card-body{padding:28px}
.button{font-size:16px;min-height:46px;padding-left:18px;padding-right:18px}.badge,.step-pill{font-size:14px}.link-cell{font-size:16px}
.stat-head{font-size:16px}.stat-card h3{font-size:38px}.stat-meta{font-size:15px}.stat-card{min-height:164px;padding:25px}
.data-table th{font-size:15px;padding:17px 26px}.data-table td{font-size:17px;padding:21px 26px}.primary-cell{font-size:17px}.secondary-cell{font-size:16px}.countdown{font-size:17px}
.list-row{min-height:84px;padding:18px 27px}.list-copy strong{font-size:18px}.list-copy small,.list-value{font-size:16px}.progress-line{height:9px}
.form-grid{gap:22px 25px}.form-grid label{font-size:16px}.form-grid input,.form-grid select,.form-grid textarea{font-size:17px;min-height:50px}.form-grid textarea{min-height:125px}.field-hint{font-size:15px}
.module-guide strong{font-size:20px}.module-guide span{font-size:16px}.production-help strong{font-size:17px}.production-help small{font-size:15px}
.production-index-banner h2{font-size:24px}.production-index-banner p{font-size:17px}.production-index-head h2{font-size:25px}.production-index-head p{font-size:16px}.production-contract-card h2{font-size:24px}.production-contract-card>p{font-size:16px}.production-contract-facts{font-size:15px}.production-contract-progress strong{font-size:27px}
.contract-map-toolbar-title h1{font-size:41px}.contract-map-toolbar-title p{font-size:16px}.contract-map-summary-title strong{font-size:19px}.contract-map-summary-title small{font-size:14px}.contract-map-specs span{font-size:13px}.contract-map-specs b{font-size:15px}.package-queue-head h3{font-size:17px}.package-queue-head small{font-size:13px}.mission-card strong{font-size:16px}.mission-card small{font-size:14px}.schedule-day strong{font-size:16px}.schedule-day small,.schedule-day span{font-size:13px}.employee-lane-label strong{font-size:16px}.employee-lane-label small{font-size:14px}
.chart-bars{height:270px}.bar-value{font-size:16px}.bar-label{font-size:15px}.timeline-copy strong{font-size:17px}.timeline-copy small,.timeline-copy p{font-size:15px}
@media(max-width:760px){.page-content{padding:26px 16px 44px}.page-heading h1{font-size:34px}.page-heading p{font-size:17px}.eyebrow,.section-kicker{font-size:13px}.card-head{padding:21px 20px}.card-head h2{font-size:20px}.card-head p{font-size:15px}.card-body{padding:22px}.button{font-size:15px}.stat-card{min-height:145px;padding:20px}.stat-head{font-size:15px}.stat-card h3{font-size:34px}.stat-meta{font-size:14px}.data-table th{padding:14px 15px;font-size:13px}.data-table td{padding:17px 15px;font-size:15px}.primary-cell{font-size:16px}.secondary-cell{font-size:14px}.list-row{padding:15px 18px}.list-copy strong{font-size:16px}.list-copy small,.list-value{font-size:14px}.form-grid label{font-size:15px}.form-grid input,.form-grid select,.form-grid textarea{font-size:16px}.screen-dashboard .page-heading h1{font-size:36px}.screen-production .contract-map-toolbar-title h1{font-size:34px}.chart-bars{height:235px}}

/* Supporting descriptions must be readable too, not only headings and numbers. */
.funnel-step small{font-size:14px;line-height:1.65}.action-list small{font-size:14px;line-height:1.55}.inquiry-fields span{font-size:13px}.inquiry-fields strong{font-size:15px}.repair-card>p{font-size:14px}.repair-meta{font-size:13px}.repair-result{font-size:14px;line-height:1.65}.service-flow small{font-size:13px}.plain-tip{font-size:14px;line-height:1.65}.schedule-note small{font-size:13px;line-height:1.6}.schedule-note strong{font-size:14px}.package-queue-head small{font-size:14px}.package-legend{font-size:13px}.mission-type{font-size:13px}.mission-card small,.mission-bottom{font-size:13px}.drop-hint{font-size:14px}.demo-contract-item small{font-size:14px}.contract-extract-result{font-size:14px}.extract-action-row>span{font-size:14px}.focus-copy small,.focus-copy p{font-size:14px}
@media(max-width:760px){.funnel-step small,.action-list small,.repair-card>p,.repair-result,.plain-tip,.schedule-note small,.package-queue-head small,.mission-card small,.mission-bottom,.demo-contract-item small{font-size:13px}.inquiry-fields span{font-size:12px}.inquiry-fields strong{font-size:14px}.service-flow small{font-size:12px}}

/* One comfortable supporting-text size across cards and status summaries. */
.stat-meta,.stat-meta b,.muted-inline,.field-hint,.list-copy small,.list-value,.secondary-cell{font-size:16px;line-height:1.55}.stat-meta b{font-weight:700}.stat-meta{letter-spacing:0}
@media(max-width:760px){.stat-meta,.stat-meta b,.muted-inline,.field-hint,.list-copy small,.list-value,.secondary-cell{font-size:14px}}

/* Adaptive desktop sizing for MacBook and large laptop viewports. */
@media(min-width:761px){
  .sidebar{width:clamp(208px,15vw,252px)}
  .app-main{margin-left:clamp(208px,15vw,252px);width:calc(100% - clamp(208px,15vw,252px))}
  .topbar{height:clamp(62px,4.3vw,72px);padding-left:clamp(22px,2.4vw,42px);padding-right:clamp(22px,2.4vw,42px)}
  .page-content{padding-left:clamp(22px,2.6vw,48px);padding-right:clamp(22px,2.6vw,48px);padding-top:clamp(24px,2.2vw,38px)}
  .screen-production .page-content{padding-left:clamp(22px,2.6vw,48px);padding-right:clamp(22px,2.6vw,48px)}
  .page-heading{gap:clamp(16px,2vw,30px)}
  .page-heading h1{font-size:clamp(34px,2.5vw,42px)}
  .screen-dashboard .page-heading{padding-left:clamp(24px,2.2vw,36px);padding-right:clamp(270px,25vw,390px);min-height:clamp(178px,14vw,220px)}
  .screen-dashboard .page-heading:after{width:clamp(270px,22vw,360px);height:clamp(170px,14vw,220px);right:clamp(10px,1.5vw,24px)}
  .stat-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(13px,1.35vw,22px)}
  .dashboard-grid,.dashboard-grid.equal,.module-two-col,.commissioning-layout,.delivery-layout,.repair-layout{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
  .production-contract-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(14px,1.35vw,22px)}
  .contract-map-layout{grid-template-columns:clamp(215px,20vw,290px) minmax(0,1fr);gap:clamp(14px,1.35vw,22px)}
  .contract-map-grid{grid-template-columns:clamp(175px,14vw,215px) repeat(5,minmax(145px,1fr));min-width:clamp(900px,72vw,1180px)}
  .form-card{max-width:none}
}
@media(min-width:761px) and (max-width:1280px){
  .nav-item{font-size:15px}.sidebar-brand{padding-left:19px;padding-right:19px}.sidebar-label{margin-left:18px;margin-right:18px}
  .page-heading p{font-size:17px}.card-head{padding-left:21px;padding-right:21px}.data-table th,.data-table td{padding-left:18px;padding-right:18px}
  .screen-dashboard .page-heading{padding-right:260px}.screen-dashboard .page-heading:after{width:250px}
  .contract-map-toolbar{grid-template-columns:1fr auto}.contract-map-toolbar-title{grid-column:1/-1}
}
@media(min-width:1800px){.page-content{padding-left:48px;padding-right:48px}.screen-production .page-content{padding-left:48px;padding-right:48px}}

/* Premium Apple-inspired JIANTAI theme: calm, light, precise and industrial. */
:root{--ui-bg:#f5f7fb;--ui-panel:#fff;--ui-primary:#2563eb;--ui-ink:#0f172a;--ui-muted:#64748b;--ui-border:#e8edf5;--ui-success:#16a34a;--ui-warning:#f59e0b;--ui-danger:#ef4444}
html,body{background:var(--ui-bg);color:var(--ui-ink)}
body.app-body{background:var(--ui-bg);font-family:Inter,"SF Pro Display","SF Pro Text","Segoe UI","Microsoft YaHei",sans-serif}
.sidebar{width:clamp(220px,16vw,260px);padding:20px 14px 18px;background:rgba(255,255,255,.9);color:var(--ui-ink);border-right:1px solid var(--ui-border);box-shadow:4px 0 18px rgba(15,23,42,.025);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.sidebar-brand{height:62px;padding:0 12px 20px;gap:11px;border-bottom:1px solid var(--ui-border)}
.sidebar-brand .brand-mark{width:38px;height:38px;border-radius:12px;background:#eaf1ff;color:var(--ui-primary);box-shadow:none}.sidebar-brand strong{color:var(--ui-ink);font-size:16px;letter-spacing:1.8px}.sidebar-brand span{color:var(--ui-muted);font-size:12px;letter-spacing:.2px}
.sidebar-label{margin:25px 12px 9px;color:#94a3b8;font-size:11px;letter-spacing:1.15px;font-weight:700}.admin-label{margin-top:27px}.sidebar-nav{gap:4px}.nav-item{min-height:46px;padding:0 12px;border-radius:12px;color:#64748b;gap:12px;font-size:15px;font-weight:600}.nav-item:hover{color:var(--ui-ink);background:#f1f5fb}.nav-item.active{color:var(--ui-primary);background:#eaf1ff;box-shadow:none}.nav-item.active .icon{color:var(--ui-primary)}.nav-item .icon{width:18px;height:18px}.nav-count{background:#ef4444;color:#fff;border-radius:999px;padding:2px 6px;font-size:11px}
.sidebar-bottom{padding:16px 7px 0;color:var(--ui-muted);border-top:0}.system-status{margin:0 0 15px;padding:12px;border:1px solid var(--ui-border);border-radius:14px;background:#f8fafc}.system-status strong{color:var(--ui-ink);font-size:13px}.system-status small{color:var(--ui-muted);font-size:12px}.system-status>span{background:var(--ui-success);box-shadow:0 0 0 4px rgba(22,163,74,.12)}.sidebar-version{color:#94a3b8;font-size:11px}
.app-main{margin-left:clamp(220px,16vw,260px);width:calc(100% - clamp(220px,16vw,260px));background:var(--ui-bg)}
.topbar{height:72px;padding:0 clamp(22px,2.7vw,44px);background:rgba(255,255,255,.82);border-bottom:1px solid var(--ui-border);box-shadow:none;backdrop-filter:saturate(180%) blur(22px);-webkit-backdrop-filter:saturate(180%) blur(22px);display:grid;grid-template-columns:auto minmax(250px,1fr) auto auto;gap:clamp(14px,1.8vw,28px)}
.breadcrumbs{font-size:14px;color:var(--ui-muted);white-space:nowrap}.breadcrumbs span{color:#94a3b8}.breadcrumbs b{color:#cbd5e1}.breadcrumbs strong{color:var(--ui-ink);font-weight:650}
.topbar-actions{display:contents}.topbar-actions .icon-button[title="搜索"]{grid-column:2;display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;padding:11px 15px;border:1px solid var(--ui-border);border-radius:14px;background:#f8fafc;color:#94a3b8;font-size:14px}.topbar-actions .icon-button[title="搜索"]:after{content:"搜索合同、客户、设备或任务";font-size:14px;color:#94a3b8}.topbar-actions .icon-button[title="搜索"]:hover{background:#fff;border-color:#cbd5e1;color:var(--ui-primary)}.topbar-actions .notification{grid-column:3}.topbar-actions .profile-menu{grid-column:4}.icon-button{color:#64748b;border-radius:10px}.icon-button:hover{color:var(--ui-primary);background:#eef4ff}.profile-menu{border-left:1px solid var(--ui-border);padding-left:18px}.profile-copy strong{color:var(--ui-ink);font-size:14px}.profile-copy small{color:var(--ui-muted);font-size:12px}.avatar{border-radius:50%;box-shadow:0 0 0 3px #eef4ff}
.page-content{background:var(--ui-bg);max-width:none;padding-left:clamp(24px,3vw,52px);padding-right:clamp(24px,3vw,52px)}
.game-quest-strip{border:1px solid var(--ui-border);background:#fff;border-radius:14px;box-shadow:none;padding:12px 17px}.game-quest-strip .quest-strip-label{color:var(--ui-ink);font-size:14px}.game-quest-strip .quest-strip-path span{color:var(--ui-muted);font-size:14px}.game-quest-strip .quest-strip-path span.is-current a{color:var(--ui-primary);background:#eaf1ff}.game-quest-strip .quest-strip-score{color:var(--ui-primary);font-size:14px}
.module-guide{border:1px solid var(--ui-border);background:#fff;border-radius:16px;box-shadow:0 4px 20px rgba(15,23,42,.04)}.module-guide strong{color:var(--ui-ink);font-size:18px}.module-guide span{color:var(--ui-muted);font-size:15px}.module-guide-next small{color:#94a3b8}.module-guide-next b{color:var(--ui-primary)}
.card{background:var(--ui-panel);border:1px solid var(--ui-border);border-radius:18px;box-shadow:0 4px 20px rgba(15,23,42,.04)}.card:hover{box-shadow:0 6px 24px rgba(15,23,42,.055)}.card-head{border-bottom:1px solid var(--ui-border);padding:23px 26px}.card-head h2{color:var(--ui-ink);font-size:20px;font-weight:650}.card-head p{color:var(--ui-muted);font-size:15px}.card-body{padding:28px}
.button{border-radius:12px;font-size:15px;min-height:44px;font-weight:650}.button-primary{background:var(--ui-primary);box-shadow:0 4px 12px rgba(37,99,235,.16)}.button-primary:hover{background:#1d4ed8}.button-light{color:var(--ui-ink);background:#fff;border-color:var(--ui-border)}.button-light:hover{background:#f8fafc;border-color:#cbd5e1}.link-cell{color:var(--ui-primary)}
.stat-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.stat-card{min-height:158px;padding:24px;border-radius:18px}.stat-card:after{opacity:.018}.stat-head{color:var(--ui-muted);font-size:14px}.stat-icon{width:39px;height:39px;border-radius:12px}.stat-card h3{color:var(--ui-ink);font-size:34px}.stat-meta{color:var(--ui-muted);font-size:15px}.stat-cyan .stat-icon{color:#2563eb;background:#eaf1ff}.stat-orange .stat-icon{color:#d97706;background:#fff5df}.stat-purple .stat-icon{color:#7c3aed;background:#f2eafe}.stat-red .stat-icon{color:#dc2626;background:#feeceb}.stat-green .stat-icon{color:#16a34a;background:#eaf8ef}
.dashboard-grid{gap:20px;margin-bottom:20px}.data-table th{background:#f8fafc;color:#94a3b8;font-size:12px;letter-spacing:.55px;padding:15px 24px}.data-table td{border-top-color:var(--ui-border);color:#334155;font-size:15px;padding:18px 24px}.data-table tr:hover td{background:#fbfdff}.primary-cell{color:var(--ui-ink);font-size:16px}.secondary-cell{color:var(--ui-muted);font-size:14px}.empty-state{color:var(--ui-muted);font-size:15px}.empty-icon{background:#eef4ff;color:var(--ui-primary)}
.list-row{border-top-color:var(--ui-border);padding:17px 25px}.list-marker{background:#eaf1ff;color:var(--ui-primary)}.list-copy strong{color:var(--ui-ink);font-size:16px}.list-copy small,.list-value{color:var(--ui-muted);font-size:14px}.progress-line{background:#e9eef6}.progress-line span{background:linear-gradient(90deg,#2563eb,#8b5cf6)}
.chart-bars{background:repeating-linear-gradient(to bottom,transparent 0,transparent 48px,rgba(148,163,184,.12) 49px,transparent 50px);border-radius:0 0 18px 18px}.bar{background:linear-gradient(180deg,#93c5fd,#2563eb);box-shadow:0 5px 12px rgba(37,99,235,.12)}.bar-value{color:var(--ui-ink)}.bar-label{color:var(--ui-muted)}
.timeline-dot{background:var(--ui-primary);box-shadow:0 0 0 5px #eaf1ff}.timeline-copy strong{color:var(--ui-ink)}.timeline-copy small,.timeline-copy p{color:var(--ui-muted)}
.form-grid label{color:var(--ui-ink)}.form-grid input,.form-grid select,.form-grid textarea{border-color:#dbe3ee;background:#fbfdff;color:var(--ui-ink);border-radius:12px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#93b4f5;box-shadow:0 0 0 4px rgba(37,99,235,.1)}.form-section{color:var(--ui-primary);border-bottom-color:var(--ui-border)}
.badge{border-radius:999px;font-size:13px}.badge-cyan,.badge-blue{background:#eaf1ff;color:#2563eb}.badge-green{background:#eaf8ef;color:#16a34a}.badge-orange{background:#fff5df;color:#d97706}.badge-red{background:#feeceb;color:#dc2626}.badge-gray{background:#f1f5f9;color:#64748b}
.screen-dashboard .page-heading{background:linear-gradient(110deg,#fff 0%,#fff 60%,#f1f6ff 100%);border-color:var(--ui-border);box-shadow:0 4px 20px rgba(15,23,42,.04)}.screen-dashboard .page-heading h1{color:var(--ui-ink)}.screen-dashboard .page-heading p{color:var(--ui-muted)}
.screen-production .production-contract-card,.contract-cockpit-card{background:#fff;border-color:var(--ui-border);box-shadow:none}.screen-production .production-contract-card:hover,.contract-cockpit-card:hover{border-color:#b7cdfa;box-shadow:0 8px 26px rgba(37,99,235,.08)}
@media(max-width:760px){.topbar{display:flex}.topbar-actions{display:flex;gap:8px}.topbar-actions .icon-button[title="搜索"]{width:auto;border:0;padding:7px;background:transparent}.topbar-actions .icon-button[title="搜索"]:after{display:none}.profile-menu{padding-left:8px}.page-content{padding-left:16px;padding-right:16px}.sidebar{width:232px}}

/* Boss action center: make risks and next actions impossible to miss. */
.report-table{border-color:#d8e3f2;box-shadow:0 7px 24px rgba(37,99,235,.06)}.report-table>.card-head{align-items:flex-start;padding:27px 30px;background:linear-gradient(105deg,#fff 0%,#f6f9ff 100%)}.report-table>.card-head h2{margin-top:7px;font-size:25px;letter-spacing:-.35px}.report-table>.card-head p{max-width:720px;margin-top:8px;font-size:16px;line-height:1.7}.report-table>.card-head .step-pill{margin-top:3px;padding:8px 12px;color:#2563eb;background:#eaf1ff;font-size:14px;white-space:nowrap}.report-focus-list{padding:7px 30px 16px}.report-focus-list>div{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:flex-start;gap:15px;padding:23px 0;border-bottom:1px solid var(--ui-border)}.report-focus-list>div:last-child{border-bottom:0}.report-focus-list>div:before{content:"";position:absolute;left:-12px;top:18px;bottom:18px;width:4px;border-radius:4px;background:#cbd5e1}.report-focus-list>div.focus-item-risk:before{background:#ef4444}.report-focus-list>div.focus-item-warn:before{background:#f59e0b}.report-focus-list>div.focus-item-info:before{background:#2563eb}.focus-number{padding-top:2px;color:#64748b;font-size:17px;font-weight:750;letter-spacing:.3px}.focus-item-risk .focus-number{color:#dc2626}.focus-item-warn .focus-number{color:#d97706}.focus-item-info .focus-number{color:#2563eb}.report-focus-list strong{display:block;color:var(--ui-ink);font-size:19px;line-height:1.4;letter-spacing:-.15px}.report-focus-list small{display:block;margin-top:7px;color:#475569;font-size:16px;line-height:1.6}.focus-action{display:block;margin-top:10px;color:#2563eb;font-size:15px;font-weight:700;line-height:1.55}.focus-risk,.focus-warn,.focus-info{align-self:start;margin-top:1px;padding:7px 11px;border-radius:999px;font-size:14px;font-weight:700;white-space:nowrap}.focus-risk{color:#dc2626;background:#feeceb}.focus-warn{color:#b45309;background:#fff5df}.focus-info{color:#2563eb;background:#eaf1ff}
@media(max-width:760px){.report-table>.card-head{padding:23px 20px}.report-table>.card-head h2{font-size:22px}.report-table>.card-head p{font-size:15px}.report-focus-list{padding:5px 20px 12px}.report-focus-list>div{grid-template-columns:27px minmax(0,1fr);gap:11px;padding:20px 0}.report-focus-list>div:before{left:-8px}.report-focus-list strong{font-size:17px}.report-focus-list small{font-size:14px}.focus-action{font-size:14px}.report-focus-list>div>.focus-risk,.report-focus-list>div>.focus-warn,.report-focus-list>div>.focus-info{grid-column:2;justify-self:start;margin-top:2px}}

/* Repair timeline: a clear desktop stepper, vertical only when space is tight. */
@media(min-width:1200px){
  .repair-layout{grid-template-columns:minmax(0,1.2fr) minmax(420px,.8fr)}
  .service-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:28px 25px 24px}
  .service-flow>div{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto;justify-items:center;min-height:136px;text-align:center}
  .service-flow>div:not(:last-child):after{left:calc(50% + 23px);right:calc(-50% + 23px);top:22px;bottom:auto;width:auto;height:2px;background:#e2e8f0}
  .service-flow>div.is-done:not(:last-child):after{background:#bbebc9}
  .service-flow>div.is-current:not(:last-child):after{background:linear-gradient(90deg,#93b8f5,#e2e8f0)}
  .service-flow b{width:46px;height:46px;border:1px solid #e2e8f0;background:#f8fafc;color:#94a3b8;box-shadow:0 0 0 6px #fff}
  .service-flow strong{padding-top:13px;color:var(--ui-ink);font-size:16px}
  .service-flow small{max-width:118px;margin-top:6px;color:var(--ui-muted);font-size:13px;line-height:1.5}
  .service-flow .is-done b{color:#16a34a;background:#eaf8ef;border-color:#bbebc9}
  .service-flow .is-done strong{color:#15803d}
  .service-flow .is-current b{color:#2563eb;background:#eaf1ff;border-color:#a9c5f7;box-shadow:0 0 0 6px #fff,0 0 0 9px rgba(37,99,235,.1)}
  .service-flow .is-current strong{color:#2563eb}
  .service-flow .is-current:before{content:"当前处理";position:absolute;top:-1px;padding:3px 8px;border-radius:999px;color:#2563eb;background:#eaf1ff;font-size:11px;font-weight:750;transform:translateY(-100%)}
  .plain-tip{margin:0 25px 24px;padding:14px 16px;border:1px solid #dbeafe;border-radius:12px;background:#f8fbff;color:#475569;font-size:14px;line-height:1.65}
}
@media(max-width:1199px) and (min-width:761px){.repair-layout{grid-template-columns:minmax(0,1fr) minmax(310px,.75fr)}.service-flow{padding:22px 20px}.service-flow strong{font-size:15px}.service-flow small{font-size:13px}}

/* Real data actions: keep edit/delete controls readable without making tables noisy. */
.inline-form{display:inline-flex;margin:0}.inline-form .button{font:inherit;cursor:pointer}.table-actions{align-items:center;flex-wrap:wrap}.table-actions .inline-form{flex:none}.button-danger{border:1px solid #ffd4d0}.repair-toolbar{margin-top:2px}.repair-register .card-head{padding-bottom:20px}.repair-register .section-kicker{display:block;margin-bottom:8px;color:#2563eb;font-size:12px;font-weight:750;letter-spacing:.9px}.repair-register .card-head h2{font-size:23px}.repair-register .card-head p{max-width:900px}.repair-symptom{max-width:300px;color:var(--ui-ink);line-height:1.55}.mission-actions{display:flex;justify-content:flex-end;margin-top:10px}.mission-actions .inline-form .button{min-height:32px;padding:6px 10px;font-size:12px}.compact-card .mission-actions{margin-top:6px}.compact-card .mission-actions .button{min-height:28px;padding:4px 8px;font-size:11px}
@media(max-width:760px){.repair-register .card-head{padding:20px}.repair-register .card-head h2{font-size:20px}.repair-symptom{max-width:220px}.repair-toolbar .toolbar-left{width:100%}.repair-toolbar .toolbar-left form{flex:1}.mission-actions{justify-content:flex-start}}

/* Commissioning and delivery registers: make the operational record readable at a glance. */
.page-heading-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.screen-commissioning .page-heading h1,.screen-deliveries .page-heading h1{font-size:32px}.screen-commissioning .page-heading p,.screen-deliveries .page-heading p{font-size:17px;line-height:1.7}.commissioning-stats,.delivery-stats{margin-top:20px}.commissioning-register,.commissioning-issue-register,.delivery-register{margin-top:20px}.commissioning-register .card-head,.commissioning-issue-register .card-head,.delivery-register .card-head{padding:26px 30px}.commissioning-register .card-head h2,.commissioning-issue-register .card-head h2,.delivery-register .card-head h2{font-size:24px}.commissioning-register .card-head p,.commissioning-issue-register .card-head p,.delivery-register .card-head p{font-size:16px;line-height:1.7}.commissioning-register .data-table th,.delivery-register .data-table th{font-size:14px;padding:17px 24px}.commissioning-register .data-table td,.delivery-register .data-table td{font-size:16px;padding:20px 24px;vertical-align:top}.commissioning-stage,.delivery-method{font-size:17px;color:var(--ui-ink)}.issue-filter select{min-width:150px}.issue-record-list{display:grid;gap:16px;padding:24px 30px 30px}.issue-record{padding:22px 24px;border:1px solid var(--ui-border);border-left:5px solid #cbd5e1;border-radius:16px;background:#fbfdff}.issue-record.is-open{border-left-color:#ef4444;background:#fffafa}.issue-record.is-done{border-left-color:#22c55e;background:#fbfffc}.issue-record-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.issue-record-no{display:inline-block;color:#64748b;font-size:13px;font-weight:750;letter-spacing:.7px}.issue-record h3{margin:7px 0 0;color:var(--ui-ink);font-size:22px;line-height:1.4}.issue-record-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.issue-record-meta{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(170px,.8fr) minmax(150px,.7fr);gap:14px;margin-top:18px}.issue-record-meta span{display:flex;flex-direction:column;gap:6px;color:#475569;font-size:16px;line-height:1.55}.issue-record-meta b,.issue-record-details strong{color:#1e3a8a;font-size:14px;font-weight:750}.issue-record-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;padding-top:18px;border-top:1px solid rgba(148,163,184,.2)}.issue-record-details>div{padding:15px 17px;border-radius:12px;background:#f8fafc}.issue-record-details p{margin:8px 0 0;color:#334155;font-size:16px;line-height:1.75;white-space:pre-wrap}.delivery-note{max-width:250px;margin-top:8px;color:#475569;font-size:14px;line-height:1.55;white-space:pre-wrap}.commissioning-issue-form{max-width:1100px}.commissioning-issue-form .form-grid label{font-size:15px}.commissioning-issue-form .form-grid input,.commissioning-issue-form .form-grid select,.commissioning-issue-form .form-grid textarea{font-size:16px}.commissioning-issue-form textarea{min-height:130px}
@media(max-width:900px){.issue-record-meta,.issue-record-details{grid-template-columns:1fr}.issue-record-head{flex-direction:column}.issue-record-actions{justify-content:flex-start}}
@media(max-width:760px){.screen-commissioning .page-heading h1,.screen-deliveries .page-heading h1{font-size:27px}.screen-commissioning .page-heading p,.screen-deliveries .page-heading p{font-size:15px}.page-heading-actions{justify-content:flex-start}.commissioning-register .card-head,.commissioning-issue-register .card-head,.delivery-register .card-head{padding:21px 20px}.commissioning-register .card-head h2,.commissioning-issue-register .card-head h2,.delivery-register .card-head h2{font-size:21px}.commissioning-register .card-head p,.commissioning-issue-register .card-head p,.delivery-register .card-head p{font-size:14px}.issue-record-list{padding:18px 20px 22px}.issue-record{padding:18px}.issue-record h3{font-size:19px}.issue-record-meta span,.issue-record-details p{font-size:15px}.delivery-note{max-width:200px}}

/* Preview issue board uses the same readable scale as the real commissioning register. */
.screen-commissioning .issue-board .card-head h2{font-size:24px}.screen-commissioning .issue-board .card-head p{font-size:16px;line-height:1.7}.screen-commissioning .issue-item{grid-template-columns:38px minmax(0,1fr) auto;gap:14px;padding:21px 0}.screen-commissioning .issue-symbol{width:34px;height:34px}.screen-commissioning .issue-item strong{font-size:18px;line-height:1.45}.screen-commissioning .issue-item small{font-size:15px;line-height:1.6}.screen-commissioning .issue-item p{font-size:15px;line-height:1.7}.screen-commissioning .issue-item>span{font-size:14px;font-weight:700}.screen-deliveries .delivery-history .card-head h2{font-size:24px}.screen-deliveries .delivery-history .card-head p{font-size:16px;line-height:1.7}.screen-deliveries .delivery-history .data-table th{font-size:14px}.screen-deliveries .delivery-history .data-table td{font-size:16px}
@media(max-width:760px){.screen-commissioning .issue-board .card-head h2,.screen-deliveries .delivery-history .card-head h2{font-size:21px}.screen-commissioning .issue-item{grid-template-columns:34px minmax(0,1fr);gap:11px;padding:18px 0}.screen-commissioning .issue-item strong{font-size:17px}.screen-commissioning .issue-item small,.screen-commissioning .issue-item p{font-size:14px}.screen-commissioning .issue-item>span{grid-column:2;justify-self:start}}

/* Contract production map: a dedicated responsive fullscreen workspace. */
.contract-map-fullscreen{white-space:nowrap}.contract-map-fullscreen .icon{width:17px;height:17px}.contract-map-fullscreen-body{overflow:hidden}
.contract-plan-board.is-fullscreen,.contract-plan-board:fullscreen{position:fixed;inset:0;z-index:1200;width:100vw;height:100vh;max-height:100vh;margin:0;border:0;border-radius:0;overflow:hidden;display:flex;flex-direction:column;background:#f8fafc}
.contract-plan-board.is-fullscreen .contract-plan-board-head,.contract-plan-board:fullscreen .contract-plan-board-head{flex:none;padding:22px 28px}
.contract-plan-board.is-fullscreen .contract-map-layout,.contract-plan-board:fullscreen .contract-map-layout{flex:1;min-height:0;padding:16px 22px 0}
.contract-plan-board.is-fullscreen .contract-map-scroll,.contract-plan-board:fullscreen .contract-map-scroll{height:100%;min-height:0;overflow:auto}
.contract-plan-board.is-fullscreen .contract-map-grid,.contract-plan-board:fullscreen .contract-map-grid{min-height:100%;grid-template-columns:clamp(220px,18vw,280px) repeat(5,minmax(170px,1fr));min-width:1100px}
.contract-plan-board.is-fullscreen .package-queue,.contract-plan-board:fullscreen .package-queue{max-height:100%;overflow:auto}
.contract-plan-board.is-fullscreen .contract-plan-board-tools,.contract-plan-board:fullscreen .contract-plan-board-tools{flex-wrap:wrap}
@media(max-width:900px){.contract-plan-board.is-fullscreen .contract-map-layout,.contract-plan-board:fullscreen .contract-map-layout{grid-template-columns:1fr;padding:12px 14px 0;overflow:auto}.contract-plan-board.is-fullscreen .package-queue,.contract-plan-board:fullscreen .package-queue{max-height:30vh}.contract-plan-board.is-fullscreen .contract-map-scroll,.contract-plan-board:fullscreen .contract-map-scroll{min-height:55vh}}
@media(max-width:760px){.contract-plan-board.is-fullscreen .contract-plan-board-head,.contract-plan-board:fullscreen .contract-plan-board-head{padding:16px}.contract-plan-board.is-fullscreen .contract-plan-board-head h2,.contract-plan-board:fullscreen .contract-plan-board-head h2{font-size:20px}.contract-plan-board.is-fullscreen .contract-plan-board-head p,.contract-plan-board:fullscreen .contract-plan-board-head p{font-size:13px}.contract-plan-board.is-fullscreen .contract-plan-board-tools,.contract-plan-board:fullscreen .contract-plan-board-tools{width:100%}.contract-plan-board.is-fullscreen .contract-plan-board-tools .button,.contract-plan-board:fullscreen .contract-plan-board-tools form{flex:1}.contract-plan-board.is-fullscreen .contract-map-grid,.contract-plan-board:fullscreen .contract-map-grid{grid-template-columns:170px repeat(5,minmax(160px,1fr));min-width:970px}}
