@font-face { font-family:Montserrat; src:url('../fonts/Montserrat-Regular.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face { font-family:Montserrat; src:url('../fonts/Montserrat-SemiBold.ttf') format('truetype'); font-weight:600; font-display:swap; }
:root { font-family:Montserrat,system-ui,sans-serif; color:#251d2c; background:#efedf2; font-synthesis:none; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; min-width:320px; min-height:100vh; background:#efedf2; }
button,input,textarea,select { font:inherit; }
button { color:inherit; }
.app-shell { width:min(100%,460px); min-height:100vh; margin:0 auto; background:#f8f7f9; box-shadow:0 0 50px rgba(55,37,73,.09); }
.maintenance-entry-shell { min-height:100dvh; color:#251d2c; background:#f8f7f9; box-shadow:none; }
.maintenance-entry-header { position:sticky; z-index:10; top:0; background:#fff; box-shadow:0 2px 5px rgba(0,0,0,.12); }
.maintenance-entry-toolbar { display:grid; grid-template-columns:52px 1fr 52px; min-height:64px; align-items:center; justify-items:center; padding:4px 8px; color:#fff; background:#372549; }
.maintenance-entry-toolbar img { display:block; width:170px; max-width:100%; height:auto; }
.maintenance-entry-toolbar button { width:42px; height:42px; border:0; color:#fff; background:transparent; font-size:2rem; line-height:1; cursor:pointer; }
.maintenance-technician { height:12px; padding:0 4px; overflow:hidden; color:#fff; background:#a8aa59; font-size:.48rem; line-height:12px; }
.maintenance-entry-title { padding:5px 8px; color:#fff; background:#a8aa59; text-align:center; font-size:.82rem; font-weight:600; letter-spacing:.03em; }
.brand-hero { position:relative; overflow:hidden; padding:10px 24px 8px; color:#fff; background:#372549; }
.brand-hero::after { content:""; position:absolute; z-index:0; right:7px; bottom:5px; width:48px; height:48px; background:url('../brand/hologramme-progilift.svg') center/contain no-repeat; filter:brightness(0) invert(1); opacity:.4; pointer-events:none; }
.brand-row { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; }
.brand-row img { display:block; width:146px; height:auto; }
.stack-pill { padding:6px 9px; border:1px solid rgba(255,255,255,.22); border-radius:999px; color:#e7e3eb; font-size:.64rem; font-weight:600; }
.hero-action { position:relative; z-index:1; display:flex; min-width:44px; min-height:44px; align-items:center; justify-content:center; gap:6px; padding:0 10px; border:1px solid rgba(255,255,255,.42); border-radius:13px; color:#fff; background:rgba(255,255,255,.12); cursor:pointer; font-size:.65rem; }
.hero-action .app-icon { width:19px; height:19px; }
.settings-action { width:44px; min-width:44px; padding:0; border:1px solid rgba(255,255,255,.5); border-radius:50%; color:#fff; background:rgba(255,255,255,.14); box-shadow:0 2px 8px rgba(0,0,0,.12); }
.settings-action .app-icon { width:23px; height:23px; }
.brand-hero p { position:relative; z-index:1; margin:6px 0 3px; color:#B9BA6C; font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.brand-hero h1 { position:relative; z-index:1; max-width:360px; margin:0; font-size:1.65rem; line-height:1.18; font-weight:600; letter-spacing:-.035em; }
.brand-hero h1.hero-technician { font-size:1.22rem; line-height:1.2; }
.hero-identity { position:relative; z-index:1; display:flex; flex-direction:column; gap:1px; margin-top:3px; color:#eee9f1; font-size:.59rem; line-height:1.3; }
.hero-identity span { overflow:hidden; max-width:calc(100% - 58px); text-overflow:ellipsis; white-space:nowrap; }
.session-status { position:relative; z-index:1; display:flex; align-items:center; gap:6px; width:max-content; max-width:calc(100% - 58px); margin-top:4px; color:#ded7e4; font-size:.62rem; }
.session-connection { white-space:nowrap; }
.session-status>span:first-child { width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:#B9BA6C; box-shadow:0 0 0 4px rgba(185,186,108,.13); }
.app-content { padding:20px 20px 34px; }
.maintenance-entry-shell .app-content { min-height:calc(100dvh - 93px); padding:8px 8px calc(104px + env(safe-area-inset-bottom, 0px)); background:#f8f7f9; }
.state-panel { display:flex; min-height:320px; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:28px; text-align:center; }
.state-panel strong { font-size:.96rem; }
.state-panel small { max-width:290px; color:#776f7c; line-height:1.55; }
.spinner { width:28px; height:28px; margin-bottom:8px; border:3px solid #ded9e2; border-top-color:#372549; border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.state-icon { display:grid; width:38px; height:38px; place-items:center; border-radius:50%; color:#fff; background:#8b3241; font-weight:600; }
.primary-button { min-height:44px; margin-top:8px; padding:0 20px; border:0; border-radius:14px; color:#fff; background:#372549; cursor:pointer; font-weight:600; }
.primary-button:disabled,.text-button:disabled { cursor:not-allowed; opacity:.5; }
.auth-card { margin-top:-2px; padding:22px; border:1px solid rgba(55,37,73,.07); border-radius:24px; background:#fff; box-shadow:0 14px 38px rgba(55,37,73,.08); }
.auth-steps { display:flex; align-items:center; width:108px; margin:0 0 22px; }
.auth-steps span { display:grid; width:28px; height:28px; flex:0 0 28px; place-items:center; border:1px solid #dcd6e0; border-radius:50%; color:#8a828e; font-size:.66rem; font-weight:600; }
.auth-steps span.active,.auth-steps span.done { border-color:#372549; color:#fff; background:#372549; }
.auth-steps span.done { border-color:#B9BA6C; color:#372549; background:#B9BA6C; }
.auth-steps i { width:52px; height:1px; background:#dcd6e0; }
.auth-heading h2 { margin:5px 0 8px; color:#372549; font-size:1.25rem; letter-spacing:-.025em; }
.auth-heading p { margin:0 0 20px; color:#6f6674; font-size:.72rem; line-height:1.55; }
.form-field { display:flex; flex-direction:column; gap:7px; margin-top:14px; }
.form-field label { color:#372549; font-size:.68rem; font-weight:600; }
.form-field input { width:100%; height:48px; padding:0 14px; border:1px solid #d8d2dc; border-radius:14px; color:#251d2c; background:#fbfafc; outline:none; transition:border-color .15s ease,box-shadow .15s ease; }
.form-field input:focus { border-color:#372549; box-shadow:0 0 0 3px rgba(185,186,108,.26); }
.form-field small { color:#8a828e; font-size:.59rem; line-height:1.45; }
.code-field input { text-align:center; font-size:1.25rem; font-weight:600; letter-spacing:.32em; }
.auth-submit { width:100%; margin-top:20px; }
.auth-actions { display:flex; justify-content:space-between; gap:12px; margin-top:14px; }
.text-button,.logout-button { padding:6px 0; border:0; color:#5d496c; background:transparent; cursor:pointer; font-size:.62rem; font-weight:600; }
.pilot-hint { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:18px; padding:11px 12px; border-radius:13px; color:#5f5765; background:#f3f0f5; font-size:.6rem; }
.pilot-hint strong { color:#372549; }
.success-hint { color:#555824; background:#eeefd8; }
.auth-error { margin-top:14px; padding:11px 12px; border-radius:12px; color:#7d2938; background:#fff0f2; font-size:.66rem; line-height:1.45; }
.identity-card { display:flex; align-items:center; gap:14px; margin-top:-3px; padding:16px; border:1px solid rgba(55,37,73,.06); border-radius:20px; background:#fff; box-shadow:0 9px 30px rgba(55,37,73,.06); }
.identity-copy { display:flex; min-width:0; flex:1; flex-direction:column; gap:4px; }
.identity-card strong { overflow:hidden; font-size:.86rem; text-overflow:ellipsis; white-space:nowrap; }
.identity-card small { overflow:hidden; color:#776f7c; font-size:.67rem; text-overflow:ellipsis; white-space:nowrap; }
.avatar { display:grid; width:46px; height:46px; flex:0 0 46px; place-items:center; border-radius:15px; color:#372549; background:#eeefd8; font-size:.78rem; font-weight:600; }
.card-label { color:#867d8b; font-size:.62rem; letter-spacing:.03em; }
.breakdown-section { margin-top:26px; }
.breakdown-notification { display:grid; grid-template-columns:34px minmax(0,1fr) 32px; align-items:center; gap:10px; margin:18px 0 -10px; padding:10px 11px; border:1px solid rgba(96,55,133,.2); border-radius:16px; color:#38224d; background:linear-gradient(135deg,#f3eafa,#e8f4dc); box-shadow:0 10px 28px rgba(55,37,73,.12); }
.breakdown-notification-icon { display:grid; width:30px; height:30px; place-items:center; border-radius:50%; color:#fff; background:#724599; font-weight:800; }
.breakdown-read-error { display:grid; grid-template-columns:30px minmax(0,1fr) auto; align-items:center; gap:10px; margin-top:12px; padding:11px 12px; border:1px solid rgba(125,41,56,.16); border-radius:14px; color:#7d2938; background:#fff0f2; font-size:.66rem; line-height:1.4; }
.breakdown-read-error-icon { display:grid; width:28px; height:28px; place-items:center; border-radius:50%; color:#fff; background:#a53c50; font-weight:800; }
.breakdown-read-error span { display:grid; gap:2px; min-width:0; }
.breakdown-read-error small { overflow-wrap:anywhere; }
.breakdown-read-error button { border:0; color:#6c2635; background:transparent; font:inherit; font-weight:700; cursor:pointer; }
.breakdown-notification > span:nth-child(2) { display:flex; min-width:0; flex-direction:column; gap:2px; }
.breakdown-notification strong { font-size:.82rem; }
.breakdown-notification small { font-size:.7rem; line-height:1.25; }
.breakdown-notification button { display:grid; width:30px; height:30px; place-items:center; padding:0; border:0; border-radius:50%; color:#5b416b; background:rgba(255,255,255,.64); font-size:1.2rem; cursor:pointer; }
.breakdown-notification button:focus-visible { outline:3px solid rgba(185,186,108,.72); outline-offset:2px; }
.breakdown-heading { align-items:center; }
.breakdown-heading h2 { margin:4px 0 0; color:#372549; font-size:1.05rem; font-weight:600; }
.breakdown-total { display:grid; width:34px; height:34px; place-items:center; border-radius:50%; color:#fff; background:#756b7c; font-size:.72rem; font-weight:600; }
.breakdown-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.breakdown-button { position:relative; display:flex; min-width:0; min-height:120px; flex-direction:column; align-items:center; justify-content:flex-start; gap:8px; padding:10px 4px 8px; overflow:hidden; border:1px solid rgba(55,37,73,.08); border-radius:17px; color:#372549; text-align:center; background:#fff; box-shadow:0 7px 24px rgba(55,37,73,.055); cursor:pointer; transition:transform .15s ease,border-color .15s ease,background-color .15s ease,color .15s ease; }
.breakdown-button:hover { transform:translateY(-1px); border-color:rgba(55,37,73,.2); }
.breakdown-button:focus-visible { outline:3px solid rgba(185,186,108,.7); outline-offset:2px; }
.breakdown-button.is-selected { border-color:#b9ba6c; box-shadow:0 0 0 2px rgba(185,186,108,.23),0 7px 24px rgba(55,37,73,.07); }
.breakdown-icon { display:grid; width:58px; height:58px; flex:0 0 58px; place-items:center; border-radius:16px; background:#756b7c; }
.breakdown-icon img { display:block; width:46px; height:46px; object-fit:contain; }
.breakdown-copy { display:flex; min-width:0; flex-direction:column; align-items:center; }
.breakdown-copy strong { font-size:.6rem; line-height:1.22; overflow-wrap:anywhere; }
.breakdown-count { position:absolute; top:6px; right:6px; display:grid; min-width:22px; height:22px; place-items:center; padding:0 5px; border-radius:999px; color:#fff; background:#756b7c; font-size:.56rem; font-weight:600; }
.breakdown-button.has-items.tone-violet { border-color:#372549; color:#fff; background:#372549; box-shadow:0 9px 25px rgba(55,37,73,.2); }
.breakdown-button.has-items.tone-violet .breakdown-icon,.breakdown-button.has-items.tone-violet .breakdown-count { color:#372549; background:#b9ba6c; }
.breakdown-button.has-items.tone-green { border-color:#a8aa59; color:#372549; background:#b9ba6c; box-shadow:0 9px 25px rgba(136,139,61,.2); }
.breakdown-button.has-items.tone-green .breakdown-icon,.breakdown-button.has-items.tone-green .breakdown-count { background:#372549; }
.breakdown-button .breakdown-count.is-zero { color:#372549; background:#b9ba6c; }
.breakdown-button.has-items .breakdown-count.is-positive { color:#372549; background:#fff; box-shadow:0 2px 8px rgba(55,37,73,.14); }
.maintenance-section { margin-top:26px; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin:0 2px 12px; }
.maintenance-filters { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0 2px 14px; padding:12px; border-radius:17px; background:#fff; }
.maintenance-filters .form-field { min-width:0; margin:0; }
.maintenance-filters input,.maintenance-filters select { width:100%; min-width:0; height:44px; padding:0 10px; border:1px solid #d8d2dc; border-radius:12px; color:#372549; background:#fbfafc; font:inherit; font-size:.68rem; }
.maintenance-search { grid-column:1/-1; min-width:0; }
.maintenance-search>label { display:block; margin-bottom:5px; color:#554a5f; font-size:.65rem; font-weight:600; }
.maintenance-search-controls { display:flex; align-items:center; gap:7px; min-width:0; }
.maintenance-search-controls input { flex:1; }
.maintenance-search-controls button { min-height:44px; white-space:nowrap; }
.filter-loading,.detail-loading { display:flex; align-items:center; gap:8px; margin:0 2px 12px; padding:8px 11px; border-radius:11px; color:#565925; background:#eeefd8; font-size:.62rem; font-weight:600; }
.filter-loading .app-icon { width:18px; height:18px; color:#6e742a; animation:hourglass-turn 1.4s ease-in-out infinite; }
.detail-loading { position:sticky; z-index:5; top:8px; box-shadow:0 3px 12px rgba(55,37,73,.12); }
.detail-loading .spinner { width:18px; height:18px; margin:0; border-width:2px; border-top-color:#6e742a; }
@keyframes hourglass-turn { 50% { transform:rotate(180deg); } 100% { transform:rotate(360deg); } }
.section-heading h2,.detail-heading h2 { margin:4px 0 0; color:#372549; font-size:1.05rem; font-weight:600; }
.snapshot-pill { padding:7px 10px; border-radius:999px; color:#565925; background:#eeefd8; font-size:.61rem; font-weight:600; }
.maintenance-list { display:flex; flex-direction:column; gap:10px; margin:0; padding:0; list-style:none; }
.maintenance-card { display:flex; width:100%; min-height:92px; align-items:center; gap:13px; padding:13px; border:1px solid transparent; border-radius:20px; text-align:left; background:#fff; box-shadow:0 7px 24px rgba(55,37,73,.055); cursor:pointer; transition:transform .15s ease,border-color .15s ease; }
.maintenance-card:hover { transform:translateY(-1px); border-color:rgba(55,37,73,.12); }
.maintenance-card-item { position:relative; padding:8px 9px; border:1px solid rgba(55,37,73,.07); border-radius:18px; background:#fff; box-shadow:0 7px 24px rgba(55,37,73,.055); }
.maintenance-card-row { display:flex; align-items:center; gap:6px; }
.maintenance-card-row .maintenance-card { min-width:0; flex:1; padding:3px; border:0; border-radius:12px; box-shadow:none; }
.maintenance-card-actions { display:flex; flex:0 0 auto; flex-direction:column; gap:5px; }
.small-icon-button { display:grid; width:44px; height:44px; place-items:center; border:1px solid #e6e1e9; border-radius:12px; color:#51415f; background:#fbfafc; cursor:pointer; }
.small-icon-button:hover,.small-icon-button[aria-expanded="true"] { color:#372549; border-color:#b9ba6c; background:#f2f2df; }
.app-icon { display:block; width:20px; height:20px; }
.maintenance-card-data { display:flex; flex-wrap:wrap; gap:4px 10px; margin-top:5px; color:#655a6c; font-size:.57rem; line-height:1.35; }
.maintenance-card-checks { display:flex; flex-direction:column; gap:3px; color:#655a6c; font-size:.54rem; line-height:1.35; }
.missing-data { color:#b42332!important; font-weight:600!important; }
.unavailable-data { color:#7d7481!important; font-style:italic; font-weight:500!important; }
.operational-readonly-note { margin:0 2px 12px; }
.maintenance-card-menu { display:grid; width:100%; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; padding:9px 0 0; border-top:1px solid #eeeaf0; }
.maintenance-card-menu button { display:flex; width:100%; min-width:0; min-height:44px; align-items:center; justify-content:center; gap:6px; padding:0 6px; border:1px solid #e5e0e8; border-radius:10px; color:#51415f; background:#fbfafc; cursor:pointer; font-size:.6rem; white-space:nowrap; }
.maintenance-card-menu .app-icon { width:16px; height:16px; }
.maintenance-context-scrim { position:fixed; z-index:40; inset:0; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(25,19,31,.52); }
.maintenance-context-modal { position:relative; width:min(100%,440px); height:min(680px,calc(100dvh - 90px)); overflow:auto; padding:22px 18px 18px; border:1px solid #e7e2e9; border-radius:20px; color:#372549; background:#fff; box-shadow:0 18px 48px rgba(20,14,25,.3); }
.maintenance-context-header { display:flex; flex-direction:column; gap:4px; margin:0 48px 18px 0; }
.maintenance-context-header strong { font-size:1rem; }
.maintenance-context-header small { color:#746b79; font-size:.66rem; line-height:1.4; }
.maintenance-card:focus-visible,.icon-button:focus-visible,.primary-button:focus-visible,.text-button:focus-visible,.logout-button:focus-visible { outline:3px solid rgba(185,186,108,.7); outline-offset:2px; }
.date-tile { display:flex; width:51px; height:60px; flex:0 0 51px; flex-direction:column; align-items:center; justify-content:center; border-radius:15px; color:#372549; background:#f0edf3; }
.date-tile strong { font-size:1.05rem; line-height:1; }
.date-tile small { margin-top:5px; font-size:.55rem; font-weight:600; }
.maintenance-copy { display:flex; min-width:0; flex:1; flex-direction:column; gap:5px; }
.maintenance-topline { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.maintenance-copy>span:nth-child(2) { overflow:hidden; color:#5f5765; font-size:.7rem; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.maintenance-copy small { color:#8a828e; font-size:.62rem; }
.state-badge { flex:0 0 auto; padding:5px 7px; border-radius:999px; color:#555824; background:#eeefd8; font-size:.55rem; font-weight:600; }
.state-badge.claimed { color:#5d496c; background:#eee8f1; }
.state-badge.in-progress { color:#8a4c08; background:#fff0d6; }
.state-badge.reported { color:#5d496c; background:#eee8f1; }
.state-badge.waiting { color:#8a4c08; background:#fff0d6; }
.state-badge.equipment-stopped,.state-badge.stopped { color:#8a2131; background:#fee6ea; }
.chevron { color:#8d8492; font-size:1.45rem; }
.empty-state { padding:28px 18px; border-radius:18px; color:#776f7c; text-align:center; background:#fff; font-size:.76rem; }
.detail-panel { margin-top:18px; padding:19px; border:1px solid rgba(55,37,73,.08); border-radius:22px; background:#fff; box-shadow:0 12px 35px rgba(55,37,73,.08); }
.maintenance-entry-panel { color:#251d2c; background:#fff; }
.maintenance-equipment-card { display:flex; flex-direction:column; gap:4px; min-height:90px; padding:13px 14px; border:1px solid #e7e2e9; border-radius:14px; color:#372549; background:#fbfafc; font-size:.78rem; line-height:1.4; }
.maintenance-equipment-card strong { font-size:.77rem; font-weight:500; }
.maintenance-equipment-card span { white-space:pre-line; }
.maintenance-equipment-card small { color:#776f7c; font-size:.62rem; }
.maintenance-entry-fields { display:grid; grid-template-columns:1.25fr .9fr .9fr .8fr; gap:8px; margin:8px 0 15px; }
.maintenance-entry-fields label { display:flex; min-width:0; flex-direction:column; gap:5px; color:#5d496c; font-size:.58rem; }
.maintenance-entry-fields input { width:100%; min-width:0; height:44px; padding:0 7px; border:1px solid #d8d2dc; border-radius:10px; color:#332b37; background:#fbfafc; font-size:.64rem; }
.maintenance-entry-fields input:disabled { color:#332b37; background:#fff; opacity:1; }
.maintenance-entry-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 10px; margin:10px 2px 12px; color:#776f7c; font-size:.59rem; }
.maintenance-equipment-data { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin:10px 0 16px; }
.maintenance-equipment-data>div { display:flex; min-width:0; flex-direction:column; gap:4px; padding:9px 10px; border:1px solid #efecf1; border-radius:11px; background:#fbfafc; }
.maintenance-equipment-data span { color:#827989; font-size:.54rem; }
.maintenance-equipment-data strong { color:#372549; font-size:.62rem; line-height:1.35; overflow-wrap:anywhere; }
.maintenance-operation-list { padding:0 2px 76px; }
.operations-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:4px 0; }
.operations-heading h3 { margin:0; color:#372549; font-size:.85rem; }
.maintenance-operation-all { display:flex; align-items:center; gap:8px; min-height:38px; color:#5d496c; font-size:.62rem; cursor:pointer; }
.maintenance-operation-all input,.maintenance-operation input { appearance:none; display:grid; width:20px; height:20px; flex:0 0 20px; place-items:center; margin:0; border:1.5px solid #91889a; border-radius:50%; color:#372549; background:#fff; cursor:pointer; }
.maintenance-operation-all input:checked,.maintenance-operation input:checked { background:#e8e9c0; }
.maintenance-operation-all input:checked::after,.maintenance-operation input:checked::after { content:"✓"; font-size:.75rem; font-weight:700; }
.maintenance-operation { display:grid; grid-template-columns:22px minmax(0,1fr); align-items:start; gap:10px; min-height:46px; padding:11px 4px; border-bottom:1px solid #e7e2e9; color:#372549; text-align:left; font-size:.68rem; line-height:1.4; cursor:pointer; }
.maintenance-operation span { display:flex; flex-direction:column; gap:4px; overflow-wrap:anywhere; text-align:left; }
.maintenance-operation small { color:#8a828e; font-size:.52rem; line-height:1.3; text-transform:none; }
.maintenance-operation input { margin-top:1px; }
.maintenance-operation input:checked { color:#372549; background:#b9ba6c; }
.local-only-note { margin:8px 0 0; color:#776f7c; font-size:.55rem; line-height:1.4; }
.maintenance-note-preview { margin:8px 0; padding:10px; border-radius:3px; color:#372549; background:#fff; font-size:.68rem; }
.maintenance-note-preview p { margin:5px 0 0; white-space:pre-wrap; }
.maintenance-entry-shell .safe-read-note { margin:8px 0; }
.maintenance-bottom-bar { position:fixed; z-index:20; bottom:0; left:50%; display:grid; width:min(100%,460px); height:calc(72px + env(safe-area-inset-bottom, 0px)); grid-template-columns:repeat(5,minmax(0,1fr)); align-items:center; gap:3px; padding:6px 7px calc(6px + env(safe-area-inset-bottom, 0px)); transform:translateX(-50%); color:#372549; background:#fff; box-shadow:0 -4px 16px rgba(55,37,73,.12); }
.action-tool { display:flex; min-width:0; height:58px; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:3px 1px; border:0; border-radius:11px; color:#5d496c!important; background:transparent!important; cursor:pointer; }
.action-tool[aria-pressed="true"] { color:#372549!important; background:#f1f0dd!important; }
.action-tool-icon { display:grid; width:32px; height:32px; place-items:center; border-radius:50%; color:#372549; background:#f0edf3; }
.action-tool-icon .app-icon { width:18px; height:18px; }
.action-tool-label { max-width:100%; overflow:hidden; font-size:.52rem; font-weight:600; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }
.detail-tool-panel { position:fixed; z-index:19; right:max(0px,calc((100vw - 460px)/2)); bottom:calc(72px + env(safe-area-inset-bottom, 0px)); left:max(0px,calc((100vw - 460px)/2)); height:min(680px,calc(100dvh - 90px)); overflow:auto; padding:17px 16px 13px; border:1px solid #e7e2e9; border-bottom:0; border-radius:18px 18px 0 0; color:#372549; background:#fff; box-shadow:0 -5px 24px rgba(27,20,32,.12); }
.detail-tool-panel h3 { display:flex; align-items:center; gap:8px; margin:0 30px 12px 0; font-size:.83rem; }
.detail-tool-panel h3 .app-icon { width:21px; height:21px; }
.detail-tool-panel textarea { width:100%; resize:vertical; padding:10px; border:1px solid #d8d2dc; border-radius:10px; font:inherit; font-size:.7rem; }
.context-loading,.context-empty { margin:8px 0; color:#746b79; font-size:.7rem; }
.equipment-context-list { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.equipment-context-list li { display:grid; gap:3px; padding:10px 11px; border:1px solid #ece7ee; border-radius:10px; background:#fbfafc; }
.equipment-context-list strong { font-size:.72rem; }
.equipment-context-list span,.equipment-context-list small,.equipment-context-list a { color:#746b79; font-size:.64rem; }
.equipment-context-list a { color:#6d237c; font-weight:700; text-decoration:none; }
.equipment-technical-list { display:grid; gap:0; margin:0; }
.equipment-technical-list div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:10px; padding:8px 0; border-bottom:1px solid #eee9f0; }
.equipment-technical-list dt { color:#746b79; font-size:.63rem; }
.equipment-technical-list dd { margin:0; text-align:right; font-size:.68rem; font-weight:700; }
.detail-tool-close { position:absolute; top:6px; right:6px; width:44px; height:44px; border:0; border-radius:10px; color:#51415f; background:#f1eef3; font-size:1.2rem; cursor:pointer; }
.detail-option-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.detail-option-grid button { display:flex; min-height:44px; align-items:center; gap:8px; padding:0 10px; border:1px solid #e5e0e8; border-radius:10px; color:#51415f; background:#fbfafc; cursor:pointer; font-size:.64rem; }
.app-icon { pointer-events:none; }
button,label,select,input[type="checkbox"] { touch-action:manipulation; }
.detail-option-grid .app-icon { width:18px; height:18px; }
.maintenance-bottom-bar button { display:flex; align-items:center; justify-content:center; gap:7px; min-width:0; border:0; color:#372549; background:transparent; cursor:pointer; }
.bottom-tool-menu>span,.bottom-security-tool>span,.bottom-validate-tool>span { display:grid; width:47px; height:47px; flex:0 0 47px; place-items:center; border-radius:50%; color:#372549; background:#fff; font-size:1.6rem; }
.bottom-tool-menu>span { font-size:1.8rem; }
.bottom-security-tool small,.bottom-validate-tool small { color:#fff; font-size:.62rem; line-height:1.25; }
.bottom-validate-tool>span { font-size:1.85rem; }
.maintenance-bottom-bar button:disabled { cursor:not-allowed; opacity:.7; }
.maintenance-tools-scrim { position:fixed; z-index:30; inset:0; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(25,19,31,.52); }
.maintenance-tools-menu { display:flex; width:min(100%,360px); max-height:calc(100dvh - 36px); flex-direction:column; overflow:auto; background:#372549; box-shadow:0 12px 38px rgba(0,0,0,.35); }
.maintenance-tool-item { display:flex; min-height:66px; align-items:center; gap:10px; padding:8px; border:0; border-bottom:2px solid #a8aa59; color:#fff; text-align:left; background:#372549; }
.maintenance-tool-item:disabled { cursor:not-allowed; opacity:1; }
.maintenance-tool-item>span { display:grid; width:50px; height:50px; flex:0 0 50px; place-items:center; border-radius:50%; color:#372549; background:#fff; font-size:1.5rem; }
.maintenance-tool-item strong { font-size:.85rem; font-weight:600; line-height:1.35; }
.maintenance-tools-menu>p { margin:0; padding:10px; color:#e6e1e9; background:#2d2038; font-size:.58rem; line-height:1.4; }
.detail-operations { margin-top:18px; padding:14px; border-radius:16px; background:#fbfafc; }
.detail-operations h3 { margin:4px 0 0; color:#372549; font-size:.86rem; }
.operation-count { padding:5px 8px; border-radius:999px; color:#565925; background:#eeefd8; font-size:.62rem; }
.readonly-operations { display:flex; flex-direction:column; gap:0; margin:12px 0 0; padding:0; }
.readonly-operation { display:grid; grid-template-columns:20px minmax(0,1fr); align-items:center; gap:11px; padding:12px 5px; border-bottom:1px solid #e7e2e9; cursor:default; }
.readonly-operation:last-child { border-bottom:0; }
.readonly-operation input { display:grid; width:18px; height:18px; appearance:none; place-items:center; margin:0; border:1.5px solid #91889a; border-radius:50%; background:#fff; }
.readonly-operation input:checked { border-color:#60642e; color:#fff; background:#60642e; }
.readonly-operation input:checked::after { content:"✓"; font-size:.68rem; line-height:1; }
.readonly-operation input:disabled { opacity:1; }
.readonly-operation-label { color:#372549; font-size:.67rem; font-weight:500; line-height:1.45; letter-spacing:normal; text-transform:none; overflow-wrap:anywhere; }
.detail-tools { margin-top:18px; padding:14px; border:1px solid #e7e2e9; border-radius:16px; background:#fff; }
.detail-tools h3 { margin:4px 0 0; color:#372549; font-size:.86rem; }
.tool-status-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:12px; }
.tool-status-grid>div { display:flex; min-width:0; flex-direction:column; gap:5px; padding:11px; border-radius:12px; background:#fbfafc; }
.tool-status-grid strong { color:#372549; font-size:.68rem; }
.tool-status-grid small { color:#776f7c; font-size:.61rem; line-height:1.45; overflow-wrap:anywhere; }
.detail-heading { display:flex; align-items:flex-start; justify-content:space-between; }
.icon-button { display:grid; width:44px; height:44px; place-items:center; border:0; border-radius:14px; color:#372549; background:#f0edf3; cursor:pointer; font-size:1.3rem; }
.detail-panel>p { margin:13px 0 16px; color:#6f6674; font-size:.72rem; line-height:1.5; }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin:0; }
.detail-grid div { padding:12px; border-radius:14px; background:#f8f7f9; }
.detail-grid dt { color:#8a828e; font-size:.58rem; }
.detail-grid dd { margin:5px 0 0; color:#372549; font-size:.72rem; font-weight:600; }
.safe-read-note { display:flex; align-items:center; gap:8px; margin-top:14px; padding:11px 12px; border-radius:13px; color:#555824; background:#eeefd8; font-size:.62rem; line-height:1.4; }
.safe-read-note span { font-weight:600; }
.detail-error { margin-top:12px; padding:11px 12px; border-radius:12px; color:#7d2938; background:#fff0f2; font-size:.66rem; line-height:1.45; }
.sync-card { margin-top:12px; padding:16px; border:1px solid rgba(55,37,73,.07); border-radius:20px; background:linear-gradient(145deg,#fff,#f7f5f8); box-shadow:0 9px 30px rgba(55,37,73,.055); }
.sync-main { display:flex; align-items:center; gap:11px; }
.sync-main>div { display:flex; min-width:0; flex:1; flex-direction:column; gap:3px; }
.sync-main strong { color:#372549; font-size:.8rem; }
.sync-main small { color:#776f7c; font-size:.62rem; line-height:1.4; }
.network-dot { width:12px; height:12px; flex:0 0 12px; border-radius:50%; box-shadow:0 0 0 5px rgba(185,186,108,.18); }
.network-dot.online { background:#96983f; }
.network-dot.offline { background:#b65b69; box-shadow:0 0 0 5px rgba(182,91,105,.12); }
.sync-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:13px; }
.automatic-sync-note { display:flex; align-items:center; gap:6px; margin:10px 2px 0; color:#6f6674; font-size:.57rem; line-height:1.4; }
.automatic-sync-note span { display:grid; width:17px; height:17px; flex:0 0 17px; place-items:center; border-radius:50%; color:#372549; background:#eeefd8; font-size:.7rem; font-weight:600; }
.secondary-button { min-height:40px; padding:0 11px; border:1px solid #d8d2dc; border-radius:13px; color:#5d496c; background:#fff; cursor:pointer; font-size:.6rem; font-weight:600; }
.compact-button { min-height:40px; margin:0; padding:0 11px; font-size:.6rem; }
.sync-message { margin-top:11px; padding:9px 11px; border-radius:11px; font-size:.6rem; line-height:1.4; }
.sync-message.success { color:#555824; background:#eeefd8; }
.sync-message.warning { color:#785f1d; background:#fff6d9; }
.sync-message.error { color:#7d2938; background:#fff0f2; }
.conflict-banner { display:flex; flex-direction:column; gap:4px; margin-top:11px; padding:11px 12px; border-left:3px solid #b65b69; border-radius:10px; color:#6f2432; background:#fff0f2; }
.conflict-banner strong { font-size:.66rem; }
.conflict-banner span { font-size:.59rem; line-height:1.45; }
.outbox-history { margin-top:11px; border-top:1px solid #ebe7ed; padding-top:10px; }
.outbox-history summary { color:#5d496c; cursor:pointer; font-size:.61rem; font-weight:600; }
.outbox-history ul { display:flex; flex-direction:column; gap:6px; margin:9px 0 0; padding:0; list-style:none; }
.outbox-history li { display:flex; justify-content:space-between; gap:8px; padding:7px 9px; border-radius:9px; background:#f3f0f5; font-size:.58rem; }
.outbox-history small { color:#7c7381; }
.locked-work { display:flex; flex-direction:column; gap:4px; margin:0 0 16px; padding:11px 12px; border-left:3px solid #B9BA6C; border-radius:11px; color:#555824; background:#eeefd8; }
.locked-work strong { font-size:.66rem; }
.locked-work span { font-size:.59rem; line-height:1.45; }
.action-zone { display:flex; flex-direction:column; margin-top:15px; padding:15px; border-radius:17px; background:#f3f0f5; }
.action-zone>strong { margin-top:4px; color:#372549; font-size:.78rem; }
.action-zone p { margin:6px 0 2px; color:#6f6674; font-size:.62rem; line-height:1.45; }
.full-button { width:100%; }
.queued-note { display:flex; align-items:center; gap:10px; margin-top:14px; padding:12px; border-radius:14px; color:#5d496c; background:#eee8f1; }
.queued-note>span { display:grid; width:30px; height:30px; place-items:center; border-radius:10px; color:#fff; background:#5d496c; }
.queued-note div { display:flex; flex-direction:column; gap:3px; }
.queued-note strong { font-size:.67rem; }
.queued-note small { font-size:.57rem; line-height:1.4; }
.detail-conflict { margin-top:14px; }
.draft-form { margin-top:18px; padding-top:17px; border-top:1px solid #ebe7ed; }
.form-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.form-section-heading h3 { margin:4px 0 0; color:#372549; font-size:.86rem; }
.local-save-state { flex:0 0 auto; padding:5px 7px; border-radius:999px; color:#555824; background:#eeefd8; font-size:.53rem; }
.draft-form fieldset { display:flex; flex-direction:column; gap:8px; margin:16px 0 0; padding:0; border:0; }
.draft-form legend { margin-bottom:8px; color:#372549; font-size:.66rem; font-weight:600; }
.operation-choice { display:flex; align-items:center; gap:10px; padding:11px; border:1px solid #e3dee6; border-radius:13px; cursor:pointer; background:#fbfafc; }
.operation-choice input { width:18px; height:18px; flex:0 0 18px; accent-color:#372549; }
.operation-choice span { display:flex; flex-direction:column; gap:3px; }
.operation-choice strong { font-size:.63rem; }
.operation-choice small { color:#8b5e32; font-size:.54rem; }
.form-field textarea { width:100%; resize:vertical; padding:12px 14px; border:1px solid #d8d2dc; border-radius:14px; color:#251d2c; background:#fbfafc; outline:none; font-size:.68rem; line-height:1.5; }
.form-field textarea:focus { border-color:#372549; box-shadow:0 0 0 3px rgba(185,186,108,.26); }
.form-field label span { color:#8a828e; font-weight:400; }
.breakdown-list-section { margin-top:8px; }
.breakdown-detail { margin-bottom:72px; }
.breakdown-treatment { margin-top:17px; padding-top:17px; border-top:1px solid #e7e2e9; }
.breakdown-treatment-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.breakdown-treatment-grid .form-field { min-width:0; margin-top:10px; }
.breakdown-treatment-grid select { width:100%; min-width:0; height:48px; padding:0 36px 0 13px; border:1px solid #d8d2dc; border-radius:14px; color:#251d2c; background:#fbfafc; font:inherit; font-size:.68rem; outline:none; }
.breakdown-treatment-grid select:focus { border-color:#372549; box-shadow:0 0 0 3px rgba(185,186,108,.26); }
.breakdown-stop-choice { display:flex; align-items:center; gap:11px; margin-top:16px; padding:12px 13px; border:1px solid #ddd5e2; border-radius:15px; color:#372549; background:#f7f3f8; cursor:pointer; }
.breakdown-stop-choice input { appearance:none; display:grid; width:22px; height:22px; flex:0 0 22px; place-items:center; margin:0; border:1.5px solid #75548d; border-radius:7px; background:#fff; cursor:pointer; }
.breakdown-stop-choice input:checked { color:#fff; background:#684181; }
.breakdown-stop-choice input:checked::after { content:"✓"; font-size:.78rem; font-weight:700; }
.breakdown-stop-choice span { display:flex; min-width:0; flex-direction:column; gap:3px; }
.breakdown-stop-choice strong { font-size:.67rem; }
.breakdown-stop-choice small { color:#7c7182; font-size:.56rem; line-height:1.35; }
.draft-policy { display:flex; align-items:center; gap:8px; margin-top:13px; padding:10px 11px; border-radius:12px; color:#5d496c; background:#f3f0f5; font-size:.58rem; line-height:1.4; }
.draft-policy span { display:grid; width:18px; height:18px; flex:0 0 18px; place-items:center; border-radius:50%; color:#fff; background:#5d496c; font-size:.55rem; font-weight:600; }
.duration-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.media-section,.signature-section { margin-top:18px; padding:15px; border:1px solid #e3dee6; border-radius:17px; background:#fbfafc; }
.media-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.media-heading h4 { margin:4px 0 0; color:#372549; font-size:.76rem; }
.media-heading h4 span { color:#8a828e; font-size:.58rem; font-weight:400; }
.media-rule,.signature-status { max-width:145px; color:#817887; text-align:right; font-size:.53rem; line-height:1.4; }
.media-picker { display:flex; min-height:76px; align-items:center; gap:11px; margin-top:13px; padding:12px; border:1px dashed #bdb3c3; border-radius:14px; cursor:pointer; background:#fff; }
.media-picker>span { display:grid; width:36px; height:36px; flex:0 0 36px; place-items:center; border-radius:12px; color:#372549; background:#eeefd8; font-size:1.2rem; }
.media-picker strong,.media-picker small { display:block; }
.media-picker strong { color:#372549; font-size:.63rem; }
.media-picker small { margin-top:3px; color:#837a88; font-size:.53rem; line-height:1.35; }
.media-picker.disabled { cursor:not-allowed; opacity:.5; }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; white-space:nowrap!important; }
.media-list { display:flex; flex-direction:column; gap:7px; margin:11px 0 0; padding:0; list-style:none; }
.media-list li { display:flex; align-items:center; gap:9px; padding:9px; border-radius:12px; background:#f1eef3; }
.media-icon { display:grid; width:30px; height:30px; flex:0 0 30px; place-items:center; border-radius:10px; color:#fff; background:#5d496c; font-size:.74rem; }
.media-list li>div { display:flex; min-width:0; flex:1; flex-direction:column; gap:3px; }
.media-list strong { overflow:hidden; font-size:.57rem; text-overflow:ellipsis; white-space:nowrap; }
.media-list small { color:#7b7280; font-size:.5rem; }
.media-list progress { width:100%; height:4px; border:0; accent-color:#B9BA6C; }
.media-remove { width:30px; height:30px; flex:0 0 30px; border:0; border-radius:10px; color:#6d5c75; background:#fff; cursor:pointer; }
.signature-canvas { display:block; width:100%; height:100px; margin-top:12px; border:1px dashed #bdb3c3; border-radius:13px; background:#fff; touch-action:none; }
.consent-choice { display:flex; align-items:flex-start; gap:8px; margin-top:10px; color:#645b69; font-size:.54rem; line-height:1.45; }
.consent-choice input { width:16px; height:16px; flex:0 0 16px; accent-color:#372549; }
.signature-actions { display:flex; align-items:center; justify-content:flex-end; gap:14px; margin-top:8px; }
.completion-policy { display:flex; flex-direction:column; gap:4px; margin-top:14px; padding:12px; border-left:3px solid #B9BA6C; border-radius:11px; color:#545724; background:#eeefd8; }
.completion-policy strong { font-size:.63rem; }
.completion-policy span { font-size:.54rem; line-height:1.45; }
.complete-button { min-height:46px; margin-top:9px; border:0; border-radius:14px; color:#372549; background:#B9BA6C; cursor:pointer; font-weight:600; }
.complete-button:disabled,.secondary-button:disabled { cursor:not-allowed; opacity:.5; }
.runtime-card { margin-top:12px; padding:16px; border:1px solid rgba(55,37,73,.07); border-radius:20px; background:#fff; box-shadow:0 9px 30px rgba(55,37,73,.055); }
.settings-page { display:flex; flex-direction:column; gap:10px; }
.settings-page-heading { padding:6px 2px 2px; }
.settings-page-heading h2 { margin:4px 0 6px; color:#372549; font-size:1.1rem; }
.settings-page-heading p { margin:0; color:#776f7c; font-size:.68rem; line-height:1.5; }
.settings-page .runtime-card { margin-top:0; }
.settings-back { display:flex; align-items:center; justify-content:center; gap:8px; }
.settings-back .app-icon { width:17px; height:17px; }
.settings-logout { display:flex; width:100%; min-height:44px; align-items:center; justify-content:center; gap:8px; margin-top:10px; border:1px solid #d8d2dc; border-radius:13px; color:#5d496c; background:#fff; cursor:pointer; font-size:.65rem; font-weight:600; }
.settings-logout .app-icon { width:19px; height:19px; }
.runtime-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.runtime-heading>div { display:flex; min-width:0; flex-direction:column; gap:4px; }
.runtime-heading strong { color:#372549; font-size:.72rem; }
.runtime-badge { flex:0 0 auto; padding:5px 7px; border-radius:999px; color:#555824; background:#eeefd8; font-size:.53rem; font-weight:600; }
.runtime-badge.ready { color:#785f1d; background:#fff6d9; }
.runtime-grid { display:grid; grid-template-columns:1.45fr 1fr 1fr; gap:6px; margin-top:12px; }
.runtime-grid span { display:flex; min-width:0; flex-direction:column; gap:3px; padding:9px; border-radius:11px; background:#f7f5f8; }
.runtime-grid strong { overflow:hidden; color:#372549; font-size:.58rem; text-overflow:ellipsis; white-space:nowrap; }
.runtime-grid small { color:#817887; font-size:.49rem; }
.runtime-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:11px; }
.update-button { width:100%; min-height:42px; margin-top:9px; border:0; border-radius:13px; color:#372549; background:#B9BA6C; cursor:pointer; font-size:.61rem; font-weight:600; }
.update-button:disabled { cursor:not-allowed; opacity:.5; }
.runtime-message { margin-top:9px; color:#6f6674; font-size:.57rem; line-height:1.45; }
.loading-progress { display:block; margin:20vh auto 1rem; }
#blazor-error-ui { display:none; position:fixed; inset:auto 0 0; padding:12px; background:#fff0f0; color:#6e1717; }
@media (max-width:360px) { .brand-hero { padding:8px 18px 7px; } .brand-hero p { margin-top:6px; } .app-content { padding-inline:14px; } .auth-card { padding:19px 17px; } .pilot-hint { align-items:flex-start; flex-direction:column; } .detail-grid,.duration-grid,.maintenance-filters,.tool-status-grid,.maintenance-equipment-data,.breakdown-treatment-grid { grid-template-columns:1fr; } .maintenance-entry-fields { grid-template-columns:1fr 1fr; } .maintenance-card-checks { padding-left:2px; } .sync-actions,.runtime-actions { grid-template-columns:1fr; } .runtime-grid { grid-template-columns:1fr; } .form-section-heading,.media-heading { flex-direction:column; } .media-rule,.signature-status { max-width:none; text-align:left; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } .spinner,.filter-loading .app-icon { animation:none; } }
