:root{--bg:#f5f6f8;--surface:#ffffff;--text:#1c2430;--muted:#667085;--border:#e2e5ea;--primary:#0b5c4a;--primary-text:#ffffff;--accent:#e8f3f0;--danger:#b42318;--danger-bg:#fdecea;--success:#067647;--success-bg:#e7f6ee;--warning:#9a5b00;--warning-bg:#fff4de;--info:#175cd3;--info-bg:#e8f0fe;--progress:#5925dc;--progress-bg:#efe9fe;--radius:8px}@media (prefers-color-scheme:dark){:root{--bg:#11151b;--surface:#1a2029;--text:#e8ecf1;--muted:#9aa5b4;--border:#2b3441;--primary:#3fb59a;--primary-text:#08231d;--accent:#16302a;--danger:#ff8a7a;--danger-bg:#3a1c19;--success:#5fd49a;--success-bg:#14301f;--warning:#f5b95c;--warning-bg:#38290e;--info:#8ab4ff;--info-bg:#17243d;--progress:#b9a2ff;--progress-bg:#271f45}}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--primary)}h1{font-size:1.5rem;margin:0}h2{font-size:1.05rem;margin:0 0 .75rem}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1rem .75rem;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{font-weight:700;font-size:1.05rem;padding:.25rem .5rem 1rem}.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1 1}.nav-link{padding:.5rem .6rem;border-radius:6px;color:var(--text);text-decoration:none}.nav-link.active,.nav-link:hover{background:var(--accent)}.nav-link.active{color:var(--primary);font-weight:600}.sidebar-foot{border-top:1px solid var(--border);padding-top:.75rem;display:grid;grid-gap:.35rem;gap:.35rem}.who{font-weight:600;overflow-wrap:anywhere}.content{padding:1.5rem 2rem 3rem;min-width:0;max-width:1200px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.page-header p{margin:.25rem 0 0}.actions{display:flex;gap:.5rem;flex-wrap:wrap}@media (max-width:800px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;align-items:center;gap:.5rem}.sidebar,.sidebar nav{flex-direction:row;flex-wrap:wrap}.sidebar nav{flex:1 1 100%;order:3}.sidebar-foot{border:0;padding:0;display:flex;gap:.75rem;align-items:center;margin-left:auto}.content{padding:1rem}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1rem}.grid{display:grid;grid-gap:1rem;gap:1rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:1rem}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem .9rem;text-decoration:none;color:inherit;display:block}.stat:hover{border-color:var(--primary)}.stat .n{font-size:1.6rem;font-weight:700;display:block}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table td,.table th{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--border);vertical-align:top}.table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);white-space:nowrap}.table .num{text-align:right;white-space:nowrap}.empty{padding:1rem 0}.badge{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.8rem;font-weight:600;white-space:nowrap}.badge-neutral{background:var(--border);color:var(--text)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-progress{background:var(--progress-bg);color:var(--progress)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.alert{padding:.6rem .8rem;border-radius:6px;margin:0 0 1rem;overflow-wrap:anywhere}.alert-error{background:var(--danger-bg);color:var(--danger)}.alert-success{background:var(--success-bg);color:var(--success)}.alert-info{background:var(--info-bg);color:var(--info)}.pagination{display:flex;gap:.75rem;align-items:center;justify-content:flex-end;margin-top:.75rem}.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:.75rem 1.25rem;gap:.75rem 1.25rem;margin:0}.kv dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.kv dd{margin:.1rem 0 0;overflow-wrap:anywhere}.timeline{list-style:none;margin:0;padding:0 0 0 1rem;border-left:2px solid var(--border);display:grid;grid-gap:.8rem;gap:.8rem}.timeline li{display:grid;grid-gap:.15rem;gap:.15rem;justify-items:start}.field{display:grid;grid-gap:.25rem;gap:.25rem;margin-bottom:.8rem}.field>span{font-size:.85rem;font-weight:600}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.45rem .6rem;width:100%}textarea{min-height:9rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:0}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:0 1rem;gap:0 1rem}.filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;margin-bottom:1rem}.filters .field{margin:0;min-width:150px}.btn{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:.42rem .85rem}.btn:hover:not(:disabled){border-color:var(--primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text);font-weight:600}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-ghost{background:transparent;text-align:left}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.75rem;width:min(100%,380px)}.login-card h1{margin-bottom:.25rem}.login-card p{margin:0 0 1.25rem}.login-card .btn{width:100%;margin-top:.4rem}.plain{list-style:none;padding:0;margin:0 0 .75rem;display:grid;grid-gap:.5rem;gap:.5rem}.print-control{display:inline-flex;gap:.4rem;align-items:center;flex-wrap:wrap}.print-control select{width:auto}.pod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:.75rem;gap:.75rem}.pod-item{margin:0}.pod-item img{width:100%;height:140px;object-fit:cover;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.m-shell{min-height:100vh;display:flex;flex-direction:column}.m-top{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem}.m-top .small{flex:1 1;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-main{flex:1 1;padding:1rem 1rem 5.5rem;max-width:640px;width:100%;margin:0 auto}.m-tabs{position:fixed;bottom:0;left:0;right:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.m-tab{text-align:center;padding:.85rem .25rem;text-decoration:none;color:var(--muted);font-weight:600}.m-tab.active{color:var(--primary);box-shadow:inset 0 3px 0 var(--primary)}.job{display:block;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.9rem 1rem;margin-bottom:.7rem;text-decoration:none;color:inherit}.job .row{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start}.btn-big{width:100%;padding:.9rem 1rem;font-size:1.05rem;font-weight:700;border-radius:10px;margin-top:.6rem}.sig-pad{height:160px;border:2px dashed var(--border);background:#fff;touch-action:none;display:block}.photo-preview,.sig-pad{width:100%;border-radius:10px;margin-bottom:.4rem}.photo-preview{max-height:220px;object-fit:cover;border:1px solid var(--border)}.step-title{display:flex;justify-content:space-between;font-weight:700;margin:.8rem 0 .4rem}.req{color:var(--danger)}