
:root { --brand2:#0c918a; }
* { box-sizing:border-box; }
html { margin:0; min-height:100%; color:var(--ink); }
body { margin:0; min-height:100%; color:var(--ink); }
button { font:inherit; }
input { font:inherit; }
select { font:inherit; }
textarea { font:inherit; }
button { cursor:pointer; }
.app { width:100%; min-height:100dvh; margin:auto; position:relative; overflow:hidden; }
.topbar { display:flex; align-items:center; gap:10px; z-index:20; }
.topbar h1 { margin:0; flex:1; }
.back { border:0; background:#edf6f5; color:var(--brand); font-size:20px; }
.page { display:none; }
.page.active { display:block; }
.card { border:1px solid var(--line); }
.tabs { display:flex; margin-bottom:12px; }
.tabs button { flex:1; }
.list { display:grid; }
.order { position:relative; }
.order-tag { font-weight:800; }
.meta { color:var(--muted); }
.module-grid { display:grid; }
.module { text-align:left; }
.module-icon { display:grid; place-items:center; font-size:20px; }
.module strong { display:block; }
.search { display:flex; gap:8px; margin-bottom:12px; }
.search input { width:100%; color:var(--ink); outline:none; }
.search select { width:100%; color:var(--ink); outline:none; }
.field input { width:100%; background:#fff; color:var(--ink); outline:none; }
.field select { width:100%; color:var(--ink); outline:none; }
.field textarea { width:100%; background:#fff; color:var(--ink); outline:none; }
.ledger p { margin:7px 0; font-size:13px; }
.kv { display:grid; font-size:13px; }
.kv:last-child { border:0; }
.detail-actions { position:sticky; display:flex; gap:8px; margin-top:16px; }
.btn { border:0; }
.btn.primary { flex:1; }
.btn.reject { background:#fff0f0; color:var(--danger); }
.field:last-child { margin:0; }
.field label { display:block; color:#49636a; margin:0 0 6px; }
.req { color:var(--danger); }
.hint { color:var(--muted); margin-top:5px; }
.risk-row { margin-bottom:8px; }
.photo-grid { display:flex; gap:8px; flex-wrap:wrap; }
.photo { border:1px dashed #9abbbb; display:grid; place-items:center; overflow:hidden; font-size:12px; text-align:center; }
.photo img { width:100%; height:100%; object-fit:cover; }
.profile { padding:17px; display:flex; gap:13px; align-items:center; }
.avatar { width:58px; height:58px; font-weight:800; font-size:22px; display:grid; place-items:center; overflow:hidden; }
.avatar img { width:100%; height:100%; object-fit:cover; }
.profile h2 { font-size:18px; margin:0 0 4px; }
.profile p { font-size:12px; margin:0; }
.menu { margin-top:12px; overflow:hidden; }
.menu button { width:100%; border:0; text-align:left; border-bottom:1px solid #edf2f2; display:flex; justify-content:space-between; }
.menu button:last-child { border:0; }
.nav { position:fixed; left:50%; transform:translateX(-50%); display:grid; grid-template-columns:repeat(5,1fr); z-index:30; }
.nav i { font-style:normal; font-size:20px; display:block; margin-bottom:2px; }
.dot { position:absolute; top:3px; right:15px; background:#e24d4d; color:#fff; border-radius:99px; min-width:16px; height:16px; line-height:16px; font-size:9px; }
.sheet { position:fixed; inset:0; z-index:50; display:none; align-items:flex-end; justify-content:center; }
.sheet.open { display:flex; }
.sheet-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.sheet-head h2 { font-size:18px; margin:0; }
.x { border:0; background:#e7eeee; font-size:20px; }
.toast { position:fixed; z-index:80; left:50%; transform:translate(-50%,20px); color:#fff; opacity:0; transition:.2s; pointer-events:none; }
.toast.show { opacity:1; transform:translate(-50%,0); }
@media(min-width:700px) {
  .app { border-radius:28px; box-shadow:0 20px 60px rgba(10,40,43,.18); }
  .sheet { align-items:center; }
  .sheet-box { max-height:84dvh; }
}
.nav { backdrop-filter:blur(14px); }
.nav button { display:flex; position:relative; align-items:center; justify-content:center; flex-direction:column; gap:3px; border:0; background:transparent; font-size:10px; }
.nav button i { display:grid; place-items:center; font-style:normal; }
.nav button svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.planning-empty strong { display:block; }
.planning-empty small { display:block; }
.planning-empty small { margin-top:6px; }
.nav button.active:before { position:absolute; top:-4px; width:22px; height:3px; border-radius:0 0 4px 4px; background:var(--brand); content:""; }
.nav button.primary span { margin-top:-2px; }
.nav button.primary.active:before { display:none; }
.nav .dot { border:2px solid #fff; line-height:12px; height:16px; }
.badge { display:inline-flex; align-items:center; align-self:flex-start; gap:6px; font-size:11px; font-weight:700; line-height:1.25; white-space:nowrap; }
.badge:before { background:currentColor; content:""; opacity:.8; }
.badge.warn { border-color:#f1d7ad; }
.badge.done { border-color:#c8e4d5; }
.badge.danger { border-color:#efcaca; }
.badge.info { border-color:#cddcea; background:#f0f5fa; color:#466b86; }
.badge.desktop { border-color:#d9d4ef; }
.readonly-note { display:flex; gap:8px; align-items:flex-start; margin:0 0 12px; font-size:12px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.check-list { display:grid; gap:9px; }
.check-list label { display:flex; gap:9px; padding:11px; border:1px solid var(--line); font-size:13px; }
.check-list input { margin:0; accent-color:var(--brand); }
.round-card { margin-top:11px; padding:14px; }
.round-card h3 { margin:0 0 10px; font-size:14px; }
.round-head { display:flex; justify-content:space-between; gap:8px; }
.archive-link { width:100%; border:0; background:transparent; color:var(--brand); padding:1px 0; text-align:left; text-decoration:underline; }
.photo { position:relative; }
.photo-remove { position:absolute; right:2px; top:2px; border:0; border-radius:50%; background:rgba(20,44,47,.76); color:#fff; line-height:20px; padding:0; }
.danger-text { color:var(--danger); }
html { overflow-x:hidden; -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-behavior:smooth; }
body { overflow-x:hidden; overscroll-behavior-x:none; -webkit-tap-highlight-color:transparent; }
button { font-size:16px; }
input { font-size:16px; }
select { font-size:16px; }
textarea { font-size:16px; }
button { touch-action:manipulation; }
.app { overflow-x:clip; box-shadow:0 0 0 1px rgba(36,77,79,.05); }
.topbar { border-bottom-color:rgba(207,224,224,.82); }
.back { min-width:44px; width:44px; height:44px; border-radius:14px; display:grid; place-items:center; }
.x { min-width:44px; width:44px; height:44px; border-radius:14px; display:grid; place-items:center; }
.page { min-height:calc(100dvh - 56px); animation:page-in .18s ease-out; }
.page#sub { padding-bottom:calc(env(safe-area-inset-bottom) + 92px); }
.card { border-color:rgba(208,225,226,.9); }
.tabs button { padding:8px 6px; }
.order { transition:transform .14s ease,box-shadow .14s ease; }
.order:active { transform:scale(.992); }
.ledger:active { transform:scale(.992); }
.order-tag { line-height:1.35; }
.order-id { font-size:12px; line-height:1.45; }
.meta { font-size:12px; line-height:1.45; }
.order p { line-height:1.6; }
.module { transition:transform .14s ease; }
.module:active { transform:scale(.985); }
.module strong { margin-top:12px; }
.module small { display:block; margin-top:4px; line-height:1.55; }
.search input { padding:12px; font-size:16px; line-height:1.35; appearance:none; -webkit-appearance:none; }
.search select { padding:12px; font-size:16px; line-height:1.35; appearance:none; -webkit-appearance:none; }
.field input { padding:12px; font-size:16px; line-height:1.35; appearance:none; -webkit-appearance:none; }
.field select { padding:12px; font-size:16px; line-height:1.35; appearance:none; -webkit-appearance:none; }
.field textarea { padding:12px; font-size:16px; line-height:1.35; appearance:none; -webkit-appearance:none; }
.field select { padding-right:34px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236f858a' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center; }
.search select { padding-right:34px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236f858a' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center; }
.field textarea { resize:vertical; }
input[readonly] { background:#f0f5f5; color:#647b80; opacity:1; }
select:disabled { background:#f0f5f5; color:#647b80; opacity:1; }
.kv { gap:12px; line-height:1.55; }
.kv span { min-width:0; overflow-wrap:anywhere; }
.detail-actions { bottom:calc(env(safe-area-inset-bottom) + 8px); z-index:12; padding:8px; margin:18px -2px 0; backdrop-filter:blur(16px); }
.btn { padding:11px 14px; font-size:14px; transition:transform .12s ease; }
.btn:active { transform:scale(.98); }
.field { margin-bottom:15px; }
.field label { font-size:13px; font-weight:650; margin-bottom:7px; }
.hint { font-size:12px; line-height:1.55; }
.risk-row { padding:12px; }
.readonly-note { min-height:48px; line-height:1.6; }
.readonly-note b { white-space:nowrap; }
.check-list label { min-height:48px; align-items:center; }
.check-list input { width:22px; height:22px; }
.photo { width:78px; height:78px; }
.photo-remove { width:28px; height:28px; min-height:28px; }
.menu button { padding:15px 16px; align-items:center; }
.nav button.primary i { border-width:5px; }
.sheet.open { animation:fade-in .16s ease; }
.sheet-box { width:min(100%,430px); max-height:92dvh; overscroll-behavior:contain; scroll-padding-bottom:110px; }
.sheet-box:before { content:''; width:36px; height:4px; margin:0 auto 7px; }
.sheet-head { position:sticky; top:-9px; z-index:4; margin:0 -14px 14px; padding:7px 14px 10px; backdrop-filter:blur(12px); border-bottom:1px solid rgba(220,232,233,.75); }
.toast { max-width:calc(100vw - 32px); bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 18px); padding:12px 16px; white-space:normal; text-align:center; font-size:13px; line-height:1.45; box-shadow:var(--shadow-float); }
.login-screen { position:fixed; inset:0; z-index:100; display:none; overflow:auto; padding:calc(38px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom)); }
.login-screen.open { display:flex; }
.login-shell { width:min(100%,390px); margin:auto; }
.login-mark { display:grid; place-items:center; color:#fff; font-size:27px; font-weight:800; box-shadow:0 12px 25px rgba(8,124,120,.23); }
.login-title { margin:22px 0 5px; font-size:27px; }
.login-copy { margin:0 0 28px; color:var(--muted); line-height:1.65; }
.login-card { padding:20px; border:1px solid var(--line); box-shadow:var(--shadow-float); }
.login-card .btn { width:100%; margin-top:6px; }
.login-foot { text-align:center; color:var(--muted); font-size:12px; }
.dialog-layer { position:fixed; inset:0; z-index:120; display:none; place-items:center; padding:20px; background:rgba(9,30,33,.5); backdrop-filter:blur(3px); }
.dialog-layer.open { display:grid; }
.dialog-icon { display:grid; place-items:center; width:44px; height:44px; margin-bottom:14px; font-size:21px; }
.dialog h2 { margin:0 0 7px; font-size:18px; }
.dialog-actions { display:flex; gap:9px; margin-top:20px; }
.dialog-actions .btn { flex:1; }
.network-banner { position:fixed; z-index:90; top:calc(8px + env(safe-area-inset-top)); left:50%; transform:translate(-50%,-80px); width:min(calc(100% - 28px),402px); padding:11px 14px; border-radius:13px; background:#fff4df; color:#925b12; border:1px solid #efd4a5; box-shadow:var(--shadow); font-size:12px; transition:.2s; }
.network-banner.show { transform:translate(-50%,0); }
.state-panel { min-height:230px; display:grid; place-items:center; text-align:center; padding:34px 20px; }
.state-icon { display:grid; place-items:center; width:52px; height:52px; margin:0 auto 14px; font-size:23px; }
.state-panel h3 { margin:0 0 7px; }
.state-panel p { margin:0 auto 16px; max-width:250px; color:var(--muted); font-size:13px; line-height:1.65; }
.skeleton { display:grid; gap:10px; }
.skeleton i { height:82px; border-radius:16px; background:linear-gradient(100deg,#e9f0f0 20%,#f7f9f9 40%,#e9f0f0 60%); background-size:220% 100%; animation:shimmer 1.2s infinite; }
:focus-visible { outline:3px solid rgba(8,124,120,.28); outline-offset:2px; }
@keyframes page-in{from{opacity:.45;transform:translateY(3px)}to{opacity:1;transform:none}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
@keyframes shimmer{to{background-position:-220% 0}}
@media(max-width:359px) {
  .page { padding-left:11px; padding-right:11px; }
  .field-row { grid-template-columns:1fr; }
  .kv { grid-template-columns:88px minmax(0,1fr); }
  .detail-actions { flex-direction:column; }
  .module { padding:14px; }
}
@media(min-width:700px) {
  body { padding:18px; }
  .app { min-height:calc(100dvh - 36px); }
  .sheet-box { border-radius:24px; }
  .login-screen { padding:30px; }
}
@media(prefers-reduced-motion:reduce) {
  * { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; }
  *:before { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; }
  *:after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
.topbar { padding-left:18px; padding-right:18px; }
.page { padding-top:18px; }
.tabs { gap:0; }
.tabs button { border-right:1px solid #d6dfdc; font-size:13px; }
.tabs button:last-child { border-right:0; }
.order:has(.badge.warn) { border-left-color:#d48a20; }
.order:has(.badge.done) { border-left-color:#328467; }
.order:has(.badge.danger) { border-left-color:#c84f4f; }
.order:has(.badge.desktop) { border-left-color:#7162a0; }
.order-id { display:inline-block; }
.order p { font-size:14px; }
.badge { box-shadow:none; text-transform:none; }
.badge:not(.warn):not(.done):not(.danger):not(.desktop):not(.info) { background:#dff2ef; }
.module { position:relative; }
.module:before { content:''; position:absolute; inset:0 0 auto; }
.module-icon { font-weight:800; }
.kv { border-bottom-style:solid; }
.kv label { font-size:12px; }
.kv span { font-size:13px; }
.detail-actions { border-color:#cad7d4; }
.btn { letter-spacing:.01em; }
.profile { border:0; }
.menu button span:first-child { font-weight:650; }
.nav button.active { border-radius:9px; }
.nav button.primary i { margin-top:-24px; border-color:var(--bg); }
.sheet-box:before { border-radius:2px; }
@media(max-width:359px) {
  .nav { width:calc(100% - 14px); }
}
.app { max-width:430px; }
.topbar .back { position:relative; z-index:1; }
.tabs { min-height:48px; border-bottom:1px solid #dce3e5; overflow:visible; }
.tabs button { position:relative; color:#929ca0; background:transparent; }
.tabs button.active { font-weight:600; }
.tabs button.active:after { content:''; position:absolute; left:15%; right:15%; bottom:-1px; height:3px; background:#4db7dc; }
.list { gap:8px; }
.order { border-left:1px solid #e1e6e8; }
.ledger { min-height:98px; padding:14px; border-left:1px solid #e1e6e8; }
.order-tag { font-size:16px; }
.ledger strong { font-size:16px; }
.order-id { margin-top:2px; color:#8b969b; }
.order p { margin:9px 0; color:#5f6e74; }
.badge { min-height:25px; padding:3px 8px; border:0; }
.badge:before { width:5px; height:5px; border-radius:50%; }
.module:before { left:0; top:0; bottom:0; width:4px; height:auto; background:#50b7dc; }
.module:nth-child(2):before { background:#50b7dc; }
.module:nth-child(3):before { background:#50b7dc; }
.module strong { font-weight:600; }
.module small { color:#8b979c; }
.search { border-bottom:1px solid #d8e5e9; border-radius:0; }
.search input { min-height:46px; }
.search select { min-height:46px; border:1px solid #dfe4e6; }
.field input { min-height:46px; border:1px solid #dfe4e6; }
.field select { min-height:46px; border:1px solid #dfe4e6; }
.field textarea { min-height:46px; border:1px solid #dfe4e6; }
.search input { border:0; background:#f4f5f5; }
.search input:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.search select:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.field input:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.field select:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.field textarea:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.readonly-note { padding:11px; border-left:4px solid #4bb5db; }
.kv { grid-template-columns:minmax(92px,34%) minmax(0,1fr); padding:11px 0; border-bottom:1px solid #edf0f1; }
.kv label { color:#7e8b90; font-weight:400; }
.kv span { color:#344349; }
.round-card { border-radius:4px; }
.round-head { padding-bottom:9px; border-bottom:1px solid #edf0f1; }
.detail-actions { border:1px solid #d9e3e6; border-radius:5px; background:rgba(255,255,255,.97); box-shadow:0 -3px 15px rgba(54,94,109,.12); }
.btn { min-height:44px; font-weight:600; }
.btn.primary { color:#fff; }
.btn.primary:active { transform:scale(.98); box-shadow:0 2px 4px rgba(42,142,181,.18); }
.btn.ghost { border:1px solid #dce3e5; color:#52636a; }
.btn.reject { border-radius:4px; }
.check-list label { border-radius:4px; background:#fff; }
.photo { border-radius:4px; color:#42abd3; background:#f5fbfd; }
.avatar { border:0; }
.menu button { min-height:55px; border-bottom-color:#edf0f1; background:#fff; }
.menu button b { color:#a0aaae; }
.nav .dot { right:20%; border-color:#fff; }
.sheet { background:rgba(34,55,63,.34); backdrop-filter:blur(1px); }
.sheet-box:before { background:#a8bdc5; }
.sheet-head { background:rgba(245,251,253,.97); }
.sheet-head h2 { font-weight:600; }
.dialog-icon { border-radius:4px; color:#269cc7; background:#e5f6fb; }
.toast { border-radius:4px; background:#314b55; }
.login-mark { width:62px; height:62px; }
.login-card { background:#fff; }
@media(min-width:700px) {
  .nav { bottom:18px; border-radius:0 0 28px 28px; }
}
:root { --brand:#146b63; --brand-strong:#0b514c; --brand-soft:#e7f3f1; --ink:#182725; --ink-2:#465957; --muted:#7b8b89; --line:#e4e9e8; --line-strong:#d4dcda; --bg:#f5f7f6; --card:#fff; --warn:#b86b16; --danger:#bd4949; --safe:#287b5d; --nav:72px; --shadow:0 1px 2px rgba(24,50,47,.04),0 8px 24px rgba(24,50,47,.055); --shadow-float:0 18px 50px rgba(16,45,42,.18); }
html { background:#e9edec; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; }
body { background:#e9edec; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; }
.app { background:var(--bg); }
.page { padding:10px 14px calc(var(--nav) + env(safe-area-inset-bottom) + 18px); }
.page#sub { padding:12px 14px calc(env(safe-area-inset-bottom) + 92px); }
.content-heading { display:flex; align-items:center; justify-content:space-between; margin:20px 2px 10px; }
.content-heading h2 { margin:0; font-size:16px; }
.content-heading button { border:0; color:var(--muted); background:transparent; font-size:12px; }
.content-heading span { border:0; color:var(--muted); background:transparent; font-size:12px; }
.content-heading button { min-height:36px; padding:0 4px; }
.tabs { margin:0 0 12px; padding:4px; border:0; border-radius:13px; background:#e9eeed; }
.tabs button { min-height:40px; border:0; border-radius:10px; }
.tabs button.active { color:var(--brand-strong); background:#fff; box-shadow:0 1px 4px rgba(30,61,57,.1); }
.tabs button.active:after { display:none; }
.card { border-radius:15px; background:#fff; box-shadow:none; }
.order { border-radius:15px; background:#fff; box-shadow:none; }
.ledger { border-radius:15px; background:#fff; box-shadow:none; }
.profile { border-radius:15px; box-shadow:none; }
.menu { border-radius:15px; background:#fff; box-shadow:none; }
.order { border:1px solid var(--line); }
.ledger { border:1px solid var(--line); }
.order { min-height:100px; padding:15px; }
.order:has(.badge.warn) { border-left:1px solid var(--line); }
.order:has(.badge.done) { border-left:1px solid var(--line); }
.order:has(.badge.danger) { border-left:1px solid var(--line); }
.order:has(.badge.desktop) { border-left:1px solid var(--line); }
.order-tag { color:var(--ink); }
.ledger strong { color:var(--ink); }
.badge { border-radius:999px; color:var(--brand); background:var(--brand-soft); }
.badge.warn { color:#9f5c12; background:#fff1dd; }
.badge.done { color:#237054; background:#e6f3ed; }
.badge.danger { color:#af4141; background:#fbe9e9; }
.badge.desktop { color:#66568f; background:#f0edf7; }
.module-grid { grid-template-columns:1fr; gap:9px; }
.module { grid-column:auto; min-height:82px; padding:14px 15px; border:1px solid var(--line); border-radius:15px; display:grid; grid-template-columns:44px 1fr 20px; grid-template-rows:auto auto; column-gap:12px; align-items:center; background:#fff; box-shadow:none; }
.module.wide { grid-column:auto; min-height:82px; padding:14px 15px; border:1px solid var(--line); border-radius:15px; display:grid; grid-template-columns:44px 1fr 20px; grid-template-rows:auto auto; column-gap:12px; align-items:center; background:#fff; box-shadow:none; }
.module:before { display:none; }
.module:after { content:'›'; grid-column:3; grid-row:1/3; color:#9ba8a6; font-size:24px; }
.module-icon { grid-column:1; grid-row:1/3; width:44px; height:44px; border-radius:14px; color:var(--brand); background:var(--brand-soft); }
.module:nth-child(2) .module-icon { grid-column:1; grid-row:1/3; width:44px; height:44px; border-radius:14px; color:var(--brand); background:var(--brand-soft); }
.module:nth-child(3) .module-icon { grid-column:1; grid-row:1/3; width:44px; height:44px; border-radius:14px; color:var(--brand); background:var(--brand-soft); }
.module strong { grid-column:2; grid-row:1; margin:0; }
.module small { grid-column:2; grid-row:2; margin:2px 0 0; }
.search { margin:0 0 12px; padding:0; border:0; background:transparent; }
.search input { border-color:var(--line-strong); border-radius:11px; background-color:#fff; }
.search select { border-color:var(--line-strong); border-radius:11px; background-color:#fff; }
.field input { border-color:var(--line-strong); border-radius:11px; background-color:#fff; }
.field select { border-color:var(--line-strong); border-radius:11px; background-color:#fff; }
.field textarea { border-color:var(--line-strong); border-radius:11px; background-color:#fff; }
.readonly-note { border:0; border-radius:12px; color:var(--ink-2); background:var(--brand-soft); }
.readonly-note b { color:var(--brand-strong); }
.risk-row { border:0; border-radius:12px; background:#f3f6f5; }
.btn { border-radius:11px; }
.btn.primary { background:var(--brand); box-shadow:none; }
.btn.ghost { background:#edf2f1; }
.profile { color:#fff; background:linear-gradient(145deg,#28766f,#398e84); }
.profile p { color:rgba(255,255,255,.7); }
.avatar { color:#fff; }
.menu { border:1px solid var(--line); }
.nav { bottom:0; width:min(100%,430px); height:calc(var(--nav) + env(safe-area-inset-bottom)); padding:6px 6px env(safe-area-inset-bottom); border:0; border-top:1px solid var(--line); border-radius:0; background:rgba(255,255,255,.98); box-shadow:0 -6px 20px rgba(28,58,54,.06); }
.nav button { min-height:58px; border-radius:12px; color:#84918f; }
.nav button i { width:24px; height:24px; margin:0; border:0; border-radius:0; color:currentColor; background:transparent; box-shadow:none; }
.nav button.primary i { width:24px; height:24px; margin:0; border:0; border-radius:0; color:currentColor; background:transparent; box-shadow:none; }
.nav button.primary span { margin:0; }
.nav button.active:before { display:none; }
.nav .dot { top:2px; }
.nav button { transition:color .16s ease,transform .16s ease; }
.nav button i { transition:color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease; }
.nav button.active { color:#1f292d; background:transparent; font-weight:800; }
.nav button.active i { width:34px; height:30px; margin:-3px 0 0; border-radius:10px; color:#249fce; background:#e5f5fb; box-shadow:0 2px 8px rgba(36,159,206,.14); transform:translateY(-1px); }
.nav button.primary.active i { width:34px; height:30px; margin:-3px 0 0; border-radius:10px; color:#249fce; background:#e5f5fb; box-shadow:0 2px 8px rgba(36,159,206,.14); transform:translateY(-1px); }
.nav button.active svg { width:22px; height:22px; color:#249fce; stroke-width:2.25; }
.order-detail-tabs { position:sticky; top:calc(58px + env(safe-area-inset-top,0px) + 1px); z-index:3; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.order-detail-tabs button { white-space:nowrap; }
.order-detail-body { min-height:280px; }
.home-module-grid { display:grid; }
.home-module-tile { min-width:0; padding:0; border:0; background:transparent; text-align:center; }
.home-module-tile .module-icon { width:66px; height:66px; margin:0 auto; border:1px solid #cfe0eb; border-radius:16px; color:#2378bd; background:#fff; box-shadow:0 4px 12px rgba(35,120,189,.08); }
.home-module-tile .module-icon svg { width:37px; height:37px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.home-module-tile .module-icon .accent-green { stroke:#39b66d; }
.home-module-tile .module-icon .accent-orange { stroke:#f3a51f; }
.home-module-tile strong { display:block; margin-top:9px; color:#2e3b40; font-size:12px; font-weight:700; line-height:1.35; white-space:nowrap; }
.home-module-tile:active .module-icon { border-color:#78b9df; background:#f4fbfe; transform:scale(.96); }
.bottom-workbench-svg { transform-origin:center; }
.bottom-home-svg path { transform-box:view-box; transform-origin:512px 506.5px; transform:translateY(5px) scale(1.03,1.1); }
.bottom-home-svg path:last-child { fill:#d81e06; }
#bottomWorkbenchIcon path { stroke-width:28px; stroke-linecap:round; stroke-linejoin:round; }
#bottomWorkbenchIcon path:first-child { fill:#D60213; stroke:#D60213; }
#bottomWorkbenchIcon path:nth-child(2) { stroke:#2c2c2c; transform:translateY(-32px); }
#bottomWorkbenchIcon path:nth-child(3) { fill:#2c2c2c; stroke:#2c2c2c; transform-box:fill-box; transform-origin:center; transform:translateY(32px) scale(1.05); }
.login-screen { background:linear-gradient(160deg,#e8f3f1,#f7f9f8 52%); }
.login-mark { border-radius:18px; background:linear-gradient(145deg,#0f5d56,#24867c); }
.login-title { text-align:left; }
.login-copy { text-align:left; }
.login-card { border-radius:18px; }
.state-icon { border-radius:15px; color:var(--brand); background:var(--brand-soft); }
.bottom-mine-svg { overflow:visible; }
.bottom-mine-svg path:not(:last-child) { fill:#000; stroke:#000; stroke-width:16px; stroke-linecap:round; stroke-linejoin:round; }
.bottom-mine-svg path:nth-child(2) { transform-box:fill-box; transform-origin:center top; transform:scaleY(1.06); }
.bottom-mine-svg path:last-child { transform-box:fill-box; transform-origin:center; transform:scaleX(1.35); }
#technicalMaterialsArchiveIcon path:nth-child(-n+2) { stroke:#000; stroke-width:12px; stroke-linecap:round; stroke-linejoin:round; }
.bottom-home-svg path:nth-child(-n+2) { fill:none; stroke:#2c2c2c; stroke-width:66.316px; stroke-linecap:round; stroke-linejoin:round; }
.bottom-home-svg { position:relative; top:1.8px; transform:scale(1.1); transform-origin:center; }
.bottom-task-svg { position:relative; top:1.1px; }
.bottom-workbench-svg { position:relative; top:-2px; transform:scale(1.15); }
#bottomWorkbenchIcon path:nth-child(2) { stroke-width:22px; }
.technical-materials-svg { position:relative; top:-.1px; }
.bottom-mine-svg { position:relative; top:-.4px; }
.home-module-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px 6px; padding:8px 2px; }
#work .home-module-tile:first-child .module-icon svg path:nth-child(2) { stroke:#d81e06; stroke-width:40px; stroke-linecap:round; stroke-linejoin:round; }
#work .home-module-tile:first-child .module-icon svg path:nth-child(3) { stroke:#000; stroke-width:30px; stroke-linecap:round; stroke-linejoin:round; }
#work .home-technical-materials-svg path:nth-child(-n+2) { stroke:#000; stroke-width:18px; stroke-linecap:round; stroke-linejoin:round; }
.account-info-menu-icon { flex:0 0 auto; width:27px; height:27px; stroke:none; }
.permission-menu-icon { flex:0 0 auto; width:27px; height:27px; stroke:none; }
.avatar-menu-icon { flex:0 0 auto; width:27px; height:27px; stroke:none; }
.password-menu-icon { flex:0 0 auto; width:27px; height:27px; stroke:none; }
.about-menu-icon { flex:0 0 auto; width:27px; height:27px; stroke:none; }
.logout-menu-icon { flex:0 0 auto; stroke:none; }
.account-info-row { justify-content:flex-start!important; gap:10px; }
.account-info-row span { font-weight:650; }
.account-info-row b { margin-left:auto; }
.password-menu-icon path:first-child { stroke:#CD3333; stroke-width:14px; stroke-linecap:round; stroke-linejoin:round; }
.password-menu-icon path:nth-child(2) { stroke:#000; stroke-width:14px; stroke-linecap:round; stroke-linejoin:round; transform-box:view-box; transform-origin:512px 512px; transform:scale(.92); }
.logout-menu-icon { width:30px; height:30px; margin:-1.5px; }
.logout-menu-icon path:first-child { stroke:#1A1A1A; stroke-width:14px; stroke-linecap:round; stroke-linejoin:round; }
.logout-menu-icon path:nth-child(n+2) { stroke:#d81e06; stroke-width:14px; stroke-linecap:round; stroke-linejoin:round; }
.planning-empty-icon { display:block; width:72px; height:72px; margin:0 auto 14px; stroke:none; }
.report-entry-icon svg { width:35px; height:35px; stroke:none; }
.report-only-entry { grid-template-columns:44px 1fr 44px!important; grid-template-rows:1fr!important; min-height:74px!important; }
.report-only-entry:after { display:none!important; }
.report-only-entry strong { grid-column:2!important; grid-row:1!important; margin:0!important; }
.report-add-icon { grid-column:3!important; grid-row:1!important; }
.report-add-icon svg { width:32px; height:32px; stroke:none; }
.report-side-icon { grid-column:1; grid-row:1; display:grid; place-items:center; width:44px; height:44px; }
.report-side-icon svg { width:35px; height:35px; stroke:none; }
.report-side-icon svg path:nth-child(n+3) { transform-box:view-box; transform-origin:340px 510px; transform:scale(.88); }
.topbar { background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 65%),linear-gradient(115deg,#368e89 0%,#287c7e 55%,#236c73 100%); backdrop-filter:blur(16px) saturate(125%); -webkit-backdrop-filter:blur(16px) saturate(125%); color:#f7ffff; border-bottom:1px solid rgba(20,72,77,.18); box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 2px 5px rgba(26,71,78,.09); }
.sheet-box .sheet-head { background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 65%),linear-gradient(115deg,#368e89 0%,#287c7e 55%,#236c73 100%); backdrop-filter:blur(16px) saturate(125%); -webkit-backdrop-filter:blur(16px) saturate(125%); color:#f7ffff; border-bottom:1px solid rgba(20,72,77,.18); box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 2px 5px rgba(26,71,78,.09); }
.dialog .modal-head { background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 65%),linear-gradient(115deg,#368e89 0%,#287c7e 55%,#236c73 100%); backdrop-filter:blur(16px) saturate(125%); -webkit-backdrop-filter:blur(16px) saturate(125%); color:#f7ffff; border-bottom:1px solid rgba(20,72,77,.18); box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 2px 5px rgba(26,71,78,.09); }
.topbar { position:sticky; top:0; height:calc(58px + env(safe-area-inset-top,0px) + 1px); min-height:calc(58px + env(safe-area-inset-top,0px) + 1px); padding:env(safe-area-inset-top,0px) 16px 0; }
.topbar h1 { position:absolute; top:env(safe-area-inset-top,0px); left:88px; right:88px; height:58px; display:grid; place-items:center; text-align:center; pointer-events:none; font-size:18px; font-weight:600; letter-spacing:.04em; color:#f7ffff; text-shadow:0 1px 1px rgba(10,54,59,.12); }
.topbar .back { transform:scale(.81); transform-origin:left center; background:transparent; color:#fff; border:0; box-shadow:none; display:flex; align-items:center; justify-content:flex-start; gap:3px; width:auto; min-width:64px; height:28px; min-height:28px; padding:0 4px; border-radius:10px; font-size:14px; font-weight:600; }
.topbar .back[hidden] { display:none!important; }
.topbar .back-icon { display:grid; place-items:center; width:25px; height:25px; flex:0 0 25px; }
.topbar .back-icon svg { display:block; width:25px; height:25px; stroke:none; transform:scale(.9) scaleY(.85); transform-origin:center; }
.topbar .back-text { font-style:normal; font-weight:600; white-space:nowrap; }
.topbar .back-icon { position:relative; left:-2px; }
.topbar .back-text { position:relative; left:-2px; }
.topbar .back:active { background:rgba(255,255,255,.12); box-shadow:none; }
.repair-filter-tabs { min-height:36px; height:36px; }
.repair-filter-tabs button { min-height:36px; height:36px; padding:0 4px; border:0; background:transparent; box-shadow:none; line-height:36px; }
.repair-flat-page { min-height:calc(100vh - 58px); margin:-12px -14px 0; padding-bottom:8px; background:#edf8fc; }
.repair-flat-page .repair-filter-tabs { margin:0; padding:0 14px; background:#fff; }
.order-detail-tabs { margin:0; padding:0 14px; background:#fff; }
.repair-flat-page .search { display:grid; grid-template-columns:minmax(0,1fr) 116px; align-items:center; gap:8px; height:48px; margin:0 0 5px; padding:9px 14px; background:#fff; overflow:visible; }
.repair-flat-page .repair-search-wrap { position:relative; min-width:0; }
.repair-flat-page .repair-select-wrap { position:relative; min-width:0; }
.repair-flat-page .search input { width:100%; height:30px; min-height:30px; margin:0; padding:0 9px; border:1px solid #e4e8ee; border-radius:4px; background:#fff; color:#405b64; font-size:11px; line-height:28px; outline:none; box-sizing:border-box; transition:border-color .15s,box-shadow .15s; }
.repair-flat-page .search select { width:100%; height:30px; min-height:30px; margin:0; padding:0 9px; border:1px solid #e4e8ee; border-radius:4px; background:#fff; color:#405b64; font-size:11px; line-height:28px; outline:none; box-sizing:border-box; transition:border-color .15s,box-shadow .15s; }
.report-form .field input { width:100%; height:30px; min-height:30px; margin:0; padding:0 9px; border:1px solid #e4e8ee; border-radius:4px; background:#fff; color:#405b64; font-size:11px; line-height:28px; outline:none; box-sizing:border-box; transition:border-color .15s,box-shadow .15s; }
.report-form .field select { width:100%; height:30px; min-height:30px; margin:0; padding:0 9px; border:1px solid #e4e8ee; border-radius:4px; background:#fff; color:#405b64; font-size:11px; line-height:28px; outline:none; box-sizing:border-box; transition:border-color .15s,box-shadow .15s; }
.repair-flat-page .search select { appearance:none; -webkit-appearance:none; padding-right:28px; }
.report-form #rUrgency { appearance:none; -webkit-appearance:none; padding-right:28px; }
.report-form .report-select-wrap { position:relative; min-width:0; }
.report-form .report-tag-wrap { position:relative; min-width:0; }
.report-form .part-name-wrap { position:relative; min-width:0; }
.repair-flat-page .repair-select-wrap:after { content:''; position:absolute; top:50%; right:10px; width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-top:6px solid #6f8087; transform:translateY(-35%); pointer-events:none; }
.report-form .report-select-wrap:after { content:''; position:absolute; top:50%; right:10px; width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-top:6px solid #6f8087; transform:translateY(-35%); pointer-events:none; }
.repair-flat-page .search input::placeholder { color:#9aadb3; opacity:1; }
.report-form .field input::placeholder { color:#9aadb3; opacity:1; }
.repair-flat-page .search select:has(option[value=""]:checked) { color:#9aadb3; }
.repair-flat-page .search select option { color:#405b64; }
.report-form .field select option { color:#405b64; }
.repair-flat-page .search input:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.repair-flat-page .search select:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.report-form .field input:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.report-form .field select:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.repair-flat-page .repair-search-dropdown { position:absolute; top:33px; left:0; right:0; z-index:90; display:none; max-height:210px; overflow-y:auto; touch-action:pan-y; overscroll-behavior:contain; border:1px solid #e0e8eb; border-radius:6px; background:#fff; box-shadow:0 6px 16px rgba(45,73,82,.12); }
.report-form .repair-search-dropdown { position:absolute; top:33px; left:0; right:0; z-index:90; display:none; max-height:210px; overflow-y:auto; touch-action:pan-y; overscroll-behavior:contain; border:1px solid #e0e8eb; border-radius:6px; background:#fff; box-shadow:0 6px 16px rgba(45,73,82,.12); }
#action .report-permission-denied strong { color:#9ca3af; }
#action .report-permission-denied .report-add-icon svg path { fill:#9ca3af; }
.sheet-box { border:1px solid #68737d; border-radius:8px; background:#f5f9fd; box-shadow:0 2px 5px rgba(35,45,55,.12); }
.dialog { border:1px solid #68737d; border-radius:8px; background:#f5f9fd; box-shadow:0 2px 5px rgba(35,45,55,.12); }
.sheet-box { padding:0; overflow:auto; }
.sheet-box:before { display:none; }
#sheetBody { padding:14px 14px calc(14px + env(safe-area-inset-bottom)); }
#sheetBody:has(.permission-state) { padding:0; }
.dialog { width:min(100%,300px); padding:0; overflow:auto; max-height:calc(100dvh - 40px); }
.dialog .modal-head { position:sticky; z-index:1; }
.dialog .dialog-icon { flex:0 0 26px; width:26px; height:26px; margin:0; background:transparent; border-radius:0; }
.dialog-icon svg { display:block; width:100%; height:100%; overflow:visible; }
.dialog .dialog-icon path { stroke-width:24; stroke-linejoin:round; }
.dialog .dialog-icon path:first-child { stroke:#000; }
.dialog .dialog-icon path:last-child { stroke:#d81e06; }
.dialog p { font-size:13px; line-height:1.6; color:#7d8d9c; margin:0; }
.dialog .dialog-actions { margin-top:0; justify-content:center; }
.dialog .dialog-actions .btn { flex:1; min-width:0; min-height:38px; padding:7px 18px; font-size:14px; font-weight:600; }
.dialog .dialog-actions:has(.btn[hidden]) .btn:not([hidden]) { flex:0 1 128px; }
.sheet-box .btn { border:1px solid #b8c0c8; border-radius:6px; box-shadow:0 2px 5px rgba(35,45,55,.12); transition:background .15s,box-shadow .15s; }
.dialog .btn { border:1px solid #b8c0c8; border-radius:6px; box-shadow:0 2px 5px rgba(35,45,55,.12); transition:background .15s,box-shadow .15s; }
.sheet-box .btn.primary { background:#edf8f7; color:#287b80; }
.dialog .btn.primary { background:#edf8f7; color:#287b80; }
.sheet-box .btn.ghost { background:#f5f7f8; color:#667580; }
.dialog .btn.ghost { background:#f5f7f8; color:#667580; }
.sheet-box .btn.reject { background:#fff1f1; color:#b54c4c; }
@media(hover:hover) {
  .sheet-box .btn.primary:hover { background:#dff2f0; }
  .dialog .btn.primary:hover { background:#dff2f0; }
}
.sheet-box .btn:active { box-shadow:none; }
.dialog .btn:active { box-shadow:none; }
.sheet-box .btn.primary:active { background:#dff2f0; }
.dialog .btn.primary:active { background:#dff2f0; }
.sheet-box .btn:focus-visible { outline:2px solid #82b8ec; outline-offset:2px; }
.dialog button:focus-visible { outline:2px solid #82b8ec; outline-offset:2px; }
.sheet:has(.permission-state) { align-items:center; padding:20px 18px; padding-top:max(20px,env(safe-area-inset-top)); padding-bottom:max(20px,env(safe-area-inset-bottom)); }
.sheet-box:has(.permission-state) { width:min(100%,300px); max-height:calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); padding:0; background:#f5f9fd; border:1px solid #68737d; border-radius:8px; box-shadow:0 2px 5px rgba(35,45,55,.12); overflow:auto; }
.sheet-box:has(.permission-state):before { display:none; }
.sheet-box .sheet-head { top:0; margin:0; padding:0 10px 0 16px; height:44px; min-height:44px; display:grid; grid-template-columns:minmax(0,1fr) 36px; align-items:center; }
.dialog .modal-head { top:0; margin:0; padding:0 10px 0 16px; height:44px; min-height:44px; display:grid; grid-template-columns:minmax(0,1fr) 36px; align-items:center; }
.sheet-box .sheet-head h2 { grid-column:1; grid-row:1; text-align:left; font-size:17px; font-weight:600; line-height:24px; margin:0; color:#f7ffff; letter-spacing:.035em; text-shadow:0 1px 1px rgba(10,54,59,.12); }
.dialog .modal-head h2 { grid-column:1; grid-row:1; text-align:left; font-size:17px; font-weight:600; line-height:24px; margin:0; color:#f7ffff; letter-spacing:.035em; text-shadow:0 1px 1px rgba(10,54,59,.12); }
.sheet-box .sheet-head .x { grid-column:2; grid-row:1; display:grid; place-items:center; width:36px; height:36px; min-width:36px; min-height:36px; padding:0; line-height:1; background:transparent; color:#fff; border:0; border-radius:8px; font-size:25px; box-shadow:none; }
.dialog .modal-head .x { grid-column:2; grid-row:1; display:grid; place-items:center; width:36px; height:36px; min-width:36px; min-height:36px; padding:0; line-height:1; background:transparent; color:#fff; border:0; border-radius:8px; font-size:25px; box-shadow:none; }
.sheet-box .sheet-head .x:active { background:rgba(255,255,255,.14); }
.dialog .modal-head .x:active { background:rgba(255,255,255,.14); }
.topbar .back { transition:background-color .15s ease; }
.sheet-box .sheet-head .x { transition:background-color .15s ease; }
.dialog .modal-head .x { transition:background-color .15s ease; }
.topbar .back:focus-visible { outline:2px solid rgba(235,255,255,.85); outline-offset:2px; }
.sheet-box .sheet-head .x:focus-visible { outline:2px solid rgba(235,255,255,.85); outline-offset:2px; }
.dialog .modal-head .x:focus-visible { outline:2px solid rgba(235,255,255,.85); outline-offset:2px; }
.permission-state { min-height:0; padding:14px 16px; text-align:center; }
.sheet-box .sheet-head .x svg { display:block; width:26px; height:26px; }
.dialog .modal-head .x svg { display:block; width:26px; height:26px; }
.permission-state-heading { display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:10px; }
.permission-state .state-icon { flex:0 0 26px; width:26px; height:26px; margin:0; background:transparent; border-radius:0; }
.permission-state .state-icon svg { display:block; width:100%; height:100%; overflow:visible; }
.permission-state .state-icon path { stroke-width:24; stroke-linejoin:round; }
.permission-state .state-icon path:first-child { stroke:#000; }
.permission-state .state-icon path:last-child { stroke:#d81e06; }
.permission-state h3 { font-size:18px; font-weight:600; color:#283b4e; margin:0; }
.permission-state p { max-width:290px; min-height:3.2em; color:#7d8d9c; font-size:13px; line-height:1.6; text-align:center; margin:0 auto 14px; }
.permission-state .btn.primary { min-height:38px; min-width:128px; padding:7px 18px; border:1px solid #b8c0c8; border-radius:6px; background:#edf8f7; color:#287b80; font-size:14px; font-weight:600; box-shadow:0 2px 5px rgba(35,45,55,.12); transition:background .15s,border-color .15s,box-shadow .15s; }
.order-current-action .btn.primary { min-height:38px; min-width:128px; padding:7px 18px; border:1px solid #b8c0c8; border-radius:6px; background:#edf8f7; color:#287b80; font-size:14px; font-weight:600; box-shadow:0 2px 5px rgba(35,45,55,.12); transition:background .15s,border-color .15s,box-shadow .15s; }
#orderDetailBody .detail-actions .btn.primary { min-height:38px; min-width:128px; padding:7px 18px; border:1px solid #b8c0c8; border-radius:6px; background:#edf8f7; color:#287b80; font-size:14px; font-weight:600; box-shadow:0 2px 5px rgba(35,45,55,.12); transition:background .15s,border-color .15s,box-shadow .15s; }
.ledger-update-body .detail-actions .btn.primary { min-height:38px; min-width:128px; padding:7px 18px; border:1px solid #b8c0c8; border-radius:6px; background:#edf8f7; color:#287b80; font-size:14px; font-weight:600; box-shadow:0 2px 5px rgba(35,45,55,.12); transition:background .15s,border-color .15s,box-shadow .15s; }
@media(hover:hover) {
  .permission-state .btn.primary:hover { background:#dff2f0; }
  .order-current-action .btn.primary:hover { background:#dff2f0; }
  #orderDetailBody .detail-actions .btn.primary:hover { background:#dff2f0; }
  .ledger-update-body .detail-actions .btn.primary:hover { background:#dff2f0; }
}
.permission-state .btn.primary:active { background:#dff2f0; box-shadow:none; }
.order-current-action .btn.primary:active { background:#dff2f0; box-shadow:none; }
#orderDetailBody .detail-actions .btn.primary:active { background:#dff2f0; box-shadow:none; }
.ledger-update-body .detail-actions .btn.primary:active { background:#dff2f0; box-shadow:none; }
.permission-state .btn:focus-visible { outline:2px solid #82b8ec; outline-offset:2px; }
.sheet-box:has(.permission-state) .x:focus-visible { outline:2px solid #82b8ec; outline-offset:2px; }
.work-welcome { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse at 88% 0%,rgba(161,229,214,.22),transparent 58%),linear-gradient(115deg,#226f6b 0%,#2d847d 55%,#449b8e 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 5px 14px rgba(33,103,96,.12); }
#mine .profile { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse at 88% 0%,rgba(161,229,214,.22),transparent 58%),linear-gradient(115deg,#226f6b 0%,#2d847d 55%,#449b8e 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 5px 14px rgba(33,103,96,.12); }
.work-welcome { margin-bottom:16px; }
.work-welcome:before { content:''; position:absolute; z-index:-1; pointer-events:none; width:210px; height:210px; right:-80px; top:-120px; border:1px solid rgba(221,255,247,.18); border-radius:50%; box-shadow:0 0 0 26px rgba(221,255,247,.045),0 0 0 54px rgba(221,255,247,.03); }
#mine .profile:before { content:''; position:absolute; z-index:-1; pointer-events:none; width:210px; height:210px; right:-80px; top:-120px; border:1px solid rgba(221,255,247,.18); border-radius:50%; box-shadow:0 0 0 26px rgba(221,255,247,.045),0 0 0 54px rgba(221,255,247,.03); }
.work-welcome:after { content:''; position:absolute; z-index:-1; pointer-events:none; inset:0; background:linear-gradient(155deg,rgba(255,255,255,.075),transparent 45%); }
#mine .profile:after { content:''; position:absolute; z-index:-1; pointer-events:none; inset:0; background:linear-gradient(155deg,rgba(255,255,255,.075),transparent 45%); }
.work-welcome>div:last-child { min-width:0; }
.work-welcome h2 { font-family:'幼圆','YouYuan','Yuanti SC','Hiragino Maru Gothic ProN','PingFang SC','Microsoft YaHei',sans-serif; font-size:18px; font-weight:700; line-height:1.45; overflow-wrap:anywhere; }
.permission-state.loading-state { min-height:158px; display:flex; align-items:center; justify-content:center; gap:12px; }
.loading-state .loading-icon { display:block; flex:0 0 30px; width:30px; height:30px; }
.loading-state .loading-icon svg { display:block; width:100%; height:100%; animation:loading-state-spin 1.2s linear infinite; }
.loading-state h3 { font-size:16px; }
@keyframes loading-state-spin{to{transform:rotate(-360deg)}}
@media(prefers-reduced-motion:reduce) {
  .loading-state .loading-icon svg { animation:none; }
}
.avatar { border-radius:10px; background:rgba(255,255,255,.07); }
.avatar .default-user-avatar { display:block; width:92%; height:92%; }
.repair-search-empty { padding:12px; color:#9aadb3; font-size:12px; }
.repair-flat-page .flat-context { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:36px; padding:8px 14px; background:#fff; border-bottom:1px solid #e3e8ea; color:#9aadb3; font-size:11px; }
.repair-flat-page .flat-context strong { color:#46535f; font-size:12px; font-weight:500; }
.repair-flat-page .flat-context span { text-align:right; }
.repair-flat-page.ledger-flat-page .search { grid-template-columns:minmax(0,1fr) minmax(0,.65fr) minmax(0,.65fr); gap:6px; margin-bottom:5px; }
.ledger-flat-page .search input { min-width:0; }
.ledger-flat-page .repair-row-content.ledger-row-details { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.72fr); align-items:baseline; column-gap:12px; row-gap:2px; }
.ledger-row-details>p { min-width:0; overflow-wrap:anywhere; line-height:1.6; }
.ledger-row-details>.meta { min-width:0; overflow-wrap:anywhere; line-height:1.6; }
.ledger-row-details>.ledger-detail-right { text-align:right; }
.repair-row-content.update-detail-grid { --row-text-size:11px; --row-text-weight:600; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:baseline; column-gap:12px; row-gap:2px; }
.update-detail-grid>p { min-width:0; line-height:1.6; overflow-wrap:anywhere; }
.update-detail-grid>.meta { min-width:0; line-height:1.6; overflow-wrap:anywhere; }
.update-detail-grid>.update-detail-right { text-align:right; }
.task-flat-page { margin-top:-10px; }
.repair-flat-page.task-flat-page .repair-filter-tabs { margin-bottom:5px; }
.task-flat-page .repair-filter-tabs small { font:inherit; color:inherit; }
.repair-flat-page .repair-search-option { display:flex; width:100%; align-items:center; gap:8px; padding:8px 10px; border:0; border-bottom:1px solid #eef3f4; border-radius:0; background:#fff; color:#405b64; font-size:11px; text-align:left; }
.report-form .repair-search-option { display:flex; width:100%; align-items:center; gap:8px; padding:8px 10px; border:0; border-bottom:1px solid #eef3f4; border-radius:0; background:#fff; color:#405b64; font-size:11px; text-align:left; }
.repair-flat-page .repair-search-option:last-child { border-bottom:0; }
.report-form .repair-search-option:last-child { border-bottom:0; }
.repair-flat-page .repair-search-option:active { background:#edf8f7; }
.report-form .repair-search-option:active { background:#edf8f7; }
.repair-flat-page .repair-search-option strong { color:#267b80; font-weight:600; }
.report-form .repair-search-option strong { color:#267b80; font-weight:600; }
.repair-flat-page .repair-search-option span { min-width:0; margin-left:auto; overflow:hidden; color:#8a9da3; font-size:10px; white-space:nowrap; text-overflow:ellipsis; }
.report-form .repair-search-option span { min-width:0; margin-left:auto; overflow:hidden; color:#8a9da3; font-size:10px; white-space:nowrap; text-overflow:ellipsis; }
.repair-flat-page .list { display:block; background:transparent; }
.repair-flat-page 
.repair-flat-page .repair-filter-tabs button { position:relative; border-radius:0; background:transparent!important; box-shadow:none!important; }
.repair-flat-page .repair-filter-tabs button.active { position:relative; border-radius:0; background:transparent!important; box-shadow:none!important; }
.order-detail-tabs button { position:relative; border-radius:0; background:transparent!important; box-shadow:none!important; }
.order-detail-tabs button.active { position:relative; border-radius:0; background:transparent!important; box-shadow:none!important; }
.repair-flat-page .repair-filter-tabs button.active:after { content:''; display:block!important; position:absolute; left:25%; right:25%; bottom:2px; height:2px; background:#58b9de; }
.order-detail-tabs button.active:after { content:''; display:block!important; position:absolute; left:25%; right:25%; bottom:2px; height:2px; background:#58b9de; }
.repair-flat-page .repair-filter-tabs { border-top:1px solid #e3e8ea!important; border-right:0!important; border-bottom:1px solid #e3e8ea!important; border-left:0!important; border-radius:0!important; box-shadow:0 -1px 1px rgba(20,30,34,.015),0 1px 1px rgba(20,30,34,.015)!important; }
.repair-flat-page .search { border-right:0!important; border-bottom:1px solid #e3e8ea!important; border-left:0!important; border-radius:0!important; }
.repair-flat-page .repair-order { border-top:1px solid #e3e8ea!important; border-right:0!important; border-bottom:1px solid #e3e8ea!important; border-left:0!important; border-radius:0!important; box-shadow:0 -1px 1px rgba(20,30,34,.015),0 1px 1px rgba(20,30,34,.015)!important; }
.repair-flat-page .empty { border-top:1px solid #e3e8ea!important; border-right:0!important; border-bottom:1px solid #e3e8ea!important; border-left:0!important; border-radius:0!important; box-shadow:0 -1px 1px rgba(20,30,34,.015),0 1px 1px rgba(20,30,34,.015)!important; }
.order-detail-tabs { border-top:1px solid #e3e8ea!important; border-right:0!important; border-bottom:1px solid #e3e8ea!important; border-left:0!important; border-radius:0!important; box-shadow:0 -1px 1px rgba(20,30,34,.015),0 1px 1px rgba(20,30,34,.015)!important; }
.repair-flat-page .repair-filter-tabs { border-top-color:rgba(35,45,49,.55)!important; }
.order-detail-tabs { border-top-color:rgba(35,45,49,.55)!important; }
.order-detail-tabs.repair-filter-tabs { margin:0 -14px 5px; }
.repair-flat-page .search { border-top:0!important; box-shadow:0 1px 1px rgba(20,30,34,.015)!important; }
.repair-flat-page .repair-order { display:block; position:relative; min-height:100px; margin:0 0 5px; padding:15px 14px; background:#fff; }
.repair-flat-page .repair-order:last-child { margin-bottom:0; }
.repair-flat-page .repair-order:active { background:#fafcfd; }
.repair-flat-page .repair-order p { margin:0; font-size:var(--row-text-size,12px); line-height:1.6; }
.repair-flat-page .repair-order .order-tag { font-size:15px; font-weight:700; }
.repair-flat-page .repair-order .order-id { font-size:11px; }
.repair-flat-page .repair-order .meta { font-size:11px; }
@media(max-width:359px) {

}
.repair-row-header { display:flex; align-items:flex-start; gap:12px; }
.repair-row-title { flex:1; min-width:0; line-height:1.45; overflow-wrap:anywhere; }
.repair-row-title .order-id { display:inline; margin:0 0 0 4px; font-weight:400; }
.repair-row-header .repair-row-status { flex-shrink:0; }
.repair-row-content { margin-top:8px; padding-top:12px; border-top:1px solid #e2e7ea; box-shadow:inset 0 2px 2px -2px rgba(20,30,34,.16); }
.repair-row-content:not(.repair-detail-grid):not(.ledger-row-details):not(.update-detail-grid) { display:flex; align-items:flex-start; gap:12px; }
.repair-row-content.repair-detail-grid { --row-text-size:11px; --row-text-weight:600; display:grid; font-size:var(--row-text-size); grid-template-columns:minmax(0,1fr) 7em; align-items:baseline; column-gap:12px; row-gap:2px; }
.repair-detail-grid>p { min-width:0; overflow-wrap:anywhere; }
.repair-detail-grid>.meta { min-width:0; overflow-wrap:anywhere; }
.repair-detail-grid>.meta { line-height:1.6; }
.repair-detail-grid>.repair-handler-column { display:grid; grid-template-columns:3em 4em; align-items:baseline; text-align:left; }
.repair-detail-grid .repair-handler-label { white-space:nowrap; font-weight:400; }
.repair-detail-grid>.repair-handler-column>span:last-child { text-align:right; }
.repair-fault-column { flex:1; min-width:0; }
.repair-row-content .meta { overflow-wrap:anywhere; }
.repair-row-content:not(.repair-detail-grid)>.repair-handler-column { flex:0 0 auto; max-width:42%; text-align:right; }
.repair-row-arrow { color:var(--brand); }
.repair-row-status { position:relative; display:flex; align-items:center; justify-content:flex-end; gap:6px; padding-right:16px; }
.repair-row-status .badge { margin:0; }
.repair-row-status .repair-row-arrow { position:absolute; right:2px; top:50%; display:block; width:7px; height:7px; margin:0; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:translateY(-50%) rotate(45deg); font-size:0; line-height:0; }
.repair-flat-page .repair-requester { color:#46535f; font-family:'Microsoft YaHei','PingFang SC',sans-serif; }
.repair-flat-page .repair-row-content p { color:#46535f; font-family:'Microsoft YaHei','PingFang SC',sans-serif; }
.repair-flat-page .repair-row-content p { font-weight:var(--row-text-weight,500); }
.repair-flat-page .repair-requester { font-weight:600; }
.badge.repair-flow-processing { color:#286ea8; background:#e5f1fb!important; }
.badge.repair-flow-observing { color:#9a6a08; background:#fff3cd!important; }
.badge.repair-flow-acceptance { color:#b86111; background:#ffead5!important; }
.badge.repair-flow-reviewing { color:#7450a5; background:#efe7fa!important; }
.badge.repair-flow-rejected { color:#b94242; background:#fde8e8!important; }
.badge.repair-flow-completed { color:#287a4a; background:#def3e6!important; }
.repair-flat-page .repair-order .repair-row-status .badge { align-self:center; display:inline-flex; align-items:center; justify-content:center; gap:5px; min-width:62px; height:24px; min-height:24px; padding:0 9px; border:1px solid currentColor; border-color:color-mix(in srgb,currentColor 9%,transparent); border-radius:10px; font-size:10px; font-weight:600; line-height:1; letter-spacing:.02em; box-shadow:none; }
.repair-flat-page .repair-row-status .badge:before { flex:0 0 5px; width:5px; height:5px; margin:0; border-radius:50%; background:currentColor; opacity:.7; }
#sub.page:has(>.report-form) { padding:0; background:#edf8fc; }
.disposal-form .field input[readonly] { background:#f6f8fa; color:#8996a1; }
.disposal-form #wfWorkType:invalid { color:#9aadb3; }
.disposal-form #wfWorkType option { color:#405b64; }
.disposal-form #wfWorkType option[value=""] { color:#9aadb3; }
.disposal-form .field select { appearance:none; -webkit-appearance:none; padding-right:28px; }
.disposal-form .report-section { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:10px; align-items:start; }
.disposal-form #wfFaultFields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:10px; align-items:start; }
.disposal-form #wfParts { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:10px; align-items:start; }
.disposal-form #wfWhole { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:10px; align-items:start; }
.disposal-form .part-entry { display:grid; column-gap:10px; }
.disposal-form .report-section-head { grid-column:1/-1; }
.disposal-form #wfFaultFields { grid-column:1/-1; }
.disposal-form #wfParts { grid-column:1/-1; }
.disposal-form #wfWhole { grid-column:1/-1; }
.disposal-form .part-entry { grid-column:1/-1; }
.disposal-form .field-row { grid-column:1/-1; }
.disposal-form .readonly-note { grid-column:1/-1; }
.disposal-form .hint { grid-column:1/-1; }
.disposal-form .disposal-wide { grid-column:1/-1; }
.disposal-form .report-section>.field { margin-bottom:10px; }
.disposal-form #wfFaultFields>.field { margin-bottom:10px; }
.disposal-form #wfParts>.field { margin-bottom:10px; }
.disposal-form #disposalRisks { grid-column:1/-1; }
.disposal-risk-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px; gap:0 8px; align-items:end; }
.disposal-form .disposal-risk-row .field { margin-bottom:0; }
.disposal-risk-row+.disposal-risk-row { margin-top:10px; padding-top:10px; border-top:1px solid #e8edf1; }
.disposal-risk-row .disposal-risk-remove { grid-column:3; grid-row:1; width:44px; height:30px; min-height:30px; padding:0 4px; font-size:11px; font-weight:500; white-space:nowrap; color:#b85d5d; background:#fff3f2; border:1px solid #efd3d0; border-radius:5px; box-shadow:0 1px 2px rgba(129,63,63,.06); transition:background-color .15s,border-color .15s,box-shadow .15s; }
.disposal-risk-row .disposal-risk-remove:active { background:#fbe4e1; border-color:#dfa9a3; box-shadow:none; }
.disposal-risk-row .disposal-risk-remove:focus-visible { outline:2px solid #e5b6af; outline-offset:2px; }
.disposal-form .readonly-note { display:flex; gap:6px; margin:0 0 10px; padding:7px 9px; border:1px solid #e0ece9; border-radius:4px; background:#f3f8f6; color:#7e918e; font-size:11px; line-height:1.6; }
.disposal-form .readonly-note b { flex-shrink:0; font-weight:500; color:#518a8c; }
.disposal-form .part-entry { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) 44px; gap:6px; align-items:end; padding:0; margin:0; border:0; }
.disposal-form .part-entry+.part-entry { padding-top:10px; margin-top:10px; border-top:1px solid #e8edf1; }
.disposal-form .part-entry .field { margin-bottom:0; }
.disposal-form .part-entry label { white-space:nowrap; }
.disposal-form .part-entry .disposal-part-remove { grid-column:4; grid-row:1; width:44px; height:30px; min-height:30px; padding:0 4px; font-size:11px; font-weight:500; white-space:nowrap; color:#b85d5d; background:#fff3f2; border:1px solid #efd3d0; border-radius:5px; box-shadow:0 1px 2px rgba(129,63,63,.06); }
.disposal-form .part-entry .disposal-part-remove:active { background:#fbe4e1; border-color:#dfa9a3; box-shadow:none; }
.disposal-form .part-entry .disposal-part-remove:focus-visible { outline:2px solid #e5b6af; outline-offset:2px; }
.report-form { margin:0; color:#283d48; font-family:"Microsoft YaHei",system-ui,sans-serif; }
.report-form .report-section { padding:12px 14px; margin:0 0 5px; background:#fff; border-top:1px solid #e5ebef; border-bottom:1px solid #e5ebef; box-shadow:0 1px 2px rgba(43,67,80,.025); }
.report-section-head { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:38px; margin:-12px -14px 10px; padding:8px 14px; background:#edf6f4; border-bottom:1px solid #dfece8; }
.report-section-head h3 { display:flex; align-items:center; gap:8px; margin:0; font-size:15px; line-height:22px; font-weight:700; color:#243431; }
.report-section-head h3:before { content:''; display:block; flex:0 0 4px; width:4px; height:20px; border-radius:2px; background:#157d76; }
.report-section-head>span { font-size:11px; color:#82919c; line-height:1.5; }
.report-section-head .req { font-style:normal; }
.report-form .field { margin:0 0 10px; min-width:0; }
.report-form .field:last-child { margin-bottom:0; }
.report-form .field-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; margin-bottom:10px; }
.report-form .field-row .field { margin:0; }
.report-form .field label { font-size:12px; font-weight:500; color:#50616e; margin:0 0 5px; }
.report-form .field label small { font-size:10px; font-weight:400; color:#98a3ac; margin-left:3px; }
.report-form .field input { min-width:0; font-weight:400; box-shadow:none; }
.report-form .field select { min-width:0; font-weight:400; box-shadow:none; }
.report-form .field textarea { width:100%; min-width:0; border:1px solid #dce2e8; border-radius:5px; background:#fff; padding:8px 10px; font-size:11px; font-weight:400; color:#405b64; line-height:1.4; box-shadow:none; }
.report-form .field textarea::placeholder { color:#9aadb3; opacity:1; }
.report-form .field textarea:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.report-form .field select:disabled { color:#8996a1; background:#f6f8fa; opacity:1; -webkit-text-fill-color:#8996a1; }
.report-form .field textarea { display:block; min-height:80px; resize:vertical; }
.report-form .risk-row { padding:0; margin:0; border:0; border-radius:0; background:none; }
.report-form .risk-row+.risk-row { margin-top:12px; padding-top:12px; border-top:1px solid #e8edf1; }
.report-form .report-add-risk { min-height:44px; margin:-9px 0; padding:0 2px; border:0; border-radius:4px; background:transparent; color:#287b80; font-size:12px; font-weight:500; }
.report-form .report-add-risk:active { background:#edf8f7; }
.report-form .photo-grid { gap:8px; }
.report-form .photo { width:68px; height:68px; border-radius:5px; border-color:#c7d4db; background:#f8fbfc; font-size:10px; }
.report-form .report-upload { position:relative; align-content:center; gap:2px; cursor:pointer; }
.report-form .report-upload>span { font-size:25px; line-height:28px; font-weight:400; }
.report-form .report-upload input { display:block; position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.report-form .report-upload:focus-within { outline:2px solid #66a9ad; outline-offset:2px; }
.report-form .hint { font-size:11px; color:#98a3ac; margin:7px 0 0; line-height:1.5; }
.report-submit { padding:7px 14px calc(14px + env(safe-area-inset-bottom,0px)); background:#edf8fc; }
.report-form .report-submit .btn { display:block; width:100%; min-height:44px; font-size:14px; border:1px solid #b8c0c8; border-radius:5px; background:#edf8f7; color:#287b80; box-shadow:0 2px 5px rgba(35,45,55,.12); }
.report-form .report-submit .btn:active { background:#dff2f0; box-shadow:none; }
.report-form .report-submit .btn:focus-visible { outline:2px solid #82b8ec; outline-offset:2px; }
.sheet:has(.modal-content) { align-items:center; padding:20px; padding-top:max(20px,env(safe-area-inset-top)); padding-bottom:max(20px,env(safe-area-inset-bottom)); }
.sheet-box:has(.modal-content) { width:min(100%,340px); max-height:calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
#sheetBody:has(.modal-content) { padding:14px 16px 16px; }
.modal-form .field { margin:0 0 12px; }
.modal-form .field label { display:block; margin-bottom:6px; color:#607680; font-size:12px; font-weight:500; }
.modal-form .field input { border:1px solid #cfd9e1; border-radius:5px; background:#fff; padding:6px 9px; font-size:12px; font-weight:400; line-height:1.5; }
.modal-form .field select { border:1px solid #cfd9e1; border-radius:5px; background:#fff; padding:6px 9px; font-size:12px; font-weight:400; line-height:1.5; }
.modal-form .field textarea { border:1px solid #cfd9e1; border-radius:5px; background:#fff; padding:6px 9px; font-size:12px; font-weight:400; line-height:1.5; }
.modal-form .field input { height:32px; min-height:32px; }
.modal-form .field select { height:32px; min-height:32px; }
.modal-form .field textarea { min-height:72px; resize:vertical; }
.modal-form .field input[readonly] { background:#eef3f5; color:#71828c; }
.modal-form .field input:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.modal-form .field select:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.modal-form .field textarea:focus { border-color:#66a9ad; box-shadow:0 0 0 2px rgba(55,145,150,.1); }
.modal-form .field select { appearance:none; padding-right:26px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m2 2 4 4 4-4' fill='none' stroke='%238394a1' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 9px center; }
.modal-form .review-actions { padding-top:12px; border-top:1px solid #e0e8eb; }
.modal-form .review-actions .btn { flex:1; min-height:38px; padding:7px 12px; font-size:14px; font-weight:600; }
.modal-content .kv { padding:9px 0; gap:10px; }
.modal-content .kv label { font-size:12px; line-height:1.6; }
.modal-content .kv span { font-size:12px; line-height:1.6; }
.modal-content .order-approval:last-child { margin-bottom:0; }
.modal-form .check-list { gap:6px; margin:0 0 12px; }
.modal-form .check-list label { display:flex; align-items:center; justify-content:space-between; min-height:36px; padding:7px 9px; border:1px solid #dce5e9; border-radius:5px; background:#f6f9fa; color:#607680; font-size:12px; line-height:1.5; }
.modal-form .check-list input { order:1; flex:0 0 18px; width:18px; height:18px; margin:0; }
.modal-form .review-actions { display:flex; gap:8px; }
.order-approval { margin:0 0 12px; border:1px solid #dce9e9; border-radius:8px; background:#fff; overflow:hidden; }
.order-approval>summary { padding:10px 12px; background:#f0f7f6; color:#357780; font-size:13px; font-weight:600; line-height:1.5; }
.order-detail-body .round-head { padding:10px 12px; background:#f0f7f6; color:#357780; font-size:13px; font-weight:600; line-height:1.5; }
.order-approval>summary { cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; list-style:none; }
.order-approval>summary::-webkit-details-marker { display:none; }
.order-approval>summary::after { content:''; flex:0 0 auto; width:0; height:0; border-top:5px solid transparent; border-bottom:5px solid transparent; border-left:6px solid #7997a1; transition:transform .15s; }
.order-approval[open]>summary::after { transform:rotate(90deg); }
.order-detail-fields { padding:2px 14px 11px; border-top:1px solid #dce9e9; }
.ledger-detail-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:-14px -14px 12px; padding:13px 14px; background:#f0f7f6; border-bottom:1px solid #e0e9e7; }
.ledger-detail-summary>div { min-width:0; }
body:has(#sub.active .instrument-detail-summary) .topbar h1 { font-weight:750; }
.ledger-detail-summary.instrument-detail-summary strong { font-weight:750; }
.instrument-detail-meta { display:flex; flex-wrap:wrap; gap:3px 12px; margin-top:6px; font-size:11px; color:#526d70; line-height:1.6; }
.ledger-detail-summary strong { font-size:14px; font-weight:600; color:#294746; overflow-wrap:anywhere; }
.ledger-detail-summary p { margin:5px 0 0; color:#85969b; font-size:11px; line-height:1.6; overflow-wrap:anywhere; }
.ledger-detail-body .archive-link { min-width:0; font-size:13px; line-height:1.55; overflow-wrap:anywhere; }
.ledger-archive-file { min-width:0; }
.ledger-archive-file small { display:block; margin-top:4px; color:#8b9ca4; font-size:11px; }
.empty { margin:0; padding:24px 14px; color:#8b9ca4; text-align:center; font-size:12px; line-height:1.7; background:#fff; }
.ledger-empty { margin:0; padding:24px 14px; color:#8b9ca4; text-align:center; font-size:12px; line-height:1.7; background:#fff; }
.empty strong { display:block; font-size:inherit; font-weight:400; }
.empty small { display:block; font-size:inherit; font-weight:400; }
.empty small { margin-top:6px; }
.planning-empty strong { font-size:16px; font-weight:600; }
.ledger-change-entry+.ledger-change-entry { margin-top:12px; border-top:1px solid #dce9e9; }
.ledger-change-values { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:6px; padding:9px 0; font-size:12px; overflow-wrap:anywhere; }
.ledger-change-values strong { grid-column:1/-1; color:#607680; font-weight:500; }
.order-detail-body .round-card .order-approval { margin-top:9px; margin-bottom:0; }
.order-detail-body .round-head { align-items:center; margin:-14px -14px 0; border-bottom:1px solid #dce9e9; border-radius:8px 8px 0 0; }
.order-detail-body .round-head h3 { margin:0; font:inherit; color:inherit; }
.order-detail-body .round-card { border-radius:8px; }
.approval-round { padding:9px 5px 12px; border-top:1px solid #dce9e9; }
.approval-round h4 { margin:0 5px 12px; color:#667c84; font-size:11px; font-weight:500; }
.approval-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.approval-step { position:relative; min-width:0; text-align:center; color:#91a5ad; font-size:10px; line-height:1.5; }
.approval-step:not(:last-child):after { content:''; position:absolute; top:13px; left:calc(50% + 14px); width:calc(100% - 28px); height:2px; background:#dce7eb; }
.approval-step.done:after { background:#78baa4; }
.approval-step.rejected:after { background:#efb6b6; }
.approval-dot { display:grid; place-items:center; width:28px; height:28px; margin:0 auto 7px; border:2px solid #d7e4e8; border-radius:50%; background:#fff; font-size:14px; font-weight:600; }
.approval-step.done { color:#39895d; }
.approval-step.done .approval-dot { background:#48a873; border-color:#48a873; color:#fff; }
.approval-step.rejected { color:#d95e5e; }
.approval-step.rejected .approval-dot { background:#df6969; border-color:#df6969; color:#fff; }
.approval-step.active { color:#287b80; }
.approval-step.active .approval-dot { border-color:#469d9b; background:#edf8f7; }
.approval-step>strong { display:block; font-weight:600; margin-bottom:4px; }
.approval-detail { padding:0 3px; overflow-wrap:anywhere; }
.approval-detail time { display:block; margin-top:4px; }
.approval-person { margin-top:4px; }
.approval-person>span { display:block; }
.approval-person>span:last-child { word-break:normal; overflow-wrap:break-word; }
.order-current-summary { display:grid; grid-template-columns:minmax(0,1fr); align-items:center; gap:10px; margin:-14px -14px 0; padding:13px 14px; background:#f0f7f6; border-bottom:1px solid #e0e9e7; }
.order-current-info { min-width:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px 8px; align-items:center; text-align:center; }
.order-current-label { color:#85969b; font-size:11px; font-weight:400; line-height:1.5; }
.order-current-node { font-size:14px; font-weight:600; color:#294746; overflow-wrap:anywhere; }
.order-current-status { display:flex; align-items:center; justify-content:center; }
.order-current-handler { color:#52646c; font-size:11px; font-weight:500; line-height:1.6; overflow-wrap:anywhere; }
.order-current-result { display:flex; align-items:center; justify-content:center; min-width:0; }
.repair-result-badge, .kv span.repair-result-badge { display:inline-flex; align-items:center; justify-content:center; min-height:26px; padding:3px 9px; border:1px solid color-mix(in srgb,currentColor 15%,transparent); border-radius:9px; color:var(--result-color); background:var(--result-background); font-size:11px; font-weight:700; line-height:18px; letter-spacing:.2px; white-space:nowrap; box-shadow:0 1px 2px rgba(38,70,78,.04); }
.repair-result-normal { --result-color:#27824b; --result-background:#e6f5ec; }
.repair-result-watch { --result-color:#a66a13; --result-background:#fff4d6; }
.repair-result-incomplete { --result-color:#b94242; --result-background:#fde8e8; }
.repair-result-empty { --result-color:#85969b; --result-background:transparent; border-color:transparent; box-shadow:none; }
.repair-row-status .repair-result-badge { min-height:24px; height:24px; padding:0 8px; font-size:10px; line-height:1; border-radius:10px; }
.order-current-status .badge { align-self:center; justify-content:center; min-height:26px; padding:3px 8px; border:1px solid color-mix(in srgb,currentColor 12%,transparent); border-radius:9px; font-size:11px; font-weight:700; line-height:18px; gap:5px; box-shadow:0 1px 2px rgba(38,70,78,.04); }
.order-current-status .badge:before { flex:0 0 5px; opacity:.7; }
.order-current-action { min-width:0; text-align:center; }
.order-current-action .btn.primary { width:100%; min-width:0; }
.order-current-action .btn { white-space:nowrap; }
.order-current-action .btn.primary:disabled { background:#edf0f2; color:#a0a8ae; border-color:#d0d5d9; box-shadow:none; cursor:not-allowed; transform:none; }
.order-current-action .btn:focus-visible { outline:2px solid #82b8ec; outline-offset:2px; }
.order-current-readonly { font-size:11px; color:#8b9c9e; }
@media(max-width:360px) {
  .order-current-info { column-gap:4px; }
  .order-current-node { font-size:12px; }
  .order-current-status .badge { padding-left:5px; padding-right:5px; gap:4px; }
}
.about-page .about-intro { padding:2px 0 12px; color:#85969b; font-size:12px; line-height:1.6; }
.about-page p { margin:10px 0; color:#607680; font-size:13px; line-height:1.7; }
.about-preview-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:10px 0; }
.about-preview-actions .btn { min-height:38px; padding:7px 10px; border:1px solid #b8c0c8; border-radius:6px; background:#edf8f7; color:#287b80; font-size:14px; font-weight:600; box-shadow:0 2px 5px rgba(35,45,55,.12); }
.about-preview-actions .btn:active { background:#dff2f0; box-shadow:none; }
.home-module-tile[aria-disabled="true"] { opacity:.45; }
.node-user-picker { position:relative; min-width:0; }
.node-user-dropdown { display:none; position:absolute; top:calc(100% + 3px); left:0; right:0; z-index:35; max-height:168px; overflow-y:auto; overscroll-behavior:contain; touch-action:pan-y; background:#fff; border:1px solid #b8cccd; border-radius:6px; box-shadow:0 3px 9px rgba(25,60,65,.14); }
.node-user-dropdown button { display:block; width:100%; text-align:left; border:0; border-bottom:1px solid #eef2f2; background:#fff; padding:9px; color:#46535f; font-size:12px; }
.node-user-dropdown button span { display:block; color:#85969b; font-size:11px; margin-top:3px; }
.node-user-dropdown button:focus-visible { outline:2px solid #66a9ad; outline-offset:-2px; }
.node-user-empty { padding:10px; font-size:11px; color:#85969b; }
/* 移动端定稿组件：安全区只由底栏承担一次，页面仅按底栏总高度预留。 */
:root { --mobile-nav-content-height:58px; --mobile-nav-total-height:calc(var(--mobile-nav-content-height) + env(safe-area-inset-bottom,0px)); }
.page { padding-bottom:calc(var(--mobile-nav-total-height) + 10px); }
.page#sub { padding-bottom:calc(env(safe-area-inset-bottom,0px) + 82px); }
.nav { height:var(--mobile-nav-total-height); padding:2px 6px env(safe-area-inset-bottom,0px); }
.nav button { min-height:54px; }
.topbar h1 { font-size:20px; line-height:58px; }
.topbar .back.mobile-back-button { background:rgba(255,255,255,.12); box-shadow:inset 0 0 0 1px rgba(255,255,255,.08); }
.topbar .back.mobile-back-button:active { background:rgba(255,255,255,.2); }
.dialog-actions .btn { min-width:0; white-space:nowrap; line-height:1.2; }
.dialog-actions #dialogConfirm { flex:1 1 56%; }
.dialog-actions #dialogCancel { flex:1 1 44%; }

