:root {
  --ink: #142330;
  --muted: #667583;
  --line: #dbe2e7;
  --paper: #f4f7f8;
  --white: #ffffff;
  --blue: #173a59;
  --blue-2: #235a82;
  --blue-soft: #eaf1f6;
  --orange: #e77821;
  --orange-soft: #fff0e4;
  --green: #238568;
  --green-soft: #e5f4ef;
  --red: #c9473a;
  --red-soft: #fbe9e7;
  --shadow: 0 14px 40px rgba(28, 51, 68, .07);
  --radius: 14px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Microsoft YaHei UI", "PingFang SC", sans-serif; }
body.auth-pending .app-shell, body.auth-locked .app-shell, body.auth-init .app-shell { display: none; }
body.authenticated .login-screen { display: none; }
body.auth-pending .login-screen { visibility: hidden; }
body.auth-init .login-screen { display: none; }
#initScreen { display: none; }
body.auth-init #initScreen { display: grid; }
#initScreen .login-form .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
#initScreen .login-form .form-grid label { display: grid; gap: 8px; margin: 0 0 12px; }
#loginScreen select, #initScreen select { width: 100%; height: 49px; padding: 0 12px; border: 1px solid #ccd8de; border-radius: 7px; color: var(--ink); background: white; font-size: 12px; }
#initScreen .login-form input[type="text"], #initScreen .login-form input[type="password"] { width: 100%; height: 49px; padding: 0 14px; border: 1px solid #ccd8de; border-radius: 7px; color: var(--ink); background: white; font-size: 12px; font-weight: 400; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(35, 90, 130, .24); outline-offset: 2px; }
.skip-link { position: fixed; top: -50px; left: 20px; z-index: 1000; padding: 10px 16px; color: white; background: var(--blue); border-radius: 6px; }
.skip-link:focus { top: 10px; }

.login-screen { min-height: 100vh; display: grid; grid-template-columns: minmax(430px, .92fr) minmax(500px, 1.08fr); background: white; }
.login-field-panel { position: relative; display: flex; flex-direction: column; min-height: 100vh; overflow: hidden; padding: 54px clamp(46px,6vw,92px) 44px; color: white; background: #123650; isolation: isolate; }
.login-field-panel::before { content: ""; position: absolute; inset: 0; z-index: -2; background-image: linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to bottom,black,transparent 88%); }
.login-field-panel::after { content: ""; position: absolute; right: -105px; bottom: 11%; z-index: -1; width: 370px; height: 370px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: 0 0 0 64px rgba(255,255,255,.025),0 0 0 128px rgba(255,255,255,.02); }
.login-brand { display: flex; align-items: center; gap: 13px; }.login-brand strong { display: block; font-family: "STZhongsong","SimSun",serif; font-size: 28px; letter-spacing: .18em; }.login-brand small { display: block; margin-top: 4px; color: #adc2cf; font-size: 10px; letter-spacing: .12em; }
.login-thesis { max-width: 590px; margin: auto 0 56px; }.login-thesis > span { display: inline-flex; padding: 5px 9px; border-left: 3px solid var(--orange); color: #dce8ee; background: rgba(255,255,255,.06); font-size: 10px; letter-spacing: .08em; }.login-thesis h1 { max-width: 560px; margin: 22px 0 20px; font-family: "STZhongsong","SimSun",serif; font-size: clamp(37px,4.2vw,62px); font-weight: 700; line-height: 1.18; letter-spacing: .035em; }.login-thesis p { max-width: 550px; margin: 0; color: #b9cbd5; font-size: 13px; line-height: 1.9; }
.login-chain { display: grid; grid-template-columns: repeat(4,1fr); max-width: 620px; margin: 0 0 46px; padding: 0; list-style: none; }.login-chain li { position: relative; display: grid; gap: 7px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.22); }.login-chain li::before { content: ""; position: absolute; top: -3px; left: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--orange); }.login-chain b { color: #7f9aa9; font: 700 9px Consolas,monospace; }.login-chain span { font-size: 11px; font-weight: 700; }
.login-edition { display: flex; align-items: center; gap: 7px; color: #9eb5c1; font-size: 9px; }.login-edition i { width: 6px; height: 6px; border-radius: 50%; background: var(--green); }.login-edition i:nth-of-type(2) { margin-left: 12px; background: var(--orange); }
.login-form-panel { display: grid; place-items: center; min-height: 100vh; padding: 42px; background: linear-gradient(135deg,#f8fafb 0%,#fff 48%); }
.login-form { width: min(100%,430px); }.login-mobile-brand { display: none; }.login-eyebrow { margin: 0 0 11px; color: var(--blue-2); font-size: 10px; font-weight: 700; letter-spacing: .12em; }.login-form h2 { margin: 0; font-family: "STZhongsong","SimSun",serif; font-size: 34px; line-height: 1.25; }.login-description { margin: 13px 0 29px; color: var(--muted); font-size: 11px; line-height: 1.75; }.login-form > label { display: grid; gap: 8px; margin-bottom: 17px; color: #405563; font-size: 10px; font-weight: 700; }.login-form input[type="text"], .login-form input[type="password"] { width: 100%; height: 49px; padding: 0 14px; border: 1px solid #ccd8de; border-radius: 7px; color: var(--ink); background: white; font-size: 12px; font-weight: 400; }.login-form input::placeholder { color: #9babb4; }.password-field { position: relative; }.password-field input { padding-right: 58px !important; }.password-field button { position: absolute; top: 6px; right: 6px; height: 37px; padding: 0 10px; border: 0; border-left: 1px solid var(--line); color: var(--blue-2); background: white; cursor: pointer; font-size: 9px; font-weight: 700; }
.login-options { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: -2px 0 18px; color: var(--muted); font-size: 9px; }.login-options label { display: flex; align-items: center; gap: 7px; cursor: pointer; }.login-options input { accent-color: var(--blue-2); }.login-error { min-height: 18px; margin: 0 0 4px; color: var(--red); font-size: 9px; line-height: 1.5; }.login-submit { display: flex; align-items: center; justify-content: space-between; width: 100%; height: 50px; padding: 0 17px; border: 1px solid var(--blue); border-radius: 7px; color: white; background: var(--blue); cursor: pointer; font-size: 12px; font-weight: 700; }.login-submit:hover { background: var(--blue-2); }.login-submit span { font-size: 18px; }.login-submit:disabled { cursor: wait; opacity: .7; }
.login-help { margin-top: 22px; padding: 12px 13px; border-left: 3px solid var(--orange); border-radius: 6px; background: var(--orange-soft); }.login-help strong { display: block; color: #8a4a16; font-size: 9px; }.login-help p { margin: 4px 0 0; color: #76583f; font-size: 8px; line-height: 1.65; }.login-version { display: block; margin-top: 24px; color: #9caab2; font-size: 8px; text-align: center; }.login-version a { color: inherit; text-decoration: none; }.login-version a:hover { text-decoration: underline; }

.app-shell { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 20; display: flex; flex-direction: column; width: 244px; padding: 24px 18px 18px; color: #e8f0f4; background: var(--blue); }
.brand { display: flex; gap: 12px; align-items: center; padding: 0 8px 28px; }
.brand strong { display: block; font-family: "STZhongsong", "SimSun", serif; font-size: 25px; letter-spacing: .16em; }
.brand small { display: block; margin-top: 3px; color: #9eb2c2; font-size: 11px; letter-spacing: .12em; }
.brand-mark { position: relative; display: flex; align-items: end; gap: 3px; width: 35px; height: 36px; padding: 5px; border: 1px solid rgba(255,255,255,.28); }
.brand-mark::after { content: ""; position: absolute; inset: 5px; border-top: 2px solid var(--orange); transform: skewY(-23deg); transform-origin: right; }
.brand-mark span { display: block; width: 6px; background: #fff; }
.brand-mark span:nth-child(1) { height: 9px; }.brand-mark span:nth-child(2) { height: 15px; }.brand-mark span:nth-child(3) { height: 23px; }
.nav-list { display: grid; gap: 4px; }
.nav-item { position: relative; display: flex; align-items: center; width: 100%; min-height: 44px; padding: 0 12px; border: 0; border-radius: 8px; color: #b9c9d5; background: transparent; cursor: pointer; text-align: left; transition: .18s ease; }
.nav-item:hover { color: white; background: rgba(255,255,255,.07); }
.nav-item.active { color: white; background: rgba(255,255,255,.12); }
.nav-item.active::before { content: ""; position: absolute; left: -18px; width: 3px; height: 22px; background: var(--orange); }
.nav-icon { display: inline-grid; place-items: center; width: 28px; margin-right: 8px; font-size: 18px; }
.nav-item b { min-width: 21px; margin-left: auto; padding: 2px 6px; border-radius: 9px; color: var(--blue); background: #dce8ef; font-size: 11px; text-align: center; }
.nav-item b.warn { color: white; background: var(--orange); }
.site-weather { margin-top: auto; padding: 14px; border: 1px solid rgba(255,255,255,.13); border-radius: 10px; background: rgba(255,255,255,.06); }
.weather-row { display: flex; align-items: center; gap: 10px; }.weather-icon { color: #ffd27a; font-size: 28px; }
.weather-row strong { display: block; font-size: 16px; }.weather-row small { color: #a9bdca; font-size: 11px; }
.site-weather p { margin: 11px 0 0; color: #a9bdca; font-size: 11px; line-height: 1.6; }
.user-card { display: flex; align-items: center; gap: 10px; margin-top: 13px; padding: 12px 5px 0; border-top: 1px solid rgba(255,255,255,.12); }
.avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: var(--blue); background: #e3edf2; font-weight: 700; }
.user-card strong, .user-card small { display: block; }.user-card strong { font-size: 13px; }.user-card small { margin-top: 2px; color: #9eb2c2; font-size: 11px; }.user-card button { margin-left: auto; padding: 5px 6px; border: 1px solid rgba(255,255,255,.16); border-radius: 5px; color: #c4d2dc; background: rgba(255,255,255,.06); cursor: pointer; font-size: 8px; font-weight: 700; }.user-card button:hover { color: white; background: rgba(255,255,255,.12); }

.workspace { min-height: 100vh; margin-left: 244px; }
.topbar { position: sticky; top: 0; z-index: 15; display: flex; align-items: center; height: 68px; padding: 0 34px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.92); backdrop-filter: blur(12px); }
.project-switcher span { display: block; margin-bottom: 3px; color: var(--muted); font-size: 10px; }
.project-switcher button { padding: 0; border: 0; background: none; font-weight: 700; cursor: pointer; }.project-switcher button span { display: inline; margin-left: 6px; font-size: 13px; }
.topbar-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.sync-state { display: flex; align-items: center; gap: 7px; margin-right: 10px; color: var(--muted); font-size: 11px; }.sync-state i { width: 7px; height: 7px; border-radius: 50%; background: var(--green); }
.icon-button { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 8px; background: white; cursor: pointer; }
.icon-button:hover { background: #f6f8f9; }.icon-button.small { width: 30px; height: 30px; border: 0; }
.notification-button { position: relative; }.notification-button b { position: absolute; top: -5px; right: -5px; display: grid; place-items: center; width: 17px; height: 17px; border-radius: 50%; color: white; background: var(--orange); font-size: 9px; }
.primary-button, .secondary-button { min-height: 39px; padding: 0 16px; border-radius: 8px; cursor: pointer; font-weight: 700; font-size: 12px; }
.primary-button { border: 1px solid var(--blue); color: white; background: var(--blue); }.primary-button:hover { background: var(--blue-2); }.primary-button span { margin-right: 4px; font-size: 16px; }
.secondary-button { border: 1px solid var(--line); background: white; }.secondary-button:hover { border-color: #b8c5ce; }
.menu-button { display: none; margin-right: 12px; }
.global-back-button { display: none; align-items: center; gap: 7px; min-height: 38px; margin-right: 12px; padding: 0 11px; border: 1px solid var(--line); border-radius: 8px; color: var(--blue); background: white; cursor: pointer; }
.global-back-button.visible { display: flex; }.global-back-button:hover { border-color: #aebcc6; background: #f7f9fa; }.global-back-button span { font-size: 18px; line-height: 1; }.global-back-button b { font-size: 11px; }

main { padding: 29px 34px 48px; }
.view { display: none; }.view.active { display: block; animation: view-in .25s ease-out; }
@keyframes view-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.eyebrow { margin: 0 0 6px; color: var(--blue-2); font-family: Consolas, monospace; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.page-heading h1 { margin: 0; font-family: "STZhongsong", "SimSun", serif; font-size: clamp(26px, 2.5vw, 36px); font-weight: 700; letter-spacing: -.02em; }
.page-heading p:not(.eyebrow) { margin: 8px 0 0; color: var(--muted); font-size: 13px; }
.heading-actions { display: flex; gap: 8px; }
.attention-strip { display: flex; align-items: center; min-height: 50px; padding: 0 17px; border: 1px solid #f1d2bc; border-left: 3px solid var(--orange); border-radius: 9px; background: #fff8f2; font-size: 12px; }
.attention-strip .pulse-dot { position: relative; width: 7px; height: 7px; margin-right: 10px; border-radius: 50%; background: var(--orange); }.pulse-dot::after { content: ""; position: absolute; inset: -4px; border: 1px solid var(--orange); border-radius: 50%; animation: pulse 1.8s infinite; }
@keyframes pulse { 70%, 100% { transform: scale(1.7); opacity: 0; } }
.attention-strip p { margin: 0 10px 0 14px; color: #6f5543; }.attention-strip button { margin-left: auto; border: 0; color: #9c4c18; background: none; font-weight: 700; font-size: 11px; cursor: pointer; }

.process-card, .panel, .metric-card { border: 1px solid var(--line); background: var(--white); box-shadow: var(--shadow); }
.process-card { margin-top: 16px; padding: 22px 24px 19px; border-radius: var(--radius); }
.section-heading, .panel-heading { display: flex; align-items: center; justify-content: space-between; }
.section-heading > div:first-child, .panel-heading > div:first-child { display: flex; align-items: center; gap: 12px; }
.section-index { display: inline-grid; place-items: center; width: 30px; height: 30px; border: 1px solid #aebcc6; border-radius: 50%; color: var(--blue-2); font-family: Consolas, monospace; font-size: 10px; }
.section-heading h2, .panel-heading h2, .insight-heading h2 { margin: 0; font-size: 15px; }.section-heading p, .panel-heading p, .insight-heading p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.legend { display: flex; gap: 14px; color: var(--muted); font-size: 10px; }.legend span { display: flex; align-items: center; gap: 5px; }.legend i { width: 7px; height: 7px; border-radius: 50%; }.legend .done { background: var(--green); }.legend .current { background: var(--blue-2); }.legend .risk { background: var(--orange); }
.process-rail { position: relative; display: grid; grid-template-columns: repeat(7, 1fr); margin-top: 26px; }
.process-rail::before { content: ""; position: absolute; top: 17px; left: 6%; right: 6%; height: 2px; background: #dce4e9; }
.process-rail::after { content: ""; position: absolute; top: 17px; left: 6%; width: 44%; height: 2px; background: var(--green); }
.stage-button { position: relative; z-index: 1; display: grid; justify-items: center; padding: 0; border: 0; background: transparent; cursor: pointer; }
.stage-node { display: grid; place-items: center; width: 36px; height: 36px; border: 3px solid white; border-radius: 50%; color: #8294a1; background: #e6ecef; box-shadow: 0 0 0 1px #d6dfe4; font-size: 12px; }
.stage-button.done .stage-node { color: white; background: var(--green); box-shadow: 0 0 0 1px var(--green); }.stage-button.current .stage-node { color: white; background: var(--blue-2); box-shadow: 0 0 0 2px rgba(35,90,130,.2); }.stage-button.risk .stage-node { color: white; background: var(--orange); box-shadow: 0 0 0 2px rgba(231,120,33,.2); }
.stage-button.selected .stage-node { transform: translateY(-2px); box-shadow: 0 0 0 4px rgba(35,90,130,.13); }
.stage-name { margin-top: 9px; font-size: 11px; font-weight: 700; }.stage-meta { margin-top: 2px; color: var(--muted); font-size: 9px; }
.stage-detail { display: flex; align-items: center; gap: 16px; min-height: 54px; margin-top: 18px; padding: 10px 14px; border-radius: 8px; background: #f4f7f9; font-size: 11px; }.stage-detail strong { font-size: 12px; }.stage-detail p { flex: 1; margin: 0; color: var(--muted); }.stage-detail span { padding: 5px 8px; border-radius: 5px; color: var(--blue-2); background: var(--blue-soft); font-weight: 700; }
.document-strip { display: grid; grid-template-columns: auto minmax(210px, 1fr) minmax(110px, 220px) auto auto auto; align-items: center; gap: 13px; width: 100%; min-height: 62px; margin-top: 13px; padding: 10px 17px; border: 1px solid #c9d8e2; border-radius: 11px; color: var(--ink); background: linear-gradient(90deg, #f8fbfc, #eef5f8); box-shadow: var(--shadow); cursor: pointer; text-align: left; }.document-strip:hover { border-color: #91adbe; }.document-strip-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; color: white; background: var(--blue-2); font-size: 16px; }.document-strip-copy strong, .document-strip-copy small { display: block; }.document-strip-copy strong { font-size: 12px; }.document-strip-copy small { margin-top: 3px; color: var(--muted); font-size: 9px; }.document-strip-progress { height: 6px; overflow: hidden; border-radius: 3px; background: #dce6eb; }.document-strip-progress i { display: block; height: 100%; border-radius: inherit; background: var(--green); }.document-strip-percent { font: 700 16px Consolas, monospace; }.document-strip-alert { padding: 5px 8px; border-radius: 5px; color: var(--orange); background: var(--orange-soft); font-size: 9px; font-weight: 700; }.document-strip-arrow { color: var(--blue-2); font-size: 9px; font-weight: 700; }
.organization-strip { display: grid; grid-template-columns: minmax(210px, .75fr) 1.5fr auto; align-items: center; gap: 14px; margin-top: 13px; padding: 12px 17px; border: 1px solid var(--line); border-radius: 11px; background: white; box-shadow: var(--shadow); }.organization-heading { display: flex; align-items: center; gap: 10px; }.organization-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; color: var(--blue); background: var(--blue-soft); font-size: 17px; }.organization-heading strong, .organization-heading small { display: block; }.organization-heading strong { font-size: 12px; }.organization-heading small { margin-top: 3px; color: var(--muted); font-size: 9px; }.organization-roles { display: flex; align-items: center; gap: 6px; overflow: hidden; }.role-chip { flex: 0 0 auto; padding: 5px 8px; border-radius: 6px; color: #476273; background: #f0f4f6; font-size: 8px; }.role-chip b { margin-right: 4px; color: var(--ink); }.organization-strip > button { border: 0; color: var(--blue-2); background: none; cursor: pointer; font-size: 9px; font-weight: 700; }

.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; margin-top: 13px; }
.metric-card { min-height: 165px; padding: 17px 18px; border-radius: 12px; }
.metric-label { display: flex; justify-content: space-between; color: var(--muted); font-size: 11px; }.metric-label em { padding: 3px 6px; border-radius: 4px; color: var(--blue-2); background: var(--blue-soft); font-style: normal; font-size: 9px; }.metric-label em.good { color: var(--green); background: var(--green-soft); }.metric-label em.risk { color: var(--red); background: var(--red-soft); }
.metric-value { margin-top: 12px; font-family: Consolas, monospace; font-size: 31px; font-weight: 700; letter-spacing: -.05em; }.metric-value small { margin-left: 3px; font-family: "Microsoft YaHei UI", sans-serif; font-size: 12px; font-weight: 400; letter-spacing: 0; }
.progress-line { height: 5px; margin-top: 14px; overflow: hidden; border-radius: 3px; background: #e8edf0; }.progress-line i { display: block; height: 100%; border-radius: inherit; background: var(--green); }
.metric-card p { margin: 12px 0 0; color: var(--muted); font-size: 10px; }.metric-card p strong { color: var(--green); }.metric-card p strong.orange { color: var(--orange); }
.segmented-progress { display: flex; gap: 3px; margin-top: 13px; }.segmented-progress i { flex: 1; height: 5px; border-radius: 2px; background: #e6ebee; }.segmented-progress i.done { background: var(--blue-2); }.segmented-progress i.doing { background: #8fb2ca; }
.resource-row, .issue-totals { display: flex; justify-content: space-between; margin-top: 11px; color: var(--muted); font-size: 10px; }.resource-row strong { color: var(--ink); }.issue-totals { justify-content: flex-start; gap: 14px; }.issue-totals span { display: flex; align-items: center; gap: 5px; }.issue-totals i { width: 6px; height: 6px; border-radius: 50%; }.critical { background: var(--red); }.medium { background: var(--orange); }
.risk-card { border-top: 2px solid var(--orange); }

.content-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .85fr); gap: 13px; margin-top: 13px; }
.panel { border-radius: var(--radius); }.task-panel { min-height: 460px; padding: 20px 22px; }.panel-heading.compact { margin-bottom: 8px; }.text-button { border: 0; color: var(--blue-2); background: none; cursor: pointer; font-size: 10px; font-weight: 700; }
.task-filters { display: flex; gap: 7px; margin: 18px 0 8px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }.task-filters button { padding: 5px 10px; border: 0; border-radius: 5px; color: var(--muted); background: none; cursor: pointer; font-size: 10px; }.task-filters button.active { color: white; background: var(--blue); }
.task-item { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 12px 2px; border-bottom: 1px solid #e8edef; }
.task-status { display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid #b9c5cd; border-radius: 50%; color: transparent; background: white; cursor: pointer; }.task-item.done .task-status { border-color: var(--green); color: white; background: var(--green); }.task-item.doing .task-status { border-color: var(--blue-2); color: var(--blue-2); background: var(--blue-soft); }
.task-copy { min-width: 0; }.task-title { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; }.task-item.done .task-title { color: #82909a; text-decoration: line-through; }.task-title .risk-tag { padding: 2px 5px; border-radius: 3px; color: var(--red); background: var(--red-soft); font-size: 8px; font-weight: 700; }
.task-meta { display: flex; gap: 12px; margin-top: 4px; color: var(--muted); font-size: 9px; }.task-meta span::before { margin-right: 3px; color: #9cabb5; }
.task-side { display: grid; justify-items: end; gap: 4px; }.task-time { min-width: 68px; padding: 6px 8px; border-radius: 5px; color: var(--muted); background: #f3f6f7; font-family: Consolas, monospace; font-size: 10px; text-align: center; }.task-item.risk .task-time { color: var(--red); background: var(--red-soft); }.task-urge { padding: 2px 4px; border: 0; color: var(--orange); background: none; cursor: pointer; font-size: 8px; font-weight: 700; }.task-urge:hover { text-decoration: underline; }
.empty-state { padding: 40px 20px; color: var(--muted); text-align: center; font-size: 12px; }
.side-stack { display: grid; gap: 13px; align-content: start; }.issue-panel { padding: 19px 18px; }.issue-item { display: grid; grid-template-columns: 4px 1fr auto; gap: 11px; padding: 12px 0; border-bottom: 1px solid #e8edef; }.issue-item:last-child { border-bottom: 0; }.issue-bar { border-radius: 3px; background: var(--orange); }.issue-item.critical .issue-bar { background: var(--red); }
.issue-item h3 { margin: 0; font-size: 11px; }.issue-item p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }.issue-countdown { color: var(--orange); font-family: Consolas, monospace; font-size: 9px; }.issue-item.critical .issue-countdown { color: var(--red); }
.insight-panel { position: relative; overflow: hidden; padding: 20px; color: white; background: var(--blue); }.insight-panel::after { content: ""; position: absolute; right: -30px; bottom: -40px; width: 130px; height: 130px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: 0 0 0 20px rgba(255,255,255,.03), 0 0 0 42px rgba(255,255,255,.02); }
.insight-heading { display: flex; align-items: center; gap: 10px; }.spark { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: #ffd390; background: rgba(255,255,255,.1); }.insight-heading p { color: #a8bdcb; }
.insight-panel > p { position: relative; z-index: 1; margin: 16px 0; color: #d8e3e9; font-size: 11px; line-height: 1.75; }.insight-impact { display: flex; align-items: baseline; gap: 10px; padding: 10px 0; border-block: 1px solid rgba(255,255,255,.12); font-size: 10px; }.insight-impact strong { color: #ffcf8c; font-family: Consolas, monospace; font-size: 15px; }.insight-panel button { position: relative; z-index: 1; width: 100%; min-height: 36px; margin-top: 13px; border: 0; border-radius: 6px; color: var(--blue); background: white; cursor: pointer; font-size: 10px; font-weight: 700; }

.subview { min-height: calc(100vh - 145px); }.subview-shell { max-width: 1200px; }.subview-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 20px; }.subview-heading h1 { margin: 0; font-family: "STZhongsong", serif; font-size: 30px; }.subview-heading p { margin: 7px 0 0; color: var(--muted); font-size: 12px; }
.data-table { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: var(--shadow); }.data-row { display: grid; grid-template-columns: 1.4fr .8fr .8fr .8fr .6fr; align-items: center; min-height: 55px; padding: 0 18px; border-bottom: 1px solid #e9edef; font-size: 11px; }.data-row:last-child { border: 0; }.data-row.header { min-height: 40px; color: var(--muted); background: #f5f7f8; font-size: 9px; }.status-pill { justify-self: start; padding: 4px 8px; border-radius: 9px; color: var(--green); background: var(--green-soft); font-size: 9px; }.status-pill.warn { color: var(--orange); background: var(--orange-soft); }
.data-row.task-data-row { grid-template-columns: 1.35fr .55fr .85fr .5fr .5fr auto; }
.timeline-panel { padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: var(--shadow); }.timeline-header { display: grid; grid-template-columns: 150px repeat(8, 1fr); margin-bottom: 10px; color: var(--muted); font: 9px Consolas, monospace; }.gantt-row { display: grid; grid-template-columns: 150px 1fr; align-items: center; min-height: 47px; border-top: 1px solid #edf0f2; font-size: 11px; }.gantt-track { position: relative; height: 12px; border-radius: 2px; background: repeating-linear-gradient(90deg,#f1f4f5 0,#f1f4f5 calc(12.5% - 1px),#dfe6ea calc(12.5% - 1px),#dfe6ea 12.5%); }.gantt-bar { position: absolute; height: 12px; border-radius: 2px; background: var(--blue-2); }.gantt-bar.risk { background: var(--orange); }
.card-collection { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; }.info-card { padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: var(--shadow); }.info-card h3 { margin: 0; font-size: 14px; }.info-card .big { margin: 18px 0 4px; font: 700 30px Consolas, monospace; }.info-card p { color: var(--muted); font-size: 10px; line-height: 1.6; }.mini-bar { height: 6px; margin-top: 15px; border-radius: 3px; background: #e9eef0; }.mini-bar i { display: block; height: 100%; border-radius: inherit; background: var(--green); }
.document-overview { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; margin-bottom: 13px; }.document-kpi { padding: 17px 18px; border: 1px solid var(--line); border-radius: 11px; background: white; box-shadow: var(--shadow); }.document-kpi span { color: var(--muted); font-size: 10px; }.document-kpi strong { display: block; margin-top: 8px; font: 700 27px Consolas, monospace; }.document-kpi strong small { margin-left: 3px; font: 10px "Microsoft YaHei UI", sans-serif; }.document-kpi p { margin: 6px 0 0; color: var(--muted); font-size: 9px; }.document-kpi.risk { border-top: 2px solid var(--orange); }
.document-chain-panel, .document-list-panel { padding: 21px; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: var(--shadow); }.document-list-panel { margin-top: 13px; }.document-panel-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 17px; }.document-panel-heading h2 { margin: 0; font-size: 15px; }.document-panel-heading p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }.document-panel-heading button { border: 0; color: var(--blue-2); background: none; cursor: pointer; font-size: 10px; font-weight: 700; }
.chain-switcher { display: flex; gap: 7px; margin: -4px 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }.chain-switcher button { display: flex; align-items: center; gap: 7px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: white; cursor: pointer; font-size: 10px; }.chain-switcher button.active { border-color: var(--blue-2); color: var(--blue-2); background: var(--blue-soft); font-weight: 700; }.chain-switcher i { width: 7px; height: 7px; border-radius: 50%; background: var(--orange); }.chain-switcher button.qualified i { background: var(--green); }
.dependency-chain { display: grid; grid-template-columns: repeat(7, auto); align-items: center; justify-content: center; gap: 10px; padding: 22px 14px; border-radius: 9px; background: #f5f8fa; }.dependency-step { display: grid; justify-items: center; min-width: 105px; }.dependency-step i { display: grid; place-items: center; width: 35px; height: 35px; border: 2px solid #c8d4db; border-radius: 50%; color: #8596a1; background: white; font-style: normal; font-size: 11px; }.dependency-step.done i { border-color: var(--green); color: white; background: var(--green); }.dependency-step.current i { border-color: var(--orange); color: white; background: var(--orange); }.dependency-step.blocked i { border-color: #c7d2d9; color: #8898a2; background: #e6ecef; }.dependency-step strong { margin-top: 7px; font-size: 10px; }.dependency-step small { margin-top: 3px; color: var(--muted); font-size: 8px; }.dependency-arrow { color: #9dabb4; font-size: 15px; }
.gate-result { display: flex; align-items: center; gap: 11px; margin-top: 13px; padding: 12px 14px; border-left: 3px solid var(--orange); border-radius: 6px; background: var(--orange-soft); }.gate-result.qualified { border-color: var(--green); background: var(--green-soft); }.gate-result strong { font-size: 11px; }.gate-result p { flex: 1; margin: 0; color: var(--muted); font-size: 9px; }.gate-result button { padding: 6px 10px; border: 1px solid currentColor; border-radius: 5px; color: var(--blue-2); background: white; cursor: pointer; font-size: 9px; font-weight: 700; }
.document-row { display: grid; grid-template-columns: 1.25fr .8fr .65fr .6fr .55fr .5fr; align-items: center; min-height: 55px; padding: 0 12px; border-top: 1px solid #e8edef; font-size: 10px; }.document-row.header { min-height: 34px; border-top: 0; color: var(--muted); background: #f6f8f9; font-size: 9px; }.document-row strong { font-size: 11px; }.document-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 8px; }.document-status { justify-self: start; padding: 4px 7px; border-radius: 5px; color: var(--green); background: var(--green-soft); font-size: 9px; }.document-status.pending { color: var(--orange); background: var(--orange-soft); }.document-status.failed { color: var(--red); background: var(--red-soft); }.document-urge { justify-self: start; padding: 5px 8px; border: 1px solid #d7a57e; border-radius: 5px; color: #a04e13; background: #fff8f2; cursor: pointer; font-size: 8px; font-weight: 700; }.document-urge:disabled { border-color: var(--line); color: #96a3ab; background: #f3f5f6; cursor: default; }
.material-acceptance-row { display: grid; grid-template-columns: 1.2fr 1fr 1.1fr .9fr .72fr auto; align-items: center; gap: 12px; min-height: 76px; padding: 10px 12px; border-top: 1px solid #e6ecef; font-size: 9px; }.material-acceptance-row.header { min-height: 36px; padding-block: 0; border-top: 0; color: var(--muted); background: #f5f7f8; font-size: 8px; }.material-acceptance-row > span, .material-acceptance-row > button { min-width: 0; }.material-acceptance-row > span b, .material-acceptance-row > span small { display: block; }.material-acceptance-row > span b { margin-bottom: 4px; font-size: 9px; }.material-acceptance-row > span small { margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 7.5px; line-height: 1.5; text-overflow: ellipsis; }.material-acceptance-name { padding: 7px 0; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }.material-acceptance-name strong, .material-acceptance-name small { display: block; }.material-acceptance-name strong { font-size: 11px; }.material-acceptance-name small { margin-top: 5px; color: var(--muted); font-size: 8px; line-height: 1.5; }.material-acceptance-name:hover strong { color: var(--blue-2); }.material-batch-status { display: inline-block; padding: 4px 7px; border-radius: 5px; color: var(--orange); background: var(--orange-soft); font-size: 8px; font-style: normal; font-weight: 700; }.material-batch-status.done { color: var(--green); background: var(--green-soft); }.material-batch-status.testing { color: var(--blue-2); background: var(--blue-soft); }.material-batch-status.failed { color: var(--red); background: var(--red-soft); }
.document-status.testing { color: var(--blue-2); background: var(--blue-soft); }.document-name-button { padding: 8px 0; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }.document-name-button:hover strong { color: var(--blue-2); }.chain-material-card { display: grid; grid-template-columns: minmax(170px,1.4fr) repeat(3,auto); align-items: center; gap: 14px; margin: 12px 0; padding: 11px 13px; border: 1px solid #d7e1e6; border-radius: 8px; background: #f8fafb; }.chain-material-card strong, .chain-material-card small { display: block; }.chain-material-card strong { font-size: 10px; }.chain-material-card small, .chain-material-card span, .chain-material-card p { color: var(--muted); font-size: 8px; }.linked-material-summary { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-bottom: 14px; padding: 10px 11px; border: 1px solid #d5e1e7; border-radius: 7px; color: var(--muted); background: #f5f9fb; font-size: 9px; }.linked-material-summary b { color: var(--ink); }.document-file-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; margin-top: 4px; }.document-file-groups section, .existing-check-attachments section { padding: 9px; border: 1px solid var(--line); border-radius: 7px; background: white; }.document-file-groups section > strong, .existing-check-attachments section > strong { display: block; margin-bottom: 5px; color: var(--ink); font-size: 9px; }.stored-file-button { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 7px; width: 100%; padding: 7px 0; border: 0; border-top: 1px solid #e8edef; color: inherit; background: white; text-align: left; cursor: pointer; }.stored-file-button i { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 5px; color: var(--blue-2); background: var(--blue-soft); font: 700 7px Consolas,monospace; }.stored-file-button b, .stored-file-button small { display: block; }.stored-file-button b { font-size: 8px; }.stored-file-button small { color: var(--muted); font-size: 7px; }.stored-file-button em { color: var(--blue-2); font-size: 8px; font-style: normal; }.existing-check-attachments { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin-bottom: 13px; }
.view-hidden { display: none !important; }
.quality-summary-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 13px; }.info-card.interactive { width: 100%; color: inherit; font-family: inherit; text-align: left; cursor: pointer; }.info-card.interactive.active, .info-card.interactive:hover { border-color: var(--blue-2); box-shadow: inset 0 0 0 1px var(--blue-2), var(--shadow); }.quality-list-panel, .management-panel, .workforce-panel { margin-top: 14px; padding: 17px; border: 1px solid var(--line); border-radius: 11px; background: white; box-shadow: var(--shadow); }.quality-list-heading, .section-line-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }.quality-list-heading strong, .quality-list-heading small, .section-line-heading strong, .section-line-heading small { display: block; }.quality-list-heading strong, .section-line-heading strong { font-size: 11px; }.quality-list-heading small, .section-line-heading small { margin-top: 4px; color: var(--muted); font-size: 8px; }.quality-list-heading button, .section-line-heading button { min-height: 30px; padding: 0 9px; border: 1px solid #b8c9d3; border-radius: 6px; color: var(--blue-2); background: white; cursor: pointer; font-size: 8px; font-weight: 700; }.section-line-heading > div:last-child { display: flex; gap: 6px; }.quality-check-list { display: grid; gap: 6px; }.quality-check-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; align-items: center; gap: 10px; width: 100%; padding: 10px; border: 1px solid #e2e8eb; border-radius: 7px; color: inherit; background: white; text-align: left; cursor: pointer; }.quality-check-row:hover { border-color: #9db6c5; background: #f8fafb; }.quality-check-row > i { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 6px; color: var(--blue-2); background: var(--blue-soft); font-size: 9px; font-style: normal; font-weight: 700; }.quality-check-row > i.safety { color: var(--orange); background: var(--orange-soft); }.quality-check-row strong, .quality-check-row small { display: block; }.quality-check-row strong { font-size: 10px; }.quality-check-row small { margin-top: 3px; color: var(--muted); font-size: 8px; }.quality-check-row > span:last-child { color: var(--muted); font-size: 8px; }.quality-status { padding: 4px 7px; border-radius: 5px; color: var(--orange); background: var(--orange-soft); font-size: 8px; font-weight: 700; }.quality-status.closed { color: var(--green); background: var(--green-soft); }.quality-status.rectifying { color: var(--blue-2); background: var(--blue-soft); }
.management-roster { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }.management-roster article { display: grid; grid-template-columns: auto 1fr; gap: 9px; min-height: 102px; padding: 11px; border: 1px solid #e0e7ea; border-radius: 8px; }.management-avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; color: white; background: var(--blue); font-size: 11px; font-weight: 700; }.management-roster strong, .management-roster span { display: inline-block; }.management-roster strong { margin-right: 6px; font-size: 10px; }.management-roster span { color: var(--blue-2); font-size: 8px; }.management-roster p { min-height: 28px; margin: 5px 0; color: var(--muted); font-size: 8px; line-height: 1.55; }.management-roster a { color: var(--blue-2); font-size: 8px; text-decoration: none; }.workforce-cards { margin-top: 2px; }
.attendance-history { display: grid; margin-top: 12px; border-top: 1px solid var(--line); }.attendance-history > div { display: flex; align-items: center; justify-content: space-between; padding: 10px 0 5px; }.attendance-history > div strong { font-size: 9px; }.attendance-history > div button { border: 0; color: var(--blue-2); background: transparent; cursor: pointer; font-size: 8px; font-weight: 700; }.attendance-history > button { display: grid; grid-template-columns: 80px 1fr 1.4fr auto; align-items: center; gap: 10px; width: 100%; padding: 9px 0; border: 0; border-top: 1px solid #edf1f3; color: inherit; background: white; text-align: left; cursor: pointer; }.attendance-history > button:hover { background: #f8fafb; }.attendance-history b { color: var(--ink); font-size: 9px; }.attendance-history span, .attendance-history em, .attendance-history i { color: var(--muted); font-size: 8px; font-style: normal; }.attendance-history i { color: var(--blue-2); font-weight: 700; }
.attendance-history-entry { display: grid !important; grid-template-columns: minmax(0,1fr) auto; gap: 8px; padding: 0 !important; border-top: 1px solid #edf1f3; }.attendance-history-entry > button:first-child { display: grid; grid-template-columns: 80px 1fr 1.4fr auto; align-items: center; gap: 10px; min-width: 0; padding: 9px 0; border: 0; color: inherit; background: white; text-align: left; cursor: pointer; }.attendance-supplement-action { align-self: center; min-width: 105px; min-height: 29px; padding: 0 8px !important; border: 1px solid #8bb4a7 !important; border-radius: 6px; color: var(--green) !important; background: #f2f8f6 !important; }.attendance-supplement-action.expired { border-color: #d8e0e4 !important; color: #8998a1 !important; background: #f4f6f7 !important; cursor: not-allowed !important; }
.wide-dialog { width: min(900px, calc(100% - 28px)); }.inspection-batch-row > div em { display: block; margin-top: 5px; color: var(--blue-2); font-size: 8px; font-style: normal; font-weight: 700; }.quality-list-heading > div:last-child { display: flex; gap: 6px; }.unified-rectification-panel { margin: 4px 0 18px; padding: 15px; border-left: 3px solid var(--blue-2); border-radius: 8px; background: #f3f7fa; }.unified-rectification-panel > div:first-child strong, .unified-rectification-panel > div:first-child small { display: block; }.unified-rectification-panel > div:first-child strong { font-size: 12px; }.unified-rectification-panel > div:first-child small { margin: 4px 0 13px; color: var(--muted); font-size: 9px; }.inspection-main-attachments, .inspection-issue-existing { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }.inspection-main-attachments section, .inspection-issue-existing section { min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 7px; background: white; }.inspection-main-attachments section > strong, .inspection-issue-existing section > strong { display: block; margin-bottom: 5px; font-size: 9px; }.inspection-issues-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 18px 0 10px; }.inspection-issues-heading strong, .inspection-issues-heading small { display: block; }.inspection-issues-heading strong { font-size: 12px; }.inspection-issues-heading small { margin-top: 4px; color: var(--muted); font-size: 9px; }.inspection-issue-editor { display: grid; gap: 11px; }.inspection-issue-editor-row { position: relative; padding: 15px 15px 15px 72px; border: 1px solid #dce5e9; border-radius: 9px; background: white; }.inspection-issue-number { position: absolute; inset: 15px auto 15px 15px; width: 40px; padding-right: 12px; border-right: 1px solid var(--line); }.inspection-issue-number span, .inspection-issue-number strong { display: block; }.inspection-issue-number span { color: var(--muted); font-size: 7px; }.inspection-issue-number strong { margin-top: 5px; color: var(--blue-2); font: 700 22px Consolas,monospace; }.inspection-issue-number button { position: absolute; bottom: 0; left: 0; padding: 0; border: 0; color: var(--red); background: transparent; cursor: pointer; font-size: 8px; }.inspection-issue-existing { grid-template-columns: 1fr 1fr; }
.attendance-day-detail { display: grid; grid-template-columns: .8fr 1.3fr auto; align-items: center; gap: 18px; margin-bottom: 14px; padding: 15px; border-left: 3px solid var(--green); border-radius: 8px; background: #f2f8f6; }.attendance-day-detail span, .attendance-day-detail strong, .attendance-day-detail small { display: block; }.attendance-day-detail span { color: var(--muted); font-size: 9px; }.attendance-day-detail strong { margin: 4px 0; font: 700 22px Consolas,monospace; }.attendance-day-detail small, .attendance-day-detail p { margin: 3px 0; color: var(--muted); font-size: 9px; line-height: 1.6; }.attendance-day-actions { display: grid; gap: 6px; }.attendance-day-detail button { max-width: 210px; overflow: hidden; padding: 8px 10px; border: 1px solid #9eb6c4; border-radius: 6px; color: var(--blue-2); background: white; cursor: pointer; font-size: 8px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }.attendance-day-detail button.supplement-open { border-color: #78a897; color: var(--green); }.attendance-day-detail button.supplement-locked { border-color: #d8e0e4; color: #8b989f; background: #f2f4f5; cursor: not-allowed; }.attendance-history-table { overflow: hidden; border: 1px solid var(--line); border-radius: 9px; }.attendance-history-row { display: grid; grid-template-columns: .58fr .72fr .48fr 1.25fr .82fr 1.1fr; align-items: center; gap: 10px; min-height: 48px; width: 100%; padding: 8px 12px; border: 0; border-top: 1px solid #e7edef; color: inherit; background: white; text-align: left; font-size: 8px; }.attendance-history-row:not(.header) { cursor: pointer; }.attendance-history-row.header { min-height: 34px; border-top: 0; color: var(--muted); background: #f4f7f8; }.attendance-history-row.active { box-shadow: inset 3px 0 var(--blue-2); background: #f4f8fb; }.attendance-history-row span:last-child { overflow: hidden; color: var(--blue-2); text-overflow: ellipsis; white-space: nowrap; }.supplement-state { display: inline-block; width: fit-content; padding: 3px 6px; border-radius: 5px; color: var(--green); background: var(--green-soft); font-weight: 700; }.supplement-state.closed { color: #84939b; background: #edf1f3; }
.supplement-audit-list { margin: -2px 0 14px; padding: 12px 14px; border: 1px solid #d8e5df; border-radius: 8px; background: #fbfdfc; }.supplement-audit-list > strong { display: block; margin-bottom: 7px; font-size: 9px; }.supplement-audit-list > div { display: grid; grid-template-columns: .7fr .55fr 1.5fr auto; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid #e8eeeb; font-size: 8px; }.supplement-audit-list p { margin: 0; color: var(--muted); }.supplement-audit-list button { padding: 5px 7px; border: 1px solid #a7beb3; border-radius: 5px; color: var(--green); background: white; cursor: pointer; font-size: 8px; }
.acceptance-material-summary { display: grid; grid-template-columns: 1.2fr 1fr .8fr; gap: 8px; margin-bottom: 14px; }.acceptance-material-summary > div { padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #f7f9fa; }.acceptance-material-summary span, .acceptance-material-summary strong, .acceptance-material-summary small { display: block; }.acceptance-material-summary span { color: var(--muted); font-size: 8px; }.acceptance-material-summary strong { margin-top: 5px; font-size: 11px; }.acceptance-material-summary small { margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.5; }.acceptance-document-editor { display: grid; gap: 7px; }.acceptance-document-item { display: grid; grid-template-columns: 38px minmax(150px,1.2fr) 1fr .65fr .65fr auto; align-items: end; gap: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 8px; }.acceptance-document-sequence { align-self: center; }.acceptance-document-sequence span { color: var(--blue-2); font: 700 14px Consolas,monospace; }.acceptance-document-sequence i { display: block; width: 18px; height: 3px; margin-top: 5px; border-radius: 2px; background: var(--orange); }.acceptance-document-sequence i.done { background: var(--green); }.acceptance-document-sequence i.testing { background: var(--blue-2); }.acceptance-document-sequence i.failed { background: var(--red); }.acceptance-document-item > div:nth-child(2) strong, .acceptance-document-item > div:nth-child(2) small { display: block; }.acceptance-document-item > div:nth-child(2) strong { font-size: 10px; }.acceptance-document-item > div:nth-child(2) small { margin-top: 4px; color: var(--muted); font-size: 8px; }.acceptance-document-item label { gap: 4px; margin: 0; font-size: 8px; }.acceptance-document-item input, .acceptance-document-item select { padding: 7px 8px; font-size: 9px; }.acceptance-urge { align-self: end; min-height: 29px; padding: 0 8px; border: 1px solid #d7a57e; border-radius: 5px; color: #a04e13; background: #fff8f2; cursor: pointer; font-size: 8px; font-weight: 700; }.acceptance-urge:disabled { border-color: var(--line); color: #95a1a8; background: #f2f4f5; cursor: default; }.acceptance-upload-panel { margin-top: 14px; padding: 14px; border-left: 3px solid var(--blue-2); border-radius: 8px; background: #f3f7fa; }.acceptance-upload-panel > div:first-child strong, .acceptance-upload-panel > div:first-child small { display: block; }.acceptance-upload-panel > div:first-child strong { font-size: 11px; }.acceptance-upload-panel > div:first-child small { margin: 4px 0 12px; color: var(--muted); font-size: 8px; }.acceptance-existing-files { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }.acceptance-existing-files section { min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 7px; background: white; }.acceptance-existing-files section > strong { display: block; margin-bottom: 5px; font-size: 8px; }.supplement-deadline { margin-bottom: 15px; padding: 12px 13px; border-left: 3px solid var(--orange); border-radius: 7px; background: var(--orange-soft); }.supplement-deadline span, .supplement-deadline strong, .supplement-deadline small { display: block; }.supplement-deadline span { color: #98602b; font-size: 8px; }.supplement-deadline strong { margin: 4px 0; font-size: 12px; }.supplement-deadline small { color: var(--muted); font-size: 8px; line-height: 1.5; }

dialog { width: min(540px, calc(100% - 28px)); max-width: calc(100vw - 28px); max-height: min(88vh, 760px); padding: 0; overflow-x: hidden; overflow-y: auto; border: 0; border-radius: 14px; box-shadow: 0 30px 90px rgba(9,30,44,.3); }dialog::backdrop { background: rgba(9,26,38,.55); backdrop-filter: blur(2px); }dialog form { min-width: 0; padding: 25px; }.dialog-heading { display: flex; align-items: start; justify-content: space-between; margin-bottom: 20px; }.dialog-heading span { color: var(--blue-2); font-size: 9px; letter-spacing: .12em; }.dialog-heading h2 { margin: 4px 0 0; font-family: "STZhongsong", serif; font-size: 22px; }
dialog label { display: grid; gap: 7px; margin-bottom: 15px; color: #526470; font-size: 11px; font-weight: 700; }dialog input, dialog select, dialog textarea { width: 100%; padding: 10px 11px; border: 1px solid #cdd7dd; border-radius: 7px; color: var(--ink); background: white; font-size: 12px; }dialog textarea { resize: vertical; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }.record-types { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin-bottom: 16px; }.record-types label { margin: 0; }.record-types input { position: absolute; opacity: 0; }.record-types span { display: grid; place-items: center; height: 40px; border: 1px solid var(--line); border-radius: 7px; cursor: pointer; }.record-types input:checked + span { border-color: var(--blue-2); color: var(--blue-2); background: var(--blue-soft); }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0 !important; }
.photo-field { margin-top: 2px; }.field-label { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; color: #526470; }.field-label span { font-size: 11px; font-weight: 700; }.field-label small { color: var(--muted); font-size: 9px; }
.photo-dropzone { display: flex !important; flex-direction: column; align-items: center; justify-content: center; min-height: 90px; margin: 0 !important; padding: 13px; border: 1px dashed #9eb3c1; border-radius: 9px; color: var(--blue-2) !important; background: #f5f9fb; cursor: pointer; transition: .18s ease; }.photo-dropzone:hover { border-color: var(--blue-2); background: var(--blue-soft); }.camera-mark { display: grid; place-items: center; width: 30px; height: 25px; border: 1px solid #8da7b9; border-radius: 6px; background: white; font-size: 13px; }.photo-dropzone strong { font-size: 11px; }.photo-dropzone small { color: var(--muted); font-size: 9px; font-weight: 400; }
.photo-preview { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 9px; }.photo-thumb { position: relative; aspect-ratio: 1; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #edf2f4; }.photo-thumb img { width: 100%; height: 100%; object-fit: cover; }.photo-thumb button { position: absolute; top: 4px; right: 4px; display: grid; place-items: center; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; color: white; background: rgba(20,35,48,.78); cursor: pointer; }.photo-thumb .photo-number { position: absolute; left: 4px; bottom: 4px; padding: 2px 5px; border-radius: 4px; color: white; background: rgba(20,35,48,.7); font: 9px Consolas, monospace; }
.recent-records { margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); }.recent-records-heading { display: flex; justify-content: space-between; margin-bottom: 9px; }.recent-records-heading strong { font-size: 11px; }.recent-records-heading span { color: var(--green); font-size: 9px; }.records-empty { margin: 0; padding: 15px; border-radius: 7px; color: var(--muted); background: #f5f7f8; font-size: 10px; text-align: center; }
.recent-record { padding: 10px 0; border-bottom: 1px solid #e7ecef; }.recent-record:last-child { border-bottom: 0; }.recent-record-meta { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 9px; }.record-type { padding: 3px 6px; border-radius: 4px; color: var(--blue-2); background: var(--blue-soft); font-weight: 700; }.recent-record p { margin: 7px 0 0; color: var(--ink); font-size: 10px; line-height: 1.6; }.recent-record-photos { display: flex; gap: 5px; margin-top: 7px; }.recent-record-photos img { width: 46px; height: 46px; border: 1px solid var(--line); border-radius: 5px; object-fit: cover; cursor: zoom-in; }
.gate-chain { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 12px 9px; border-radius: 8px; background: #f4f7f9; }.gate-chain span { padding: 5px 7px; border-radius: 5px; color: var(--muted); background: #e3e9ed; font-size: 9px; font-weight: 700; }.gate-chain span.done { color: var(--green); background: var(--green-soft); }.gate-chain span.current { color: var(--orange); background: var(--orange-soft); }.gate-chain i { color: #9cabb4; font-style: normal; font-size: 10px; }.gate-question { margin: 17px 0 12px; }.gate-question strong { font-size: 13px; }.gate-question p { margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.gate-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }.gate-options label { position: relative; min-width: 0; margin: 0; }.gate-options input { position: absolute; top: 0; left: 0; width: 1px !important; height: 1px !important; padding: 0 !important; border: 0 !important; opacity: 0; }.gate-options span { display: block; min-width: 0; min-height: 70px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }.gate-options b, .gate-options small { display: block; }.gate-options b { font-size: 11px; }.gate-options small { margin-top: 6px; color: var(--muted); font-size: 8px; line-height: 1.5; }.gate-options input:checked + span { border-color: var(--blue-2); color: var(--blue-2); background: var(--blue-soft); box-shadow: 0 0 0 2px rgba(35,90,130,.08); }.gate-warning { display: flex; align-items: center; gap: 9px; margin-top: 13px; padding: 9px 10px; border-radius: 7px; color: #875025; background: var(--orange-soft); }.gate-warning span { display: grid; place-items: center; flex: 0 0 auto; width: 19px; height: 19px; border-radius: 50%; color: white; background: var(--orange); font-weight: 700; font-size: 10px; }.gate-warning p { margin: 0; font-size: 9px; line-height: 1.5; }
.urgency-fieldset { margin: 0 0 15px; padding: 0; border: 0; }.urgency-fieldset legend { margin-bottom: 8px; color: #526470; font-size: 11px; font-weight: 700; }.urgency-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.urgency-options label { position: relative; margin: 0; }.urgency-options input { position: absolute; width: 1px !important; height: 1px !important; padding: 0 !important; opacity: 0; }.urgency-options span { display: block; min-height: 58px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }.urgency-options b, .urgency-options small { display: block; }.urgency-options b { font-size: 11px; }.urgency-options small { margin-top: 4px; color: var(--muted); font-size: 8px; }.urgency-options input:checked + span { border-color: var(--orange); color: #a34f14; background: var(--orange-soft); }
.intake-switcher { display: flex; gap: 6px; margin: -4px 0 15px; padding: 4px; border-radius: 8px; background: #f0f4f6; }.intake-switcher button { flex: 1; min-height: 34px; border: 0; border-radius: 6px; color: var(--muted); background: transparent; cursor: pointer; font-size: 9px; }.intake-switcher button.active { color: var(--blue); background: white; box-shadow: 0 2px 8px rgba(27,52,69,.08); font-weight: 700; }.intake-panel { margin-bottom: 15px; }.import-dropzone { display: grid !important; place-items: center; min-height: 88px; margin: 0 !important; padding: 12px; border: 1px dashed #91aabc; border-radius: 8px; color: var(--blue-2) !important; background: #f6fafc; cursor: pointer; text-align: center; }.import-dropzone strong, .import-dropzone small { display: block; }.import-dropzone small { margin-top: 5px; color: var(--muted); font-size: 8px; font-weight: 400; }.recognition-state { margin-top: 7px; padding: 7px 9px; border-radius: 6px; color: var(--muted); background: #f3f6f7; font-size: 9px; }.recognition-state.working { color: var(--orange); background: var(--orange-soft); }.recognition-state.done { color: var(--green); background: var(--green-soft); }
.recognition-candidates { display: grid; gap: 6px; margin-bottom: 13px; }.candidate-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; padding: 8px; border: 1px solid var(--line); border-radius: 7px; background: #f9fbfc; }.candidate-row input { padding: 7px 8px; }.candidate-row button { border: 0; color: var(--red); background: none; cursor: pointer; font-size: 9px; }.candidate-meta { grid-column: 1 / -1; display: flex; gap: 8px; color: var(--muted); font-size: 8px; }.voice-button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; margin-bottom: 8px; border: 1px solid #d4dfe5; border-radius: 8px; color: var(--blue); background: white; cursor: pointer; }.voice-button span { display: grid; place-items: center; width: 28px; height: 28px; margin-left: 9px; border-radius: 50%; color: var(--red); background: var(--red-soft); }.voice-button.listening span { color: white; background: var(--red); animation: pulse 1.5s infinite; }.voice-button strong { font-size: 10px; }.match-hint { color: var(--green); font-size: 8px; font-weight: 400; }.dialog-description { margin: -8px 0 17px; color: var(--muted); font-size: 10px; line-height: 1.6; }.organization-editor { display: grid; gap: 8px; }.organization-person { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 9px; border: 1px solid var(--line); border-radius: 7px; }.organization-person input, .organization-person select { padding: 8px; }
.plan-level-tabs, .resource-tabs { display: flex; gap: 7px; margin-bottom: 14px; }.plan-level-tabs button, .resource-tabs button { padding: 8px 12px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: white; cursor: pointer; font-size: 10px; }.plan-level-tabs button.active, .resource-tabs button.active { border-color: var(--blue-2); color: var(--blue-2); background: var(--blue-soft); font-weight: 700; }.plan-level-tabs b, .resource-tabs b { margin-left: 5px; padding: 2px 5px; border-radius: 7px; background: #e7edf0; font-size: 8px; }.plan-level-tabs .active b, .resource-tabs .active b { background: white; }
.plan-list { display: grid; gap: 8px; }.plan-row { display: grid; grid-template-columns: minmax(0,1.3fr) .65fr .65fr .6fr auto; align-items: center; gap: 10px; min-height: 57px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 9px; background: white; box-shadow: var(--shadow); font-size: 10px; }.plan-row strong { display: block; font-size: 11px; }.plan-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 8px; }.edit-action { padding: 5px 8px; border: 1px solid #b8c8d2; border-radius: 5px; color: var(--blue-2); background: white; cursor: pointer; font-size: 8px; font-weight: 700; }
.daily-plan-archive { display: grid; gap: 10px; }.daily-plan-group { overflow: hidden; border: 1px solid #d6e1e7; border-radius: 11px; background: #fff; box-shadow: 0 7px 20px rgba(27,54,73,.055); }.daily-plan-group > summary { display: grid; grid-template-columns: 42px minmax(0,1fr) auto 24px; align-items: center; gap: 12px; min-height: 68px; padding: 11px 14px; cursor: pointer; list-style: none; background: linear-gradient(100deg,#f7fafb,#fff); }.daily-plan-group > summary::-webkit-details-marker { display: none; }.daily-plan-group > summary:hover { background: #f2f7f9; }.daily-plan-group > summary:focus-visible { outline: 2px solid var(--blue-2); outline-offset: -2px; }.daily-plan-date-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 8px; color: white; background: var(--blue-2); font: 700 15px Consolas,monospace; box-shadow: inset 0 -4px rgba(0,0,0,.08); }.daily-plan-group summary strong { font-size: 12px; }.daily-plan-group summary strong > span { margin-left: 7px; color: var(--muted); font: 500 8px "Microsoft YaHei",sans-serif; }.daily-plan-group summary small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; }.daily-plan-group-stats { display: flex; align-items: center; gap: 12px; color: #536a78; font-size: 8px; }.daily-plan-group-stats b { color: var(--blue-2); font: 700 12px Consolas,monospace; }.daily-plan-group-stats em { min-width: 46px; padding: 5px 7px; border-radius: 6px; color: var(--green); background: var(--green-soft); font-style: normal; font-weight: 700; text-align: center; }.daily-plan-group summary > i { color: #66808f; font-size: 18px; font-style: normal; transition: transform .18s ease; }.daily-plan-group[open] summary > i { transform: rotate(180deg); }.daily-plan-group[open] > summary { border-bottom: 1px solid #dce5ea; background: #eef5f8; }.daily-plan-group-body { display: grid; gap: 7px; padding: 9px; background: #f8fafb; }.daily-plan-group-body .plan-row { box-shadow: none; }.day-plan-row { grid-template-columns: minmax(0,1.4fr) .72fr .62fr .5fr auto; }.week-plan-row { grid-template-columns: minmax(0,1.25fr) .62fr .62fr .72fr .62fr auto; }.day-plan-progress { color: var(--orange); font-weight: 700; }.day-plan-progress.complete { color: var(--green); }
.resource-toolbar { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 13px; }.resource-toolbar-actions { display: flex; gap: 7px; }.resource-register-button { min-height: 36px; padding: 0 11px; border: 1px solid var(--blue-2); border-radius: 7px; color: var(--blue-2); background: white; cursor: pointer; font-size: 9px; font-weight: 700; }.resource-register-button.primary { color: white; background: var(--blue); }.resource-list { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: white; box-shadow: var(--shadow); }.resource-row { display: grid; grid-template-columns: 1.1fr .8fr .8fr .9fr .8fr .7fr; align-items: center; min-height: 58px; padding: 0 14px; border-top: 1px solid #e8edef; font-family: "Microsoft YaHei", "PingFang SC", sans-serif; font-size: 9px; line-height: 1.45; font-variant-numeric: tabular-nums; }.resource-row.header { min-height: 38px; border-top: 0; color: var(--muted); background: #f5f7f8; font-size: 8.5px; letter-spacing: .02em; }.resource-row strong { color: var(--ink); font-size: 10px; line-height: 1.4; }.resource-row > span, .resource-row > div { min-width: 0; }.attachment-count { color: var(--blue-2); font-size: 8px; font-weight: 600; }.resource-empty { padding: 42px 20px; color: var(--muted); text-align: center; font-size: 10px; }
.resource-category-strip { display: flex; flex-wrap: wrap; gap: 7px; margin: -4px 0 12px; }.resource-category-strip span { padding: 6px 9px; border-radius: 6px; color: var(--muted); background: #eaf0f3; font-size: 8px; }.resource-category-strip b { margin-right: 6px; color: var(--ink); }
.resource-row-button { width: 100%; border-right: 0; border-bottom: 0; border-left: 0; color: inherit; background: white; font-family: "Microsoft YaHei", "PingFang SC", sans-serif; font-size: 9px; font-weight: 400; line-height: 1.45; text-align: left; cursor: pointer; transition: background .16s ease, box-shadow .16s ease; }.resource-row-button:hover { position: relative; background: #f7fafb; box-shadow: inset 3px 0 var(--blue-2); }.resource-row-button:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--blue-2); outline-offset: -2px; }.resource-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.45; }.resource-plan-row { grid-template-columns: 1.12fr .66fr 1.05fr .72fr .9fr .82fr; min-height: 66px; }.resource-plan-row.header { min-height: 38px; }.arrival-progress b { color: var(--green); font-size: 10px; }.arrival-progress i, .resource-detail-hero > i { display: block; height: 4px; margin-top: 6px; overflow: hidden; border-radius: 4px; background: #e2e9ed; }.arrival-progress em, .resource-detail-hero > i em { display: block; height: 100%; border-radius: inherit; background: var(--green); }.resource-status { display: inline-flex !important; width: fit-content; margin-top: 5px !important; padding: 3px 6px; border-radius: 5px; color: #546b78 !important; background: #edf2f4; font-size: 8px !important; font-style: normal; font-weight: 700; }.resource-status.complete { color: var(--green) !important; background: var(--green-soft); }.resource-status.partial { color: var(--blue-2) !important; background: var(--blue-soft); }.resource-status.warning { color: #8a5b18 !important; background: #fff1cf; }.resource-status.urgent { color: var(--orange) !important; background: var(--orange-soft); }.resource-status.overdue { color: var(--red) !important; background: var(--red-soft); }
.resource-forecast { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; margin-bottom: 12px; padding: 12px 14px; border: 1px solid #ead8a4; border-radius: 10px; background: #fff9e9; }.resource-forecast.has-overdue { border-color: #ecc7bd; background: #fff4f1; }.forecast-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 8px; color: #8a5b18; background: #ffeab4; font: 700 11px Consolas, monospace; }.resource-forecast.has-overdue .forecast-mark { color: var(--red); background: var(--red-soft); }.resource-forecast strong { font-size: 11px; }.resource-forecast p { margin: 3px 0 0; color: var(--muted); font-size: 9px; }.resource-forecast button { border: 0; color: var(--blue-2); background: transparent; cursor: pointer; font-size: 9px; font-weight: 700; }
.resource-detail-body { display: grid; gap: 13px; }.resource-detail-hero { padding: 14px; border-radius: 9px; background: #f3f7f8; }.resource-detail-hero > div { display: flex; align-items: baseline; justify-content: space-between; }.resource-detail-hero span { color: var(--blue-2); font-size: 9px; font-weight: 700; }.resource-detail-hero strong { font: 700 25px Consolas, monospace; }.resource-detail-hero p { margin: 6px 0 9px; color: var(--muted); font-size: 9px; }.resource-detail-hero.warning, .resource-detail-hero.urgent { background: #fff8e7; }.resource-detail-hero.overdue { background: var(--red-soft); }.resource-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }.resource-detail-grid > div { min-height: 54px; padding: 10px 11px; border: 1px solid var(--line); border-radius: 7px; background: white; }.resource-detail-grid span, .resource-detail-grid strong { display: block; }.resource-detail-grid span { color: var(--muted); font-size: 8px; }.resource-detail-grid strong { margin-top: 5px; font-size: 10px; line-height: 1.45; }.resource-arrival-history, .resource-attachments { padding: 12px; border: 1px solid var(--line); border-radius: 8px; }.resource-arrival-history > strong, .resource-attachments > strong { display: block; margin-bottom: 8px; font-size: 10px; }.resource-arrival-history button { display: grid; grid-template-columns: 1fr auto; width: 100%; padding: 9px 0; border: 0; border-top: 1px solid #e8edef; color: inherit; background: white; text-align: left; cursor: pointer; }.resource-arrival-history button b { font-size: 9px; }.resource-arrival-history button small { grid-column: 1 / -1; margin-top: 3px; color: var(--muted); font-size: 8px; }.resource-arrival-history p, .resource-attachments p { margin: 0; color: var(--muted); font-size: 9px; }.resource-attachment-button { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; width: 100%; padding: 9px 0; border: 0; border-top: 1px solid #e8edef; color: inherit; background: white; text-align: left; cursor: pointer; }.resource-attachment-button > i { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 6px; color: var(--blue-2); background: var(--blue-soft); font: 700 8px Consolas, monospace; }.resource-attachment-button strong, .resource-attachment-button small { display: block; }.resource-attachment-button strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.resource-attachment-button small { margin-top: 3px; color: var(--muted); font-size: 8px; }.resource-attachment-button > b { color: var(--blue-2); font-size: 8px; }.resource-attachment-button.unavailable { opacity: .62; }.resource-attachment-button.unavailable > b { color: var(--muted); }.attachment-preview-body { display: grid; min-height: 280px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #eef2f4; }.attachment-preview-body iframe { width: 100%; height: min(62vh, 600px); border: 0; background: white; }.attachment-preview-body > img { display: block; max-width: 100%; max-height: min(62vh, 600px); margin: auto; object-fit: contain; }.attachment-generic-preview { display: grid; place-items: center; align-content: center; gap: 9px; min-height: 280px; padding: 24px; text-align: center; }.attachment-generic-preview > span { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 10px; color: var(--blue-2); background: white; font: 700 10px Consolas, monospace; }.attachment-generic-preview strong { font-size: 11px; }.attachment-generic-preview p { max-width: 340px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.6; }.attachment-open-link { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }#attachmentPreviewDialog { width: min(860px, calc(100% - 28px)); }
.weekly-report-list { display: grid; gap: 7px; }.weekly-report-list button { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; width: 100%; padding: 11px; border: 1px solid var(--line); border-radius: 8px; color: inherit; background: white; text-align: left; cursor: pointer; }.weekly-report-list strong, .weekly-report-list small { display: block; }.weekly-report-list strong { font-size: 10px; }.weekly-report-list small { margin-top: 4px; color: var(--muted); font-size: 8px; }.weekly-report-list > button > b { color: var(--orange); font-size: 9px; }
.resource-plan-material-fields { margin-top: 2px; padding-top: 14px; border-top: 1px solid var(--line); }.section-form-heading, .approval-panel-heading { display: flex; align-items: start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }.section-form-heading strong, .section-form-heading small, .approval-panel-heading strong, .approval-panel-heading small { display: block; }.section-form-heading strong, .approval-panel-heading strong { font-size: 12px; }.section-form-heading small, .approval-panel-heading small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.5; }.section-form-heading > span { padding: 4px 7px; border-radius: 6px; color: var(--blue-2); background: var(--blue-soft); font-size: 8px; font-weight: 700; }.approval-setup-panel { margin-top: 4px; padding: 14px; border-left: 3px solid var(--blue-2); border-radius: 8px; background: #f3f7fa; }.approval-existing-files { margin-top: -3px; padding: 9px; border: 1px dashed #cbd9df; border-radius: 7px; background: white; }.approval-existing-files > strong { display: block; margin-bottom: 4px; font-size: 9px; }.approval-existing-files > p { margin: 0; color: var(--muted); font-size: 9px; }
.account-permission-note { display: grid; gap: 4px; margin-top: 10px; padding: 11px 12px; border-left: 3px solid var(--blue-2); border-radius: 7px; background: var(--blue-soft); }.account-permission-note strong { font-size: 10px; }.account-permission-note span { color: var(--muted); font-size: 8px; line-height: 1.55; }
.contract-brand-panel { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-left: 3px solid var(--blue-2); border-radius: 8px; background: #f3f7fa; }.contract-brand-panel span, .contract-brand-panel strong { display: block; }.contract-brand-panel span { color: var(--muted); font-size: 8px; }.contract-brand-panel strong { margin-top: 4px; font-size: 11px; }.contract-brand-panel button { min-height: 30px; padding: 0 9px; border: 1px solid #b8c9d3; border-radius: 6px; color: var(--blue-2); background: white; cursor: pointer; font-size: 8px; font-weight: 700; }.material-approval-panel { padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: white; }.approval-overall { padding: 5px 8px; border-radius: 6px; color: var(--orange); background: var(--orange-soft); font-size: 8px; font-style: normal; font-weight: 700; }.approval-overall.approved { color: var(--green); background: var(--green-soft); }.approval-overall.rejected { color: var(--red); background: var(--red-soft); }.approval-flow { display: grid; gap: 7px; }.approval-step { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 58px; padding: 9px 10px; border: 1px solid #e1e8eb; border-radius: 8px; background: #fafcfc; }.approval-step > i { display: grid; place-items: center; width: 30px; height: 30px; border: 2px solid #c5d2d9; border-radius: 50%; color: #7d8f99; background: white; font-size: 9px; font-style: normal; font-weight: 700; }.approval-step.approved > i { border-color: var(--green); color: white; background: var(--green); }.approval-step.rejected > i { border-color: var(--red); color: white; background: var(--red); }.approval-step strong, .approval-step span, .approval-step small { display: block; }.approval-step strong { font-size: 10px; }.approval-step span { margin-top: 2px; font-size: 9px; }.approval-step small { margin-top: 3px; color: var(--muted); font-size: 8px; }.approval-step-actions { display: flex; gap: 5px; }.approval-step-actions button { min-height: 28px; padding: 0 8px; border: 1px solid #b8c9d3; border-radius: 5px; color: var(--blue-2); background: white; cursor: pointer; font-size: 8px; font-weight: 700; }.approval-step-actions button:last-child { color: var(--red); }.approval-attachments { margin-top: 10px; padding: 9px; border-top: 1px solid var(--line); }.approval-attachments > strong { display: block; margin-bottom: 4px; font-size: 9px; }
.approval-step.notified { border-color: #8cb1c8; background: var(--blue-soft); box-shadow: inset 3px 0 var(--blue-2); }.approval-step strong > em { display: inline-block; margin-left: 6px; padding: 2px 5px; border-radius: 5px; color: var(--blue-2); background: white; font-size: 7px; font-style: normal; }.procurement-gate-panel { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 12px 14px; border: 1px solid #ead4a8; border-radius: 9px; background: #fff9eb; }.procurement-gate-panel > i { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 7px; color: #8a5b18; background: #ffeab4; font-size: 9px; font-style: normal; font-weight: 700; }.procurement-gate-panel strong { font-size: 11px; }.procurement-gate-panel p { margin: 4px 0 0; color: var(--muted); font-size: 8px; line-height: 1.55; }.procurement-gate-panel > em { padding: 5px 8px; border-radius: 6px; color: #8a5b18; background: #ffeab4; font-size: 8px; font-style: normal; font-weight: 700; }.procurement-gate-panel.open { border-color: #b9ddd3; background: var(--green-soft); }.procurement-gate-panel.open > i { color: white; background: var(--green); }.procurement-gate-panel.open > em { color: var(--green); background: white; }
.approval-viewer { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 7px 10px; margin: -2px 0 10px; padding: 8px 10px; border: 1px solid #d8e2e7; border-radius: 7px; background: #f6f9fa; }.approval-viewer > span { padding: 3px 5px; border-radius: 4px; color: var(--muted); background: #e8eef1; font-size: 7px; }.approval-viewer > strong { font-size: 9px; }.approval-viewer > small { color: var(--muted); font-size: 8px; }.approval-step.actionable { border-color: #72b29f; background: var(--green-soft); box-shadow: inset 3px 0 var(--green); }.approval-step.actionable strong > em { color: var(--green); }.approval-step.actionable .approval-step-actions button:first-child { border-color: var(--green); color: white; background: var(--green); }
.procurement-access-banner { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 13px; margin-bottom: 12px; padding: 13px 15px; border: 1px solid #b9ddd3; border-radius: 10px; background: linear-gradient(100deg,#edf8f4,#f8fbfa); }.procurement-seal { display: grid; place-items: center; width: 42px; height: 42px; border: 2px solid var(--green); border-radius: 50%; color: var(--green); font-family: "STZhongsong",serif; font-size: 11px; font-weight: 700; transform: rotate(-7deg); }.procurement-access-banner strong { font-size: 11px; }.procurement-access-banner p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.55; }.procurement-access-banner > span { padding: 6px 9px; border-radius: 6px; color: var(--green); background: white; font-size: 8px; font-weight: 700; }.procurement-plan-row { display: grid; grid-template-columns: 1.2fr .9fr .55fr .65fr .9fr .8fr; align-items: center; gap: 11px; width: 100%; min-height: 66px; padding: 10px 14px; border: 0; border-top: 1px solid #e8edef; color: inherit; background: white; font-family: inherit; font-size: 9px; text-align: left; cursor: pointer; }.procurement-plan-row.header { min-height: 38px; border-top: 0; color: var(--muted); background: #f5f7f8; font-size: 8px; cursor: default; }.procurement-plan-row strong, .procurement-plan-row small { display: block; }.procurement-plan-row strong { font-size: 10px; }.procurement-plan-row small { margin-top: 4px; color: var(--muted); font-size: 8px; }.procurement-plan-row em { display: inline-block; padding: 4px 7px; border-radius: 5px; color: var(--green); background: var(--green-soft); font-size: 8px; font-style: normal; font-weight: 700; }.procurement-plan-row:not(.header):hover { background: #f7faf9; box-shadow: inset 3px 0 var(--green); }.procurement-empty { padding: 44px 20px; text-align: center; }.procurement-empty strong { font-size: 11px; }.procurement-empty p { margin: 5px 0 0; color: var(--muted); font-size: 9px; }
.concealed-acceptance-list { display: grid; gap: 7px; }.concealed-acceptance-row { display: grid; grid-template-columns: auto minmax(220px,1.45fr) .9fr .65fr .75fr auto; align-items: center; gap: 11px; width: 100%; padding: 11px 12px; border: 1px solid #e1e8eb; border-radius: 8px; color: inherit; background: white; text-align: left; cursor: pointer; }.concealed-acceptance-row:hover { border-color: #9db6c5; background: #f8fafb; }.concealed-acceptance-row > i { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 7px; color: var(--orange); background: var(--orange-soft); font-size: 9px; font-style: normal; font-weight: 700; }.concealed-acceptance-row > i.done { color: var(--green); background: var(--green-soft); }.concealed-acceptance-row > i.failed { color: var(--red); background: var(--red-soft); }.concealed-acceptance-row strong, .concealed-acceptance-row small, .concealed-acceptance-row > div > em, .concealed-acceptance-row > span b { display: block; }.concealed-acceptance-row strong { font-size: 10px; }.concealed-acceptance-row small { margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.45; }.concealed-acceptance-row > div > em { margin-top: 5px; color: var(--blue-2); font-size: 8px; font-style: normal; }.concealed-acceptance-row > span { font-size: 9px; }.concealed-acceptance-row > b { color: var(--blue-2); font-size: 8px; }.concealed-existing-files { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }.concealed-existing-files section { padding: 9px; border: 1px solid var(--line); border-radius: 7px; }.concealed-existing-files section > strong { display: block; margin-bottom: 5px; font-size: 9px; }.concealed-gate-hint { display: flex; align-items: center; gap: 9px; padding: 10px 12px; border-left: 3px solid var(--orange); border-radius: 7px; background: var(--orange-soft); }.concealed-gate-hint.qualified { border-color: var(--green); background: var(--green-soft); }.concealed-gate-hint.failed { border-color: var(--red); background: var(--red-soft); }.concealed-gate-hint strong { font-size: 10px; }.concealed-gate-hint span { color: var(--muted); font-size: 8px; }
.followup-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; margin-bottom: 13px; }.followup-kpi { padding: 17px 18px; border: 1px solid var(--line); border-radius: 11px; background: white; box-shadow: var(--shadow); }.followup-kpi span { color: var(--muted); font-size: 10px; }.followup-kpi strong { display: block; margin-top: 7px; font: 700 27px Consolas, monospace; }.followup-kpi p { margin: 5px 0 0; color: var(--muted); font-size: 9px; }.followup-board { display: grid; gap: 10px; }.followup-card { display: grid; grid-template-columns: 5px minmax(0,1fr) auto; gap: 13px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: white; box-shadow: var(--shadow); }.followup-card > i { border-radius: 3px; background: #8fa7b6; }.followup-card.urgent > i { background: var(--red); }.followup-card h3 { margin: 0; font-size: 12px; }.followup-card-meta { display: flex; flex-wrap: wrap; gap: 8px 13px; margin-top: 6px; color: var(--muted); font-size: 9px; }.followup-route { margin-top: 9px; color: var(--blue-2); font-size: 9px; }.followup-card-note { margin: 7px 0 0; color: var(--muted); font-size: 9px; }.followup-card-actions { display: grid; justify-items: end; align-content: center; gap: 7px; }.urgency-badge { padding: 4px 7px; border-radius: 5px; color: var(--blue-2); background: var(--blue-soft); font-size: 8px; font-style: normal; font-weight: 700; }.urgency-badge.urgent { color: var(--red); background: var(--red-soft); }.remind-button { padding: 6px 9px; border: 1px solid #d1dce2; border-radius: 5px; color: var(--blue-2); background: white; cursor: pointer; font-size: 8px; font-weight: 700; }.followup-count { color: var(--muted); font-size: 8px; }
.daily-query-bar { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 10px; padding: 9px 12px; border: 1px solid #dce5eb; border-radius: 9px; background: #fff; box-shadow: 0 4px 15px rgba(30,56,75,.04); }.daily-query-bar > div { display: flex; align-items: center; gap: 7px; }.daily-query-bar span { color: #506675; font-size: 8px; font-weight: 700; }.daily-query-bar input { height: 31px; padding: 0 9px; border: 1px solid #cbd8e0; border-radius: 6px; color: #173a59; font: 700 9px Consolas,monospace; }.daily-query-bar button { min-height: 31px; padding: 0 10px; border: 1px solid #cbd8e0; border-radius: 6px; color: #24506d; background: #f8fbfc; font-weight: 700; }.daily-query-bar button:disabled { opacity: .45; }.daily-query-bar p { margin: 0; color: #7a8d99; font-size: 8px; }
.daily-command-board { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(460px,.9fr); gap: 22px; margin-bottom: 14px; padding: 22px 24px 19px; border-radius: 13px; color: white; background: linear-gradient(120deg,#123650 0%,#1c4c6c 72%,#245a77 100%); box-shadow: var(--shadow); }.daily-command-board::after { content: ""; position: absolute; right: -100px; bottom: -160px; width: 430px; height: 430px; border: 1px solid rgba(255,255,255,.07); border-radius: 50%; box-shadow: 0 0 0 65px rgba(255,255,255,.018),0 0 0 130px rgba(255,255,255,.012); }.daily-command-copy, .daily-command-metrics, .daily-control-rail, .weekly-progress-compare { position: relative; z-index: 1; }.daily-command-copy > span { color: #90adbd; font: 700 8px Consolas,monospace; letter-spacing: .14em; }.daily-command-copy h2 { max-width: 630px; margin: 7px 0 8px; font-family: "STZhongsong","SimSun",serif; font-size: 21px; letter-spacing: .03em; }.daily-command-copy p { max-width: 690px; margin: 0; color: #bdd0da; font-size: 8px; line-height: 1.75; }
.daily-command-metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: 7px; }.daily-command-metrics article { display: grid; align-content: center; min-height: 74px; padding: 9px 11px; border: 1px solid rgba(255,255,255,.12); border-radius: 8px; background: rgba(255,255,255,.055); }.daily-command-metrics article.attention { border-color: rgba(231,120,33,.65); background: rgba(231,120,33,.12); }.daily-command-metrics span, .daily-command-metrics small { color: #abc2ce; font-size: 7px; }.daily-command-metrics strong { display: block; margin: 3px 0; font: 700 19px Consolas,monospace; }.daily-command-metrics strong small { font-size: 9px; }.daily-control-rail { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5,1fr); margin-top: 4px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.13); }.daily-control-rail::before { content: ""; position: absolute; top: 28px; left: 8%; right: 8%; height: 1px; background: rgba(255,255,255,.17); }.daily-control-rail article { position: relative; display: flex; align-items: center; justify-content: center; gap: 7px; color: #adc2cd; font-size: 8px; }.daily-control-rail i { display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid #6b8a9c; border-radius: 50%; background: #1a4562; font: 700 7px Consolas,monospace; font-style: normal; }.daily-control-rail article.done i { border-color: var(--green); background: var(--green); color: white; }.daily-control-rail article.active i { border-color: var(--orange); background: var(--orange); color: white; box-shadow: 0 0 0 4px rgba(231,120,33,.15); }
.weekly-progress-compare { grid-column: 1 / -1; display: grid; grid-template-columns: 1.35fr 1fr 1fr auto; align-items: center; gap: 15px; padding: 11px 13px; border: 1px solid rgba(255,255,255,.12); border-radius: 8px; background: rgba(7,28,42,.2); }.weekly-progress-compare > div { min-width: 0; }.weekly-progress-compare span { display: block; margin-bottom: 3px; color: #9eb7c5; font-size: 7px; }.weekly-progress-compare strong { display: block; overflow: hidden; color: #eef6f8; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.weekly-progress-compare b { float: right; color: #fff; font: 700 9px Consolas,monospace; }.weekly-progress-compare i { display: block; overflow: hidden; height: 5px; border-radius: 99px; background: rgba(255,255,255,.13); }.weekly-progress-compare em { display: block; height: 100%; border-radius: inherit; background: #7db5cf; }.weekly-progress-compare div:nth-child(3) em { background: #48ad8b; }.weekly-progress-compare mark { padding: 7px 9px; border-radius: 6px; color: #d4f2e7; background: rgba(42,139,107,.2); font-size: 8px; font-weight: 800; white-space: nowrap; }.weekly-progress-compare.lagging mark { color: #ffd9be; background: rgba(231,120,33,.22); }.weekly-progress-compare.lagging div:nth-child(3) em { background: #e77821; }
.daily-feedback-action:disabled { cursor: default; opacity: .55; }
.daily-layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 14px; margin-bottom: 14px; }.daily-task-board, .tomorrow-coordination, .daily-support-card, .collection-register-details { border: 1px solid var(--line); border-radius: 11px; background: white; box-shadow: var(--shadow); }.daily-task-board { overflow: hidden; }.daily-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; }.daily-section-heading strong, .daily-section-heading small { display: block; }.daily-section-heading strong { font-size: 10px; }.daily-section-heading small { margin-top: 3px; color: var(--muted); font-size: 7px; }.daily-section-heading > span { color: var(--blue-2); font: 700 9px Consolas,monospace; }.daily-section-heading button { padding: 6px 8px; border: 1px solid #cddbe2; border-radius: 6px; color: var(--blue-2); background: white; cursor: pointer; font-size: 8px; font-weight: 700; }
.daily-task-columns, .daily-task-row { display: grid; grid-template-columns: minmax(250px,1.7fr) 100px 112px 96px; align-items: stretch; gap: 7px; }.daily-task-columns { min-height: 34px; padding: 0 12px; align-items: center; color: var(--muted); background: #f4f7f8; font-size: 7px; }.daily-task-row { min-height: 89px; padding: 9px 12px; border-top: 1px solid #e7edef; }.daily-task-row.risk { box-shadow: inset 3px 0 var(--orange); }.daily-task-row.lagging { background: #fffaf5; }.daily-task-identity { display: grid; grid-template-columns: 25px minmax(0,1fr); gap: 8px; align-items: start; }.daily-sequence { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 6px; color: var(--blue-2); background: var(--blue-soft); font: 700 8px Consolas,monospace; }.daily-task-identity strong, .daily-task-identity small, .daily-task-identity em { display: block; }.daily-task-identity strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.daily-task-identity small { margin-top: 4px; color: var(--muted); font-size: 7px; }.daily-task-progress { height: 3px; margin-top: 8px; overflow: hidden; border-radius: 3px; background: #e8edef; }.daily-task-progress i { display: block; height: 100%; background: var(--blue-2); }.daily-task-identity em { margin-top: 4px; color: var(--blue-2); font-size: 7px; font-style: normal; }.lag-badge, .confirm-badge { display: inline-block; margin-left: 6px; padding: 2px 5px; border-radius: 4px; font-size: 7px; font-style: normal; font-weight: 700; vertical-align: 1px; }.lag-badge { color: #b04a12; background: var(--orange-soft); }.confirm-badge { color: #8f301d; background: #fff0eb; }.daily-worker-open { cursor: pointer; text-align: left; }.daily-worker-open:hover { background: #eef5f8; }
.daily-worker-cell, .daily-condition { display: grid; align-content: center; min-width: 0; padding: 7px; border-radius: 7px; background: #f7f9fa; }.daily-worker-cell span, .daily-condition span { color: var(--muted); font-size: 7px; }.daily-worker-cell strong, .daily-condition strong { overflow: hidden; margin-top: 4px; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.daily-worker-cell strong small { color: var(--muted); font-size: 7px; }.daily-worker-cell em, .daily-condition small { overflow: hidden; margin-top: 4px; color: var(--muted); font-size: 6px; font-style: normal; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }.daily-worker-cell em.ready { color: var(--green); }.daily-worker-cell em.warning { color: var(--orange); }.daily-condition { border: 0; text-align: left; }.daily-condition.notice { color: var(--orange); background: var(--orange-soft); cursor: pointer; }.daily-condition.ready { box-shadow: inset 2px 0 var(--green); }.daily-condition.warning { box-shadow: inset 2px 0 var(--orange); }.daily-condition.blocked { color: var(--red); background: var(--red-soft); box-shadow: inset 2px 0 var(--red); }.daily-feedback-action { align-self: center; height: 32px; padding: 0 7px; border: 1px solid #c8d7df; border-radius: 6px; color: var(--blue-2); background: white; cursor: pointer; font-size: 7px; font-weight: 700; }.daily-feedback-action:hover { color: white; background: var(--blue-2); }
.tomorrow-coordination { overflow: hidden; }.coordination-list { display: grid; gap: 0; border-top: 1px solid var(--line); }.coordination-list article { position: relative; padding: 12px 13px; border-bottom: 1px solid #e8edef; }.coordination-list article:last-child { border-bottom: 0; }.coordination-list article > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.coordination-list em { padding: 3px 5px; border-radius: 4px; color: var(--orange); background: var(--orange-soft); font-size: 7px; font-style: normal; font-weight: 700; }.coordination-list article > div span { color: var(--muted); font-size: 7px; }.coordination-list strong, .coordination-list small, .coordination-list p { display: block; }.coordination-list strong { margin-top: 7px; font-size: 8px; line-height: 1.55; }.coordination-list small { margin-top: 5px; color: var(--blue-2); font-size: 7px; }.coordination-list p { margin: 6px 0 0; color: var(--muted); font-size: 7px; }.coordination-list button { margin-top: 7px; padding: 4px 0; border: 0; color: var(--green); background: transparent; cursor: pointer; font-size: 7px; font-weight: 700; }
.daily-support-grid { display: grid; grid-template-columns: 1.25fr 1.25fr .72fr; gap: 14px; margin-bottom: 14px; }.daily-support-card { overflow: hidden; padding: 15px; }.daily-support-card.material { border-top: 3px solid var(--orange); }.daily-support-card.documents { border-top: 3px solid var(--blue-2); }.daily-support-card.issues { border-top: 3px solid var(--red); }.daily-support-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }.daily-support-heading span, .daily-support-heading strong { display: block; }.daily-support-heading span { color: var(--muted); font-size: 7px; }.daily-support-heading strong { margin-top: 4px; font-size: 10px; }.daily-support-heading button { padding: 0; border: 0; color: var(--blue-2); background: transparent; cursor: pointer; font-size: 7px; font-weight: 700; }.daily-support-stats { display: flex; gap: 14px; margin: 13px 0 9px; color: var(--muted); font-size: 7px; }.daily-support-stats b { color: var(--ink); font: 700 12px Consolas,monospace; }.daily-material-list { display: grid; }.daily-material-list > div { display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 8px; min-height: 34px; border-top: 1px solid #e9edef; font-size: 7px; }.daily-material-list span { color: var(--muted); }.daily-material-list em { padding: 3px 5px; border-radius: 4px; font-style: normal; font-weight: 700; }.daily-material-list em.ready { color: var(--green); background: var(--green-soft); }.daily-material-list em.warning { color: var(--orange); background: var(--orange-soft); }.daily-material-list em.blocked { color: var(--red); background: var(--red-soft); }
.daily-document-gauge { display: grid; grid-template-columns: 105px 1fr; align-items: center; gap: 12px; margin-top: 13px; }.daily-document-gauge > div { --document-rate: 0; display: grid; place-items: center; align-content: center; width: 92px; height: 92px; border-radius: 50%; background: radial-gradient(circle at center,white 56%,transparent 57%),conic-gradient(var(--blue-2) calc(var(--document-rate) * 1%),#e7edef 0); }.daily-document-gauge strong { font: 700 17px Consolas,monospace; }.daily-document-gauge strong small { color: var(--muted); font-size: 8px; }.daily-document-gauge > div span { color: var(--muted); font-size: 7px; }.daily-document-gauge ul { margin: 0; padding: 0; list-style: none; }.daily-document-gauge li { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 6px; min-height: 29px; border-top: 1px solid #e9edef; font-size: 7px; }.daily-document-gauge li i { width: 6px; height: 6px; border-radius: 50%; }.daily-document-gauge li i.ready { background: var(--green); }.daily-document-gauge li i.warning { background: var(--orange); }.daily-document-gauge li i.blocked { background: var(--red); }.daily-document-gauge li b { color: var(--muted); font-size: 7px; }.daily-issue-totals { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 15px; }.daily-issue-totals > div { padding: 11px 8px; border-radius: 7px; background: var(--red-soft); }.daily-issue-totals strong, .daily-issue-totals span { display: block; }.daily-issue-totals strong { font: 700 21px Consolas,monospace; }.daily-issue-totals span { margin-top: 3px; color: var(--muted); font-size: 7px; }.daily-support-card.issues > p { margin: 10px 0 0; color: var(--muted); font-size: 7px; line-height: 1.6; }
.collection-register-details { overflow: hidden; margin-bottom: 12px; }.collection-register-details > summary { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 13px 15px; cursor: pointer; list-style: none; }.collection-register-details > summary::-webkit-details-marker { display: none; }.collection-register-details > summary span { font-size: 9px; font-weight: 700; }.collection-register-details > summary small { color: var(--muted); font-size: 7px; }.collection-register-details > summary b { color: var(--blue-2); font-size: 7px; }.collection-register-details[open] > summary { border-bottom: 1px solid var(--line); }.collection-register-details > div { padding: 13px; background: #f7f9fa; }.collection-add-button { margin: 0 13px 13px; }.daily-feedback-gates { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 4px 0 14px; }.daily-feedback-gates > div { padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: #f8fafb; }.daily-feedback-gates > div > strong { display: block; margin-bottom: 8px; font-size: 9px; }.daily-feedback-gates label > input + input { margin-top: 5px; }.technical-notice-body { padding: 14px; border: 1px solid #efcfb5; border-radius: 9px; background: #fff8f1; }.technical-notice-mark { display: flex; align-items: center; justify-content: space-between; color: var(--orange); font-size: 8px; }.technical-notice-body h3 { margin: 11px 0 7px; font-size: 14px; }.technical-notice-body > p { margin: 0; color: #5d5047; font-size: 9px; line-height: 1.8; }.technical-notice-body dl { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 14px 0; background: #eadfd6; }.technical-notice-body dl > div { padding: 9px; background: white; }.technical-notice-body dt { color: var(--muted); font-size: 7px; }.technical-notice-body dd { margin: 4px 0 0; font-size: 8px; }.technical-notice-body section { padding-top: 10px; border-top: 1px solid #eadfd6; }.technical-notice-body section strong { font-size: 8px; }.technical-notice-body section p { margin: 4px 0 0; color: var(--muted); font-size: 7px; }
.intake-overview { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(250px,.7fr); gap: 14px; margin-bottom: 14px; }
.intake-pipeline, .intake-register, .intake-kpis article { border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: var(--shadow); }
.intake-pipeline { position: relative; overflow: hidden; padding: 19px 20px 22px; background: linear-gradient(135deg,#123650 0%,#1b4868 100%); color: white; }
.intake-pipeline::after { content: ""; position: absolute; right: -50px; bottom: -80px; width: 230px; height: 230px; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; box-shadow: 0 0 0 45px rgba(255,255,255,.025),0 0 0 90px rgba(255,255,255,.018); }
.intake-pipeline-heading { position: relative; z-index: 1; display: flex; align-items: end; justify-content: space-between; gap: 20px; }.intake-pipeline-heading span { display: block; color: #89a8b9; font: 700 8px Consolas,monospace; letter-spacing: .14em; }.intake-pipeline-heading strong { display: block; margin-top: 4px; font-size: 13px; }.intake-pipeline-heading p { margin: 0; color: #b9cdd8; font-size: 8px; }
.intake-pipeline-rail { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4,1fr); gap: 0; margin-top: 25px; }.intake-pipeline-rail::before { content: ""; position: absolute; top: 14px; left: 7%; right: 7%; height: 1px; background: rgba(255,255,255,.2); }.intake-pipeline-rail article { position: relative; display: grid; justify-items: center; gap: 8px; text-align: center; }.intake-pipeline-rail i { display: grid; place-items: center; width: 29px; height: 29px; border: 1px solid #66859a; border-radius: 50%; color: #aec3ce; background: #173e5b; font: 700 8px Consolas,monospace; font-style: normal; }.intake-pipeline-rail article.done i { border-color: var(--green); color: white; background: var(--green); }.intake-pipeline-rail article.active i { border-color: var(--orange); color: white; background: var(--orange); box-shadow: 0 0 0 5px rgba(231,120,33,.16); }.intake-pipeline-rail strong, .intake-pipeline-rail span { display: block; }.intake-pipeline-rail strong { font-size: 9px; }.intake-pipeline-rail span { margin-top: 3px; color: #a9bfca; font-size: 7px; }
.intake-kpis { display: grid; gap: 8px; }.intake-kpis article { padding: 13px 15px; border-left: 3px solid var(--blue-2); }.intake-kpis article.attention { border-left-color: var(--orange); }.intake-kpis span { color: var(--muted); font-size: 8px; }.intake-kpis strong { display: block; margin-top: 2px; font: 700 21px Consolas,monospace; }.intake-kpis strong small { font: 700 8px "Microsoft YaHei UI",sans-serif; }.intake-kpis p { margin: 2px 0 0; color: var(--muted); font-size: 7px; }
.intake-register { overflow: hidden; }.intake-register-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 16px; }.intake-register-heading strong, .intake-register-heading small { display: block; }.intake-register-heading strong { font-size: 11px; }.intake-register-heading small { margin-top: 3px; color: var(--muted); font-size: 8px; }.intake-filters { display: flex; gap: 5px; }.intake-filters button { padding: 6px 8px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); background: white; cursor: pointer; font-size: 8px; }.intake-filters button.active { border-color: var(--blue-2); color: var(--blue-2); background: var(--blue-soft); font-weight: 700; }.intake-filters b { margin-left: 4px; }
.intake-row { display: grid; grid-template-columns: minmax(240px,1.5fr) minmax(145px,.8fr) 100px 90px 85px 72px; align-items: center; gap: 12px; width: 100%; min-height: 67px; padding: 10px 15px; border: 0; border-top: 1px solid #e7edef; color: inherit; background: white; text-align: left; cursor: pointer; }.intake-row.header { min-height: 38px; border-top: 0; color: var(--muted); background: #f4f7f8; font-size: 8px; cursor: default; }.intake-row:not(.header):hover { background: #f8fafb; box-shadow: inset 3px 0 var(--orange); }.intake-row > span { font-size: 8px; }.intake-row > span > small, .intake-title-cell small { display: block; margin-top: 4px; color: var(--muted); font-size: 7px; line-height: 1.4; }.intake-row > b { color: var(--blue-2); font-size: 8px; }.intake-title-cell { display: flex; align-items: center; gap: 10px; }.intake-title-cell > i { display: grid; place-items: center; flex: 0 0 31px; width: 31px; height: 31px; border-radius: 7px; color: var(--blue-2); background: var(--blue-soft); font-size: 9px; font-style: normal; font-weight: 700; }.intake-title-cell > i.source-photo { color: var(--orange); background: var(--orange-soft); }.intake-title-cell > i.source-voice { color: var(--green); background: var(--green-soft); }.intake-title-cell strong { display: block; font-size: 9px; }.intake-status { display: inline-flex; padding: 4px 7px; border-radius: 5px; color: var(--orange); background: var(--orange-soft); font-size: 8px; font-style: normal; font-weight: 700; }.intake-status.distributed { color: var(--green); background: var(--green-soft); }.intake-status.archived { color: var(--muted); background: #edf1f3; }
.intake-upload-field small { display: block; margin-top: 5px; color: var(--muted); font-size: 8px; font-weight: 400; }.intake-voice-button { margin: -5px 0 14px; }.local-recognition-notice { display: flex; align-items: center; gap: 9px; padding: 10px 12px; border-left: 3px solid var(--blue-2); border-radius: 7px; color: var(--muted); background: var(--blue-soft); font-size: 8px; }.local-recognition-notice b { flex: 0 0 auto; color: var(--blue-2); }
.intake-source-audit { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-bottom: 15px; }.intake-source-audit > div { min-width: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 8px; background: #f8fafb; }.intake-source-audit span, .intake-source-audit strong, .intake-source-audit small { display: block; }.intake-source-audit span { color: var(--muted); font-size: 8px; }.intake-source-audit strong { margin-top: 4px; font-size: 9px; }.intake-source-audit small { margin-top: 4px; color: var(--muted); font-size: 7px; line-height: 1.5; }.intake-audit-files .stored-file-list { margin-top: 5px; }
.intake-candidate-editor { margin: 14px 0; padding: 13px; border: 1px solid var(--line); border-radius: 9px; background: #f8fafb; }.intake-candidate-editor > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; margin-bottom: 9px; }.intake-candidate-editor strong { font-size: 10px; }.intake-candidate-editor small { color: var(--muted); font-size: 8px; }.intake-candidate-row { display: grid !important; grid-template-columns: auto 26px 1fr; align-items: center; gap: 7px !important; margin: 0 !important; padding: 6px 0; border-top: 1px solid #e3eaed; }.intake-candidate-row > input[type="checkbox"] { accent-color: var(--blue-2); }.intake-candidate-row > span { color: #8aa0ad; font: 700 8px Consolas,monospace; }.intake-candidate-row > input[type="text"] { height: 37px; }.intake-review-actions { grid-template-columns: auto 1fr auto auto; }
/* Daily execution weekly ledger and technical file register */
.today-plan-register { margin: 12px 0; overflow: hidden; border: 1px solid #cddbe4; border-radius: 12px; background: white; box-shadow: var(--shadow); }
.today-plan-register > .daily-section-heading { padding: 14px 17px; border-bottom: 1px solid var(--line); background: #f7fafb; }
.today-plan-register > div:last-child { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.today-plan-register article { display: grid; grid-template-columns: 34px minmax(0,1fr) auto 74px; align-items: center; gap: 10px; min-height: 61px; padding: 10px 16px; border-bottom: 1px solid #e8edef; }
.today-plan-register article:nth-child(odd) { border-right: 1px solid #e8edef; }.today-plan-register article:nth-last-child(-n+2) { border-bottom: 0; }
.today-plan-register article > i { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 7px; color: var(--blue-2); background: var(--blue-soft); font: 700 9px Consolas,monospace; font-style: normal; }
.today-plan-register article strong, .today-plan-register article small { display: block; }.today-plan-register article strong { font-size: 10px; }.today-plan-register article small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.today-plan-register article > span { color: var(--muted); font-size: 8px; }.today-plan-register article > b { font-size: 9px; text-align: right; }
.weekly-command-board { display: block; padding: 24px; background: linear-gradient(135deg,#123d5c,#1f587a); }
.weekly-command-board .daily-command-copy { max-width: none; }.weekly-command-board .daily-command-copy p { max-width: 820px; }
.weekly-daily-ledger, .weekly-workforce-ledger { position: relative; z-index: 1; margin-top: 19px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.14); }
.weekly-ledger-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 9px; }.weekly-ledger-heading strong { font-size: 10px; }.weekly-ledger-heading span { color: #a9bfcc; font-size: 8px; }
.weekly-daily-ledger > div:last-child, .weekly-workforce-ledger > div:last-child { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 7px; }
.weekly-daily-ledger article, .weekly-workforce-ledger article { min-width: 0; padding: 10px; border: 1px solid rgba(255,255,255,.13); border-radius: 8px; background: rgba(255,255,255,.06); }
.weekly-daily-ledger article.selected, .weekly-workforce-ledger article:hover { border-color: rgba(255,207,140,.75); background: rgba(255,255,255,.1); }.weekly-daily-ledger article.lag { border-color: rgba(238,120,77,.62); }.weekly-daily-ledger article.done { border-color: rgba(64,181,142,.62); }
.weekly-daily-ledger article > span, .weekly-workforce-ledger article > span { display: block; color: #adc2ce; font-size: 7px; white-space: nowrap; }.weekly-daily-ledger article > strong, .weekly-workforce-ledger article > strong { display: block; margin-top: 6px; overflow: hidden; font: 700 15px Consolas,monospace; text-overflow: ellipsis; white-space: nowrap; }.weekly-daily-ledger article > small, .weekly-workforce-ledger article > small { display: block; min-height: 18px; margin-top: 3px; overflow: hidden; color: #a9bfcc; font-size: 7px; line-height: 1.35; }
.weekly-daily-ledger article > i { display: block; height: 3px; margin-top: 7px; overflow: hidden; border-radius: 2px; background: rgba(255,255,255,.12); }.weekly-daily-ledger article > i em { display: block; height: 100%; border-radius: inherit; background: #57b592; }.weekly-daily-ledger article.lag > i em { background: var(--orange); }
.weekly-workforce-ledger { margin-top: 14px; }.weekly-workforce-ledger article.empty strong, .weekly-daily-ledger article.empty strong { color: #88a3b2; font-family: inherit; font-size: 10px; }
.daily-main-stack { display: grid; gap: 12px; min-width: 0; }.carryover-board, .daily-task-board, .tomorrow-coordination { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: var(--shadow); }
.carryover-board > .daily-section-heading { border-bottom: 1px solid var(--line); background: #fff9f4; }.carryover-board > div:last-child { display: grid; gap: 0; }
.carryover-board article { display: grid; grid-template-columns: minmax(0,1fr) auto 96px; align-items: center; gap: 10px; padding: 11px 15px; border-bottom: 1px solid #e8edef; }.carryover-board article:last-child { border-bottom: 0; }.carryover-board article strong, .carryover-board article small { display: block; }.carryover-board article strong { font-size: 10px; }.carryover-board article small { margin-top: 3px; color: var(--muted); font-size: 8px; }.carryover-board article > span { color: var(--orange); font: 700 11px Consolas,monospace; }.carryover-board article > i { height: 5px; overflow: hidden; border-radius: 3px; background: #eceff1; }.carryover-board article > i em { display: block; height: 100%; border-radius: inherit; background: var(--orange); }.carryover-board article > p { grid-column: 1 / -1; margin: -3px 0 0; color: var(--muted); font-size: 8px; }
.daily-risk-flag { position: absolute; top: 6px; right: 6px; display: grid; place-items: center; width: 17px; height: 17px; border-radius: 50%; color: white; background: var(--red); box-shadow: 0 0 0 3px rgba(201,61,61,.12); font: 700 10px Consolas,monospace; font-style: normal; }.daily-condition { position: relative; }.daily-condition.notice { border-color: #e7833c; background: #fff4ea; }.daily-condition.notice strong { color: #bd4e12; }
.coordination-list article { position: relative; }.coordination-list article > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.coordination-status { padding: 3px 6px; border-radius: 5px; color: var(--orange); background: var(--orange-soft); font-size: 7px; font-weight: 700; }.coordination-status.following { color: var(--blue-2); background: var(--blue-soft); }.coordination-status.resolved { color: var(--green); background: var(--green-soft); }.coordination-people { display: flex; gap: 9px; margin-top: 7px; color: var(--muted); font-size: 8px; }.coordination-people b { color: var(--ink); }.coordination-list article.resolved { opacity: .74; }.coordination-list article.resolved > strong { text-decoration: line-through; }
.daily-document-risk-list { padding: 0; list-style: none; }.daily-document-risk-list li { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 9px 0; border-bottom: 1px solid #e8edef; }.daily-document-risk-list li:last-child { border-bottom: 0; }.daily-document-risk-list i { width: 8px; height: 8px; border-radius: 50%; background: var(--orange); }.daily-document-risk-list i.blocked { background: var(--red); box-shadow: 0 0 0 4px rgba(201,61,61,.1); }.daily-document-risk-list strong, .daily-document-risk-list small { display: block; }.daily-document-risk-list strong { font-size: 9px; }.daily-document-risk-list small { margin-top: 3px; color: var(--muted); font-size: 7px; }.daily-document-risk-list b { color: var(--red); font-size: 8px; }.daily-document-risk-list i.warning ~ b { color: var(--orange); }
.daily-gate-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }.daily-gate-title > span { padding: 4px 7px; border-radius: 5px; color: var(--muted); background: #edf1f3; font-size: 8px; font-weight: 700; }#dailyDocumentGateField.warning { border-color: #e6a76f; background: #fffaf5; }#dailyDocumentGateField.warning .daily-gate-title > span { color: var(--orange); background: var(--orange-soft); }#dailyDocumentGateField.blocked { border-color: #dc7777; background: #fff7f7; box-shadow: inset 3px 0 var(--red); }#dailyDocumentGateField.blocked .daily-gate-title > span { color: var(--red); background: var(--red-soft); }#dailyDocumentGateField.ready .daily-gate-title > span { color: var(--green); background: var(--green-soft); }
.technical-notice-risk { display: grid; grid-template-columns: 28px auto 1fr; align-items: center; gap: 9px; margin-bottom: 13px; padding: 10px 12px; border: 1px solid #e99a82; border-radius: 8px; color: #8f301d; background: #fff0eb; }.technical-notice-risk > b { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; color: white; background: var(--red); }.technical-notice-risk span { font-size: 9px; font-weight: 700; }.technical-notice-risk strong { font-size: 9px; text-align: right; }.notice-source-document { display: grid; gap: 7px; margin-top: 13px; padding: 12px; border: 1px solid #d7e1e6; border-radius: 8px; background: #f6f9fa; }.notice-source-document > div p { margin: 3px 0 0; color: var(--muted); font-size: 8px; }.notice-source-document > button { display: flex; justify-content: space-between; padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: white; cursor: pointer; font-size: 8px; }.notice-source-document > button span { color: var(--blue-2); font-weight: 700; }
.technical-file-overview { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(360px,.75fr); gap: 20px; padding: 23px; border-radius: 13px; color: white; background: linear-gradient(135deg,#123b59,#1e5d7e); box-shadow: var(--shadow); }.technical-file-overview > div:first-child > span { color: #87a9bb; font: 700 8px Consolas,monospace; letter-spacing: .14em; }.technical-file-overview h2 { margin: 6px 0; font-family: "STZhongsong",serif; font-size: 21px; }.technical-file-overview p { max-width: 610px; margin: 0; color: #bdd0da; font-size: 9px; line-height: 1.7; }.technical-file-overview > div:last-child { display: grid; grid-template-columns: repeat(4,1fr); gap: 7px; }.technical-file-overview article { display: grid; align-content: center; justify-items: center; min-height: 70px; border: 1px solid rgba(255,255,255,.14); border-radius: 8px; background: rgba(255,255,255,.06); }.technical-file-overview article strong { font: 700 20px Consolas,monospace; }.technical-file-overview article span { margin-top: 4px; color: #b7cbd6; font-size: 8px; }
.technical-file-tabs { display: flex; gap: 7px; margin: 13px 0; overflow-x: auto; }.technical-file-tabs button { flex: 0 0 auto; padding: 8px 11px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: white; cursor: pointer; font-size: 9px; }.technical-file-tabs button.active { border-color: var(--blue-2); color: var(--blue-2); background: var(--blue-soft); font-weight: 700; }.technical-file-tabs b { margin-left: 6px; }
.technical-search-bar { display: flex; align-items: center; gap: 10px; margin: -2px 0 12px; }.technical-search-bar input { flex: 1; height: 38px; padding: 0 13px; border: 1px solid #cdd7dd; border-radius: 8px; color: var(--ink); background: white; font-size: 11px; }.technical-search-bar input::placeholder { color: #9babb4; }.technical-search-bar span { flex: 0 0 auto; color: var(--muted); font-size: 8px; white-space: nowrap; }
.technical-profession-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }.technical-profession-tabs button { padding: 7px 11px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: white; cursor: pointer; font-size: 9px; }.technical-profession-tabs button.active { border-color: var(--blue-2); color: var(--blue-2); background: var(--blue-soft); font-weight: 700; }.technical-profession-tabs b { margin-left: 5px; padding: 2px 5px; border-radius: 7px; background: #e7edf0; font-size: 8px; }.technical-profession-tabs button.active b { background: white; }
.drawing-folder-upload { display: flex; align-items: center; gap: 10px; margin: 2px 0 15px; padding: 10px 12px; border: 1px dashed #91aabc; border-radius: 8px; background: #f6fafc; }.drawing-folder-upload button { flex: 0 0 auto; }.drawing-folder-upload small { color: var(--muted); font-size: 8px; line-height: 1.6; }.drawing-folder-upload small.working { color: var(--orange); }
.drawing-building-list { display: grid; gap: 10px; }.drawing-building-group { overflow: hidden; border: 1px solid #d3dee4; border-radius: 11px; background: white; }.drawing-building-group > summary { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 68px; padding: 11px 15px; cursor: pointer; list-style: none; background: linear-gradient(100deg,#f7fafb,#fff); }.drawing-building-group > summary::-webkit-details-marker { display: none; }.drawing-building-group > summary:hover { background: #f2f7f9; }.drawing-building-mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 9px; color: white; background: var(--blue-2); font-size: 17px; font-weight: 700; box-shadow: inset 0 -4px rgba(0,0,0,.08); }.drawing-building-group summary strong, .drawing-building-group summary small { display: block; }.drawing-building-group summary strong { font-size: 13px; }.drawing-building-group summary small { margin-top: 4px; color: var(--muted); font-size: 8px; }.drawing-building-group summary em { color: var(--blue-2); font-size: 8px; font-style: normal; font-weight: 700; }.drawing-building-group[open] > summary { border-bottom: 1px solid #dce5ea; background: #eef5f8; }.drawing-building-body { display: grid; gap: 9px; padding: 11px; background: #f8fafb; }.drawing-profession-group { overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: white; }.drawing-profession-group h4 { margin: 0; padding: 8px 12px; color: var(--blue-2); background: var(--blue-soft); font-size: 9px; letter-spacing: .06em; }.drawing-file-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; width: 100%; min-height: 52px; padding: 9px 12px; border: 0; border-top: 1px solid #e8edef; color: inherit; background: white; text-align: left; cursor: pointer; }.drawing-file-row:first-of-type { border-top: 0; }.drawing-file-row:hover { background: #f5f9fb; box-shadow: inset 3px 0 var(--blue-2); }.drawing-file-row strong, .drawing-file-row small { display: block; }.drawing-file-row strong { font-size: 10px; }.drawing-file-row small { margin-top: 4px; color: var(--muted); font-size: 8px; }.drawing-file-row em { color: var(--blue-2); font-size: 9px; font-style: normal; font-weight: 700; }
.technical-file-register { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: var(--shadow); }.technical-file-row { display: grid; grid-template-columns: 120px minmax(260px,1fr) 110px 100px 80px 86px; align-items: center; gap: 12px; width: 100%; min-height: 68px; padding: 10px 15px; border: 0; border-bottom: 1px solid #e7edef; color: inherit; background: white; cursor: pointer; text-align: left; }.technical-file-row:last-child { border-bottom: 0; }.technical-file-row:not(.header):hover { background: #f8fafb; box-shadow: inset 3px 0 var(--orange); }.technical-file-row.header { min-height: 38px; color: var(--muted); background: #f4f7f8; cursor: default; font-size: 8px; }.technical-file-row > span { min-width: 0; font-size: 9px; }.technical-file-row > span:first-child { display: grid; grid-template-columns: 31px 1fr; column-gap: 8px; align-items: center; }.technical-file-row > span:first-child i { grid-row: 1 / 3; display: grid; place-items: center; width: 31px; height: 31px; border-radius: 7px; color: var(--blue-2); background: var(--blue-soft); font-style: normal; font-weight: 700; }.technical-file-row > span:first-child i.change, .technical-file-row > span:first-child i.instruction { color: var(--orange); background: var(--orange-soft); }.technical-file-row strong, .technical-file-row small { display: block; }.technical-file-row strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.technical-file-row small { margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }.technical-file-row em { color: var(--blue-2); font-size: 8px; font-style: normal; font-weight: 700; }
.technical-document-paper { padding: 17px; border: 1px solid #d7e1e6; border-radius: 9px; background: #f8fafb; }.technical-document-paper h3 { margin: 8px 0; font-size: 18px; }.technical-document-paper p, .cost-document-paper p { white-space: pre-wrap; word-break: break-word; color: var(--ink); font-size: 12px; line-height: 1.9; }.technical-document-paper dl { display: grid; grid-template-columns: repeat(2,1fr); }.technical-document-paper dl dd, .cost-document-paper dl dd { word-break: break-word; white-space: pre-wrap; line-height: 1.7; }.technical-document-stamp { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 9px; border-bottom: 1px solid var(--line); color: var(--blue-2); font-size: 9px; }.technical-document-stamp.change, .technical-document-stamp.instruction { color: var(--orange); }.technical-document-files { display: grid; gap: 7px; margin-top: 12px; }.technical-document-files > strong { margin-bottom: 3px; font-size: 10px; }.technical-document-files button { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: white; cursor: pointer; text-align: left; }.technical-document-files button > i { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 6px; color: var(--blue-2); background: var(--blue-soft); font-size: 7px; font-style: normal; font-weight: 700; }.technical-document-files button b, .technical-document-files button small { display: block; }.technical-document-files button b { font-size: 9px; }.technical-document-files button small { margin-top: 3px; color: var(--muted); font-size: 7px; }.technical-document-files button em { color: var(--blue-2); font-size: 8px; font-style: normal; font-weight: 700; }

.carryover-board > div:last-child { display: grid; }.carryover-item { display: grid; grid-template-columns: 32px minmax(0,1fr) auto 96px auto; align-items: center; gap: 10px; width: 100%; min-height: 78px; padding: 11px 15px; border: 0; border-bottom: 1px solid #e8edef; color: var(--ink); background: white; cursor: pointer; text-align: left; }.carryover-item:last-child { border-bottom: 0; }.carryover-item:hover { background: #fffaf5; box-shadow: inset 3px 0 var(--orange); }.carryover-sequence { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 7px; color: var(--orange); background: var(--orange-soft); font-size: 9px; font-weight: 700; }.carryover-item > div strong, .carryover-item > div small { display: block; }.carryover-item > div strong { font-size: 10px; }.carryover-item > div small { margin-top: 3px; color: var(--muted); font-size: 8px; }.carryover-item > div p { margin: 5px 0 0; color: var(--muted); font-size: 8px; }.carryover-percent { text-align: right; }.carryover-percent small, .carryover-percent b { display: block; }.carryover-percent small { color: var(--muted); font-size: 7px; }.carryover-percent b { margin-top: 3px; color: var(--orange); font: 700 13px Consolas,monospace; }.carryover-item > i { height: 5px; overflow: hidden; border-radius: 3px; background: #eceff1; }.carryover-item > i em { display: block; height: 100%; border-radius: inherit; background: var(--orange); }.carryover-item > em { color: var(--blue-2); font-size: 8px; font-style: normal; font-weight: 700; }.carryover-detail-summary { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }.carryover-detail-summary > div { padding: 15px; border: 1px solid var(--line); border-radius: 9px; background: #f8fafb; }.carryover-detail-summary span, .carryover-detail-summary strong, .carryover-detail-summary small { display: block; }.carryover-detail-summary span { color: var(--muted); font-size: 8px; }.carryover-detail-summary strong { margin-top: 6px; font: 700 22px Consolas,monospace; }.carryover-detail-summary small { margin-top: 5px; color: var(--muted); font-size: 8px; }.carryover-detail-summary i { display: block; height: 5px; margin-top: 10px; overflow: hidden; border-radius: 3px; background: #e8edef; }.carryover-detail-summary i em { display: block; height: 100%; background: var(--orange); }.carryover-detail-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; margin-top: 12px; }.carryover-detail-grid > div { padding: 12px; border-left: 3px solid var(--blue-2); border-radius: 7px; background: #f5f8fa; }.carryover-detail-grid > div.blocked { border-left-color: var(--red); background: var(--red-soft); }.carryover-detail-grid span, .carryover-detail-grid strong { display: block; }.carryover-detail-grid span { color: var(--muted); font-size: 8px; }.carryover-detail-grid strong { margin-top: 5px; font-size: 9px; line-height: 1.55; }
.technical-file-overview > div:last-child button { display: grid; align-content: center; justify-items: center; min-height: 78px; padding: 9px; border: 1px solid rgba(255,255,255,.14); border-radius: 8px; color: white; background: rgba(255,255,255,.06); cursor: pointer; }.technical-file-overview > div:last-child button:hover, .technical-file-overview > div:last-child button.active { border-color: rgba(255,207,140,.78); background: rgba(255,255,255,.11); transform: translateY(-1px); }.technical-file-overview > div:last-child button strong { font: 700 20px Consolas,monospace; }.technical-file-overview > div:last-child button span { margin-top: 4px; color: #c3d3dc; font-size: 8px; }.technical-file-overview > div:last-child button em { margin-top: 6px; color: #ffd18e; font-size: 7px; font-style: normal; font-weight: 700; }
.technical-building-browser { margin-bottom: 13px; padding: 18px; border: 1px solid #cbd9e2; border-radius: 12px; background: linear-gradient(135deg,#f9fbfc,#eef5f8); box-shadow: var(--shadow); }.technical-building-heading { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin-bottom: 14px; }.technical-building-heading span, .technical-building-heading strong, .technical-building-heading small { display: block; }.technical-building-heading span { color: var(--blue-2); font: 700 8px Consolas,monospace; letter-spacing: .13em; }.technical-building-heading strong { margin-top: 4px; font-size: 14px; }.technical-building-heading small { margin-top: 4px; color: var(--muted); font-size: 8px; }.technical-building-heading > button { border: 0; color: var(--blue-2); background: none; cursor: pointer; font-size: 9px; font-weight: 700; }.technical-building-folders { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }.technical-building-folders > button { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 76px; padding: 11px 12px; border: 1px solid #d3dee4; border-radius: 9px; color: var(--ink); background: white; cursor: pointer; text-align: left; }.technical-building-folders > button:hover, .technical-building-folders > button.active { border-color: var(--blue-2); box-shadow: inset 0 0 0 1px var(--blue-2); }.technical-building-folders > button > i { position: relative; display: block; width: 39px; height: 30px; margin-top: 6px; border-radius: 4px; background: #dbe9f1; }.technical-building-folders > button > i::before { content: ""; position: absolute; left: 4px; top: -6px; width: 17px; height: 8px; border-radius: 4px 4px 0 0; background: #b8d1e1; }.technical-building-folders > button strong, .technical-building-folders > button small { display: block; }.technical-building-folders > button strong { font-size: 10px; }.technical-building-folders > button small { margin-top: 4px; color: var(--muted); font-size: 7px; }.technical-building-folders > button em { color: var(--blue-2); font-size: 7px; font-style: normal; font-weight: 700; }.technical-folder-hint { margin: 12px 0 0; color: var(--muted); font-size: 8px; }
.cost-control-hero { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(420px,.85fr); gap: 22px; padding: 24px; border-radius: 13px; color: white; background: linear-gradient(135deg,#173a59,#254f69); box-shadow: var(--shadow); }.cost-control-hero > div:first-child > span { color: #9db5c3; font: 700 8px Consolas,monospace; letter-spacing: .14em; }.cost-control-hero h2 { margin: 7px 0; font-family: "STZhongsong",serif; font-size: 22px; }.cost-control-hero p { max-width: 650px; margin: 0; color: #c2d2db; font-size: 9px; line-height: 1.75; }.cost-control-hero > div:first-child > strong { display: block; margin-top: 17px; color: #b8cbd6; font-size: 9px; }.cost-control-hero > div:first-child > strong b { margin-left: 7px; color: #ffd18e; font: 700 18px Consolas,monospace; }.cost-control-hero > div:last-child { display: grid; gap: 7px; }.cost-control-hero > div:last-child button { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 10px; min-height: 54px; padding: 9px 11px; border: 1px solid rgba(255,255,255,.14); border-radius: 8px; color: white; background: rgba(255,255,255,.06); cursor: pointer; text-align: left; }.cost-control-hero > div:last-child button:hover, .cost-control-hero > div:last-child button.active { border-color: rgba(255,207,140,.78); background: rgba(255,255,255,.11); }.cost-control-hero > div:last-child button > i { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 7px; color: #173a59; background: #ffd18e; font-style: normal; font-weight: 700; }.cost-control-hero > div:last-child button span strong, .cost-control-hero > div:last-child button span small { display: block; }.cost-control-hero > div:last-child button span strong { font: 700 15px Consolas,monospace; }.cost-control-hero > div:last-child button span small { margin-top: 2px; color: #c6d6de; font-size: 8px; }.cost-control-hero > div:last-child button em { color: #ffd18e; font-size: 7px; font-style: normal; font-weight: 700; }.cost-file-tabs { display: flex; gap: 7px; margin: 13px 0; overflow-x: auto; }.cost-file-tabs button { flex: 0 0 auto; padding: 8px 11px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: white; cursor: pointer; font-size: 9px; }.cost-file-tabs button.active { border-color: var(--blue-2); color: var(--blue-2); background: var(--blue-soft); font-weight: 700; }.cost-file-tabs b { margin-left: 6px; }.cost-file-register { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: var(--shadow); }.cost-file-row { display: grid; grid-template-columns: 135px minmax(250px,1fr) 150px 105px 90px 82px; align-items: center; gap: 12px; width: 100%; min-height: 70px; padding: 10px 15px; border: 0; border-bottom: 1px solid #e7edef; color: var(--ink); background: white; cursor: pointer; text-align: left; }.cost-file-row:last-child { border-bottom: 0; }.cost-file-row:not(.header):hover { background: #fffaf4; box-shadow: inset 3px 0 #d49a3a; }.cost-file-row.header { min-height: 38px; color: var(--muted); background: #f4f7f8; cursor: default; font-size: 8px; }.cost-file-row > span { min-width: 0; font-size: 8px; }.cost-file-row > span:first-child { display: grid; grid-template-columns: 31px 1fr; align-items: center; column-gap: 8px; }.cost-file-row > span:first-child i { grid-row: 1 / 3; display: grid; place-items: center; width: 31px; height: 31px; border-radius: 7px; color: #8a5814; background: #fff0d6; font-style: normal; font-weight: 700; }.cost-file-row strong, .cost-file-row small { display: block; }.cost-file-row > span:nth-child(2) strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.cost-file-row small { margin-top: 4px; color: var(--muted); font-size: 7px; }.cost-file-row .cost-amount { color: #8a5814; font: 700 10px Consolas,monospace; }.cost-file-row > em { color: var(--blue-2); font-size: 8px; font-style: normal; font-weight: 700; }.cost-document-paper { padding: 17px; border: 1px solid #dccba9; border-radius: 9px; background: #fffdf8; }.cost-document-stamp { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 9px; border-bottom: 1px solid #eadfca; color: #8a5814; font-size: 9px; }.cost-document-paper h3 { margin: 10px 0; font-size: 18px; }.cost-document-paper p { color: var(--muted); font-size: 10px; line-height: 1.8; }.cost-document-paper dl { display: grid; grid-template-columns: repeat(2,1fr); }.cost-detail-amount { color: #8a5814; font: 700 13px Consolas,monospace; }

.nav-item.access-locked { color: #92aabb; }.nav-item.access-locked .nav-icon { color: #ffd18e; }.nav-item.access-locked b { color: #704b16; background: #ffe1a7; font-size: 7px; }.nav-item.access-locked:hover { color: white; }.cost-access-dialog { width: min(500px,calc(100vw - 30px)); }.cost-access-lock { display: grid; grid-template-columns: 56px 1fr; align-items: center; gap: 14px; padding: 16px; border: 1px solid #dccba9; border-radius: 10px; background: #fffaf0; }.cost-access-lock > span { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 12px; color: #173a59; background: #ffd18e; font: 700 23px Consolas,monospace; }.cost-access-lock strong { font-size: 11px; }.cost-access-lock p { margin: 6px 0 0; color: var(--muted); font-size: 9px; line-height: 1.65; }.cost-restricted-state { display: grid; justify-items: center; gap: 8px; padding: 60px 20px; border: 1px solid #dccba9; border-radius: 12px; background: #fffaf0; text-align: center; }.cost-restricted-state > span { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; color: #173a59; background: #ffd18e; font: 700 22px Consolas,monospace; }.cost-restricted-state strong { font-size: 13px; }.cost-restricted-state p { margin: 0; color: var(--muted); font-size: 9px; }

.workers-table { overflow: hidden; border: 1px solid var(--line); border-radius: 9px; }.workers-row { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 10px; min-height: 40px; align-items: center; padding: 7px 12px; border-top: 1px solid #e7edef; font-size: 9px; }.workers-row:first-child { border-top: 0; }.workers-row.header { min-height: 32px; color: var(--muted); background: #f4f7f8; font-size: 8px; }.workers-note { margin: 10px 0 0; color: var(--muted); font-size: 8px; line-height: 1.6; }.material-coordination { position: relative; padding: 12px 13px; border-bottom: 1px solid #e8edef; background: #fffaf2; }.material-coordination > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.material-coordination em { padding: 3px 5px; border-radius: 4px; color: #b04a12; background: var(--orange-soft); font-size: 7px; font-style: normal; font-weight: 700; }.material-coordination strong { display: block; margin-top: 7px; font-size: 8px; line-height: 1.55; }.material-coordination small { display: block; margin-top: 5px; color: var(--muted); font-size: 7px; }.material-coordination button { margin-top: 7px; padding: 4px 0; border: 0; color: var(--blue-2); background: transparent; cursor: pointer; font-size: 7px; font-weight: 700; }
.project-switch-list { display: grid; gap: 8px; max-height: 46vh; overflow-y: auto; }
.project-switch-item { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; align-items: center; gap: 11px; width: 100%; min-height: 62px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: white; cursor: pointer; text-align: left; }
.project-switch-item:hover:not(:disabled) { border-color: var(--blue-2); background: var(--blue-soft); }
.project-switch-item.active { border-color: var(--blue-2); background: var(--blue-soft); cursor: default; }
.project-switch-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 9px; color: white; background: var(--blue); font-size: 16px; font-weight: 700; }
.project-switch-item strong, .project-switch-item small { display: block; }
.project-switch-item strong { font-size: 12px; }
.project-switch-item small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.project-switch-item em { padding: 4px 8px; border-radius: 6px; color: var(--green); background: var(--green-soft); font-size: 8px; font-style: normal; font-weight: 700; }
.project-switch-item i { color: var(--blue-2); font-size: 10px; font-style: normal; font-weight: 700; }
.account-policy-note { margin: -2px 0 0; padding: 10px 12px; border-left: 3px solid var(--orange); border-radius: 7px; color: #76583f; background: var(--orange-soft); font-size: 8px; line-height: 1.65; }
.account-manage-panel { margin-top: 14px; padding: 17px; border: 1px solid var(--line); border-radius: 11px; background: white; box-shadow: var(--shadow); }
.account-manage-table { overflow: hidden; border: 1px solid var(--line); border-radius: 9px; }
.account-row { display: grid; grid-template-columns: minmax(150px,1.2fr) .8fr .9fr .6fr auto; align-items: center; gap: 12px; min-height: 52px; padding: 8px 13px; border-top: 1px solid #e7edef; font-size: 8px; }.account-row:first-child { border-top: 0; }.account-row:nth-child(even) { background: #f8fafb; }
.account-row > span > b, .account-row > span > small { display: block; }.account-row > span > b { font-size: 9px; }.account-row > span > small { margin-top: 3px; color: var(--muted); font-size: 7px; }
.account-state { display: inline-flex; width: fit-content; padding: 3px 7px; border-radius: 5px; color: var(--green); background: var(--green-soft); font-size: 7px; font-weight: 700; }.account-state.pending { color: var(--orange); background: var(--orange-soft); }.account-state.disabled { color: var(--muted); background: #edf1f3; }
.account-actions { display: flex; gap: 5px; }.account-actions button { min-height: 27px; padding: 0 8px; border: 1px solid #b8c9d3; border-radius: 5px; color: var(--blue-2); background: white; cursor: pointer; font-size: 7px; font-weight: 700; }.account-actions button:hover { border-color: var(--blue-2); background: var(--blue-soft); }
.management-permission-note { margin-top: 8px; color: var(--muted); font-size: 8px; line-height: 1.6; }

.toast { position: fixed; right: 24px; bottom: 24px; z-index: 100; max-width: 360px; padding: 12px 16px; border-radius: 8px; color: white; background: #173a59; box-shadow: 0 10px 35px rgba(0,0,0,.2); font-size: 12px; transform: translateY(30px); opacity: 0; pointer-events: none; transition: .25s ease; }.toast.show { transform: none; opacity: 1; }
.sidebar-scrim { display: none; }

@media (max-width: 1120px) {
  .metric-grid { grid-template-columns: repeat(2, 1fr); }.content-grid { grid-template-columns: 1fr; }.side-stack { grid-template-columns: 1fr 1fr; }.card-collection { grid-template-columns: repeat(2, 1fr); }.document-strip { grid-template-columns: auto 1fr minmax(100px, 180px) auto auto; }.document-strip-arrow { display: none; }.organization-strip { grid-template-columns: minmax(200px,.7fr) 1fr auto; }.organization-roles .role-chip:nth-child(n+4) { display: none; }.dependency-chain { overflow-x: auto; justify-content: start; }
  .daily-command-board { grid-template-columns: 1fr; }.weekly-progress-compare { grid-template-columns: 1fr 1fr; }.daily-layout { grid-template-columns: 1fr; }.daily-support-grid { grid-template-columns: 1fr 1fr; }.daily-support-card.issues { grid-column: 1 / -1; }.daily-issue-totals { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
  .login-screen { grid-template-columns: 1fr; }.login-field-panel { display: none; }.login-form-panel { min-height: 100vh; padding: 30px 22px; }.login-mobile-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 52px; color: var(--blue); }.login-mobile-brand .brand-mark { border-color: rgba(23,58,89,.28); }.login-mobile-brand .brand-mark span { background: var(--blue); }.login-mobile-brand .brand-mark::after { border-color: var(--orange); }.login-mobile-brand strong { font-family: "STZhongsong","SimSun",serif; font-size: 24px; letter-spacing: .16em; }
  .sidebar { transform: translateX(-100%); transition: transform .25s ease; }.sidebar.open { transform: none; }.sidebar-scrim.open { display: block; position: fixed; inset: 0; z-index: 19; background: rgba(8,25,36,.46); }.workspace { margin-left: 0; }.menu-button { display: grid; }.topbar { padding: 0 18px; }.sync-state, .topbar-actions > .icon-button { display: none; }main { padding: 24px 18px 40px; }.process-rail { overflow-x: auto; grid-template-columns: repeat(7, 110px); padding-bottom: 7px; }.process-rail::before, .process-rail::after { display: none; }.page-heading { align-items: start; }.heading-actions { flex-direction: column; }.legend { display: none; }
}
@media (max-width: 620px) {
  .login-form h2 { font-size: 29px; }.login-description { margin-bottom: 24px; }.login-options { align-items: flex-start; flex-direction: column; gap: 9px; }.login-mobile-brand { margin-bottom: 36px; }
  .topbar-actions .primary-button { width: 42px; overflow: hidden; padding: 0; white-space: nowrap; color: transparent; }.topbar-actions .primary-button span { display: grid; place-items: center; width: 100%; margin: 0; color: white; }.project-switcher button { max-width: 142px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.project-switcher > span { display: none; }.global-back-button { width: 38px; margin-right: 8px; padding: 0; justify-content: center; }.global-back-button b { display: none; }.page-heading { display: block; }.heading-actions { display: grid; grid-template-columns: 1fr 1fr; margin-top: 18px; }.attention-strip { align-items: flex-start; flex-wrap: wrap; padding: 12px; }.attention-strip p { flex: 1; min-width: 180px; }.attention-strip button { width: 100%; margin-top: 9px; text-align: right; }.metric-grid, .side-stack, .card-collection, .document-overview, .followup-summary { grid-template-columns: 1fr; }.process-card, .task-panel { padding: 18px 14px; }.document-strip { grid-template-columns: auto 1fr auto; padding: 11px 12px; }.document-strip-progress, .document-strip-percent, .document-strip-arrow { display: none; }.document-strip-alert { grid-column: 2; justify-self: start; }.organization-strip { grid-template-columns: 1fr auto; }.organization-roles { grid-column: 1 / -1; order: 3; overflow-x: auto; }.organization-strip > button { grid-column: 2; grid-row: 1; }.stage-detail { align-items: flex-start; flex-wrap: wrap; }.task-item { grid-template-columns: 28px 1fr; }.task-side { grid-column: 2; grid-template-columns: auto auto; align-items: center; justify-self: start; }.form-grid, .organization-person { grid-template-columns: 1fr; }.record-types, .gate-options, .urgency-options { grid-template-columns: 1fr; }.gate-options span { min-height: auto; }.gate-chain { flex-wrap: wrap; justify-content: flex-start; }.chain-switcher, .plan-level-tabs, .resource-tabs { overflow-x: auto; }.chain-switcher button, .plan-level-tabs button, .resource-tabs button { flex: 0 0 auto; }.photo-preview { grid-template-columns: repeat(3, 1fr); }.data-row { grid-template-columns: 1.2fr .8fr .8fr; }.data-row > :nth-child(3), .data-row > :nth-child(4) { display: none; }.document-chain-panel, .document-list-panel { padding: 15px 12px; }.dependency-chain { grid-template-columns: repeat(7, auto); }.document-row { grid-template-columns: 1.2fr .7fr .55fr; }.document-row > :nth-child(3), .document-row > :nth-child(4), .document-row > :nth-child(5) { display: none; }.followup-card { grid-template-columns: 4px 1fr; }.followup-card-actions { grid-column: 2; grid-template-columns: auto auto auto; align-items: center; justify-content: start; }.plan-row { grid-template-columns: 1fr auto; }.plan-row > span { display: none; }.resource-toolbar { display: grid; }.resource-toolbar-actions { flex-wrap: wrap; }.resource-row { grid-template-columns: 1.2fr .8fr .65fr; }.resource-row > :nth-child(3), .resource-row > :nth-child(4), .resource-row > :nth-child(5) { display: none; }.timeline-panel { overflow-x: auto; }.timeline-header, .gantt-row { min-width: 650px; }dialog form { padding: 20px 16px; }
}
@media (max-width: 620px) {
  .resource-forecast { grid-template-columns: auto 1fr; }.resource-forecast button { grid-column: 2; justify-self: start; padding: 0; }.resource-plan-row { grid-template-columns: 1.25fr .7fr .85fr; }.resource-detail-grid { grid-template-columns: 1fr; }.weekly-report-list button { grid-template-columns: 1fr auto; }.weekly-report-list button > i { grid-column: 1 / -1; }.resource-row-button { min-height: 66px; }
  .quality-summary-grid, .management-roster { grid-template-columns: 1fr; }.quality-check-row { grid-template-columns: auto 1fr auto; }.quality-check-row > span:last-child { display: none; }.section-line-heading, .quality-list-heading { align-items: flex-start; flex-direction: column; }.chain-material-card { grid-template-columns: 1fr 1fr; }.chain-material-card > div { grid-column: 1 / -1; }.document-file-groups, .existing-check-attachments, .inspection-main-attachments, .inspection-issue-existing, .acceptance-existing-files, .concealed-existing-files { grid-template-columns: 1fr; }.management-roster article { min-height: auto; }.quality-list-heading > div:last-child, .section-line-heading > div:last-child { flex-wrap: wrap; }.inspection-issue-editor-row { padding: 62px 12px 12px; }.inspection-issue-number { inset: 12px 12px auto; display: flex; align-items: center; width: auto; height: 36px; padding: 0 0 9px; border-right: 0; border-bottom: 1px solid var(--line); }.inspection-issue-number strong { margin: 0 8px; font-size: 18px; }.inspection-issue-number button { position: static; margin-left: auto; }.inspection-issues-heading { align-items: flex-start; flex-direction: column; }.attendance-history-entry { grid-template-columns: 1fr auto; }.attendance-history-entry > button:first-child { grid-template-columns: 78px 1fr auto; }.attendance-history-entry > button:first-child em { grid-column: 2 / -1; }.attendance-supplement-action { min-width: 86px; }.attendance-day-detail { grid-template-columns: 1fr; gap: 8px; }.attendance-history-table { overflow-x: auto; }.attendance-history-row { min-width: 760px; }.supplement-audit-list > div { grid-template-columns: 1fr auto; }.supplement-audit-list p { grid-column: 1 / -1; }.material-acceptance-row.header { display: none; }.material-acceptance-row { grid-template-columns: minmax(0,1fr) auto; gap: 8px; min-height: 82px; }.material-acceptance-row > span { display: none; }.material-acceptance-row > span:nth-of-type(4) { display: block; }.material-acceptance-row > .edit-action { grid-column: 2; }.acceptance-material-summary { grid-template-columns: 1fr; }.acceptance-document-item { grid-template-columns: 32px 1fr; align-items: start; }.acceptance-document-item label, .acceptance-document-item .acceptance-urge { grid-column: 2; }.acceptance-document-sequence { grid-row: 1 / span 5; }.acceptance-upload-panel { padding: 12px; }.concealed-acceptance-row { grid-template-columns: auto minmax(0,1fr) auto; }.concealed-acceptance-row > span { display: none; }.concealed-acceptance-row > b { grid-column: 3; }.contract-brand-panel, .approval-panel-heading, .section-form-heading, .concealed-gate-hint { align-items: flex-start; flex-direction: column; }.approval-step { grid-template-columns: auto minmax(0,1fr); }.approval-step-actions { grid-column: 2; }.approval-setup-panel { padding: 12px; }.procurement-gate-panel, .procurement-access-banner { grid-template-columns: auto minmax(0,1fr); }.procurement-gate-panel > em, .procurement-access-banner > span { grid-column: 2; justify-self: start; }.procurement-plan-row.header { display: none; }.procurement-plan-row { grid-template-columns: minmax(0,1fr) auto; min-height: 74px; }.procurement-plan-row > span { display: none; }
}
@media (max-width: 820px) {
  .intake-overview { grid-template-columns: 1fr; }.intake-kpis { grid-template-columns: repeat(3,1fr); }.intake-pipeline-heading { align-items: start; flex-direction: column; gap: 6px; }.intake-row { grid-template-columns: minmax(220px,1fr) 120px 90px 70px; }.intake-row > :nth-child(3), .intake-row > :nth-child(4) { display: none; }
  .daily-query-bar { align-items: flex-start; flex-direction: column; }.daily-query-bar p { line-height: 1.55; }.daily-command-metrics { grid-template-columns: repeat(2,1fr); }.weekly-progress-compare { grid-template-columns: 1fr; }.daily-task-columns { display: none; }.daily-task-row { grid-template-columns: repeat(4,1fr); }.daily-task-identity { grid-column: 1 / -1; }.daily-feedback-action { grid-column: 1 / -1; }.daily-support-grid { grid-template-columns: 1fr; }.daily-support-card.issues { grid-column: auto; }
}
@media (max-width: 620px) {
  .intake-kpis { grid-template-columns: 1fr; }.intake-pipeline { padding: 16px 12px; }.intake-pipeline-rail { grid-template-columns: repeat(4,105px); overflow-x: auto; justify-content: start; padding: 5px 0 9px; }.intake-pipeline-rail::before { display: none; }.intake-register-heading { align-items: flex-start; flex-direction: column; }.intake-filters { width: 100%; overflow-x: auto; }.intake-filters button { flex: 0 0 auto; }.intake-row.header { display: none; }.intake-row { grid-template-columns: minmax(0,1fr) auto; min-height: 78px; padding: 11px 12px; }.intake-row > span:not(:first-child) { display: none; }.intake-row > b { grid-column: 2; }.intake-source-audit { grid-template-columns: 1fr; }.intake-candidate-editor > div:first-child { align-items: flex-start; flex-direction: column; gap: 4px; }.intake-review-actions { grid-template-columns: 1fr 1fr; }.intake-review-actions span { display: none; }
  .daily-command-board { padding: 17px 14px 14px; }.daily-command-copy h2 { font-size: 18px; }.daily-command-metrics { gap: 6px; }.daily-control-rail { grid-template-columns: repeat(5,118px); overflow-x: auto; justify-content: start; padding-bottom: 6px; }.daily-control-rail::before { display: none; }.daily-task-row { grid-template-columns: 1fr 1fr; padding: 11px; }.daily-task-identity, .daily-feedback-action { grid-column: 1 / -1; }.daily-condition, .daily-worker-cell { min-height: 62px; }.daily-document-gauge { grid-template-columns: 88px 1fr; }.daily-document-gauge > div { width: 80px; height: 80px; }.daily-material-list > div { grid-template-columns: 1fr auto; padding: 6px 0; }.daily-material-list span { grid-column: 1 / -1; }.daily-support-stats { flex-wrap: wrap; }.collection-register-details > summary { grid-template-columns: 1fr auto; }.collection-register-details > summary small { grid-column: 1 / -1; }.daily-feedback-gates, .technical-notice-body dl { grid-template-columns: 1fr; }
}
@media (max-width: 1120px) {
  .weekly-daily-ledger > div:last-child, .weekly-workforce-ledger > div:last-child { grid-template-columns: repeat(4,minmax(0,1fr)); }.technical-file-overview { grid-template-columns: 1fr; }.technical-file-row { grid-template-columns: 110px minmax(220px,1fr) 90px 84px 72px; }.technical-file-row > :nth-child(5) { display: none; }
}
@media (max-width: 820px) {
  .today-plan-register > div:last-child { grid-template-columns: 1fr; }.today-plan-register article:nth-child(odd) { border-right: 0; }.today-plan-register article:nth-last-child(-n+2) { border-bottom: 1px solid #e8edef; }.today-plan-register article:last-child { border-bottom: 0; }.weekly-daily-ledger > div:last-child, .weekly-workforce-ledger > div:last-child { grid-template-columns: repeat(2,minmax(0,1fr)); }.technical-file-overview > div:last-child { grid-template-columns: repeat(2,1fr); }.technical-file-row { grid-template-columns: 105px minmax(170px,1fr) 82px 70px; }.technical-file-row > :nth-child(3), .technical-file-row > :nth-child(5) { display: none; }
}
@media (max-width: 620px) {
  .today-plan-register article { grid-template-columns: 31px minmax(0,1fr) 55px; padding-inline: 11px; }.today-plan-register article > span { display: none; }.weekly-command-board { padding: 18px 13px; }.weekly-ledger-heading { align-items: flex-start; flex-direction: column; gap: 3px; }.weekly-daily-ledger > div:last-child, .weekly-workforce-ledger > div:last-child { grid-template-columns: repeat(7,105px); overflow-x: auto; padding-bottom: 5px; }.carryover-board article { grid-template-columns: minmax(0,1fr) auto; }.carryover-board article > i { grid-column: 1 / -1; }.technical-file-overview { padding: 18px 14px; }.technical-file-row.header { display: none; }.technical-file-row { grid-template-columns: 92px minmax(0,1fr) auto; min-height: 78px; padding: 11px; }.technical-file-row > :nth-child(3), .technical-file-row > :nth-child(4), .technical-file-row > :nth-child(5) { display: none; }.technical-notice-risk { grid-template-columns: 25px 1fr; }.technical-notice-risk strong { grid-column: 1 / -1; text-align: left; }.technical-document-paper dl { grid-template-columns: 1fr; }
}
@media (max-width: 1120px) {
  .technical-building-folders { grid-template-columns: repeat(2,minmax(0,1fr)); }.cost-control-hero { grid-template-columns: 1fr; }.cost-file-row { grid-template-columns: 120px minmax(220px,1fr) 120px 95px 75px; }.cost-file-row > :nth-child(5) { display: none; }
}
@media (max-width: 820px) {
  .carryover-item { grid-template-columns: 31px minmax(0,1fr) auto; }.carryover-item > i { grid-column: 2 / -1; }.carryover-item > em { grid-column: 2 / -1; }.technical-building-folders { grid-template-columns: 1fr; }.cost-file-row { grid-template-columns: 110px minmax(180px,1fr) 95px 75px; }.cost-file-row > :nth-child(3), .cost-file-row > :nth-child(5) { display: none; }
}
@media (max-width: 620px) {
  .carryover-item { grid-template-columns: 30px minmax(0,1fr) auto; padding-inline: 11px; }.carryover-item > i, .carryover-item > em { grid-column: 2 / -1; }.carryover-detail-summary, .carryover-detail-grid { grid-template-columns: 1fr; }.technical-building-browser { padding: 14px 12px; }.technical-building-heading { align-items: flex-start; flex-direction: column; }.technical-building-folders > button { grid-template-columns: 40px minmax(0,1fr); }.technical-building-folders > button em { grid-column: 2; }.cost-control-hero { padding: 18px 14px; }.cost-control-hero > div:last-child button { grid-template-columns: 31px 1fr; }.cost-control-hero > div:last-child button em { grid-column: 2; }.cost-file-row.header { display: none; }.cost-file-row { grid-template-columns: 96px minmax(0,1fr) auto; min-height: 78px; padding: 11px; }.cost-file-row > :nth-child(3), .cost-file-row > :nth-child(4), .cost-file-row > :nth-child(5) { display: none; }.cost-document-paper dl { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .daily-plan-group > summary { grid-template-columns: 36px minmax(0,1fr) 20px; gap: 9px; min-height: 62px; padding: 9px 10px; }.daily-plan-date-mark { width: 34px; height: 34px; font-size: 13px; }.daily-plan-group-stats { grid-column: 2; justify-self: start; gap: 8px; }.daily-plan-group-stats span:nth-child(2) { display: none; }.daily-plan-group summary > i { grid-column: 3; grid-row: 1 / span 2; }
}
@media (max-width: 620px) {
  .account-row { grid-template-columns: minmax(0,1fr) auto; gap: 6px 10px; padding: 10px 12px; }.account-actions { grid-column: 1 / -1; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }
