:root{--accent: #1a2b4a;--accent-hover: #24395f;--bg: #f4f5f8;--card-bg: #ffffff;--text: #1c1e24;--muted: #5a5f6b;--border: #d4d8e0;--error: #a3172b;--error-bg: #fbe9ec;--ok: #1d6b3a;--ok-bg: #e6f3ea;--warn-bg: #fdf3d7;--warn-text: #6b5310;--focus: #2b6cb0;--radius: 10px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;font-size:1rem}h1{font-size:1.4rem;margin:0 0 .75rem}h2{font-size:1.05rem;margin:0 0 .5rem;color:var(--accent)}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:#eef0f4;padding:.1em .35em;border-radius:4px}.hash{word-break:break-all}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.app-header{background:var(--accent);color:#fff}.app-header-inner{max-width:720px;margin:0 auto;padding:.5rem 1rem;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}.app-title{font-weight:700;font-size:1.1rem}.app-nav{display:flex;gap:.25rem}.app-nav a{color:#d8deea;text-decoration:none;padding:.7rem .9rem;min-height:48px;display:inline-flex;align-items:center;border-radius:6px}.app-nav a:hover{background:var(--accent-hover);color:#fff}.app-nav a.active{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:6px}.app-user{margin-left:auto;display:flex;align-items:center;gap:.5rem}.app-username{font-size:.9rem;color:#d8deea}.app-main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:1rem}.app-footer{background:#e8eaef;border-top:1px solid var(--border);margin-top:2rem}.app-footer p{max-width:720px;margin:0 auto;padding:.9rem 1rem;font-size:.8rem;color:var(--muted)}.offline-banner{background:var(--warn-bg);color:var(--warn-text);border-bottom:1px solid #e5d59a;padding:.7rem 1rem;font-size:.9rem;text-align:center}.page>*+*{margin-top:1rem}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.card>*+*{margin-top:.75rem}.card h2{margin-top:0}.status-card{text-align:center;padding:1.5rem 1rem}.status-card-active{border-color:var(--accent);border-width:2px}.status-title{font-size:1.25rem;font-weight:700;margin:0}.muted{color:var(--muted);font-size:.9rem}.notice{background:#e9edf5;border-left:4px solid var(--accent);padding:.75rem 1rem;border-radius:0 var(--radius) var(--radius) 0;font-size:.95rem}.trip-list{list-style:none;margin:0;padding:0}.trip-list li+li{border-top:1px solid var(--border)}.trip-row{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:center;justify-content:space-between;padding:.8rem .25rem;min-height:48px;color:inherit;text-decoration:none}.trip-row:hover{background:#f0f2f7}.trip-row-main{flex:1 1 14rem}.failed-ops{margin:0;padding:0;list-style:none;font-size:.9rem}.failed-ops li{background:var(--error-bg);border-radius:6px;padding:.5rem .75rem;margin-top:.4rem}.badges{display:inline-flex;flex-wrap:wrap;gap:.35rem}.badge{display:inline-block;font-size:.78rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;border:1px solid transparent;white-space:nowrap;margin-left:.25rem}.badge:first-child{margin-left:0}.badge-running{background:#e3edfb;color:#17457c;border-color:#b9d2f0}.badge-completed{background:var(--ok-bg);color:var(--ok);border-color:#b7dcc4}.badge-correction{background:var(--warn-bg);color:var(--warn-text);border-color:#e5d59a}.badge-corrected{background:#efe7f8;color:#5b3387;border-color:#d5c3ea}.badge-cancelled{background:var(--error-bg);color:var(--error);border-color:#eec3ca}.badge-offline{background:#eef0f4;color:#3d4250;border-color:#ccd1db}.badge-local{background:var(--warn-bg);color:var(--warn-text);border-color:#e5d59a}.field{display:flex;flex-direction:column;gap:.3rem}.field+.field{margin-top:.75rem}label{font-weight:600;font-size:.95rem}input[type=text],input[type=password],input[type=date],input[type=datetime-local],select{font:inherit;padding:.65rem .75rem;min-height:48px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);width:100%}input[aria-invalid=true]{border-color:var(--error)}input[type=checkbox]{width:1.6rem;height:1.6rem;accent-color:var(--accent);flex-shrink:0}.checkbox-row{display:flex;align-items:flex-start;gap:.75rem;font-weight:400;min-height:48px;cursor:pointer}.field-error,.form-error{color:var(--error);font-size:.9rem;margin:.25rem 0 0}.form-error{background:var(--error-bg);border-radius:6px;padding:.6rem .75rem}.btn{font:inherit;font-weight:600;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.6rem 1.2rem;border-radius:8px;border:1px solid transparent;cursor:pointer;text-decoration:none;text-align:center}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:not(:disabled):hover{background:var(--accent-hover)}.btn-secondary{background:#fff;color:var(--accent);border-color:var(--accent)}.btn-secondary:not(:disabled):hover{background:#eef1f7}.btn-ghost{background:transparent;color:#fff;border-color:#ffffff80}.btn-ghost:hover{background:var(--accent-hover)}.btn-block{display:flex;width:100%}.btn-big{font-size:1.1rem;min-height:56px}.login-page .app-main{display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:380px}.login-card form{margin-top:1rem}.login-card form>*+*{margin-top:.9rem}.detail-list{margin:0;display:grid;grid-template-columns:1fr;gap:.15rem}.detail-list dt{font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin-top:.6rem}.detail-list dt:first-child{margin-top:0}.detail-list dd{margin:0}@media (min-width: 560px){.detail-list{grid-template-columns:12rem 1fr;gap:.4rem 1rem;align-items:baseline}.detail-list dt{margin-top:0}}.filter-row{display:grid;grid-template-columns:1fr;gap:.75rem}.filter-row .field+.field{margin-top:0}@media (min-width: 560px){.filter-row{grid-template-columns:repeat(3,1fr)}}.signature-pad>*+*{margin-top:.6rem}.signature-canvas{display:block;width:100%;height:200px;border:2px dashed var(--border);border-radius:var(--radius);background:#fff;touch-action:none;cursor:crosshair}.signature-canvas-confirmed{border-style:solid;border-color:var(--ok);cursor:default}.signature-hint{font-size:.9rem;color:var(--muted);margin:0}.signature-hint-ok{color:var(--ok)}.signature-actions{display:flex;flex-wrap:wrap;gap:.6rem}.signature-actions .btn{flex:1 1 12rem}.confirmation-card{border-color:var(--ok);border-width:2px}.notice-warn{background:var(--warn-bg);border-left-color:#c9a227;color:var(--warn-text)}.notice-ok{background:var(--ok-bg);border-left-color:var(--ok);color:var(--ok)}.notice-error{background:var(--error-bg);border-left-color:var(--error);color:var(--error)}.admin-grid{display:grid;grid-template-columns:1fr;gap:.75rem}@media (min-width: 560px){.admin-grid{grid-template-columns:repeat(2,1fr)}}.admin-card-link{display:block;color:inherit;text-decoration:none}.admin-card-link:hover{border-color:var(--accent)}.admin-card-link h2{margin-bottom:.25rem}.problem-list{margin:0;padding-left:1.2rem}.problem-list li{color:var(--error)}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.88rem}.data-table th,.data-table td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid var(--border);vertical-align:top;white-space:nowrap}.data-table td.wrap{white-space:normal}.data-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.admin-row{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:center;justify-content:space-between;padding:.7rem .25rem}.admin-row+.admin-row{border-top:1px solid var(--border)}.admin-row-main{flex:1 1 14rem}.admin-row-actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn-small{min-height:40px;padding:.35rem .8rem;font-size:.9rem}.btn-danger-outline{background:#fff;color:var(--error);border-color:var(--error)}.btn-danger-outline:not(:disabled):hover{background:var(--error-bg)}textarea{font:inherit;padding:.65rem .75rem;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);width:100%;min-height:5.5rem;resize:vertical}textarea[aria-invalid=true]{border-color:var(--error)}.check-list{list-style:none;margin:0;padding:0}.check-list .checkbox-row{min-height:40px}.pw-reset-inline{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.pw-reset-inline input{min-width:220px}a.app-username{text-decoration:underline;text-underline-offset:3px}
