:root{--brand: #b5402b;--brand-600: #9c3523;--brand-50: #fbefec;--accent: #e08a2c;--accent-50: #fdf3e7;--bg: #f6f5f3;--surface: #ffffff;--surface-2: #faf9f7;--border: #e8e4df;--text: #22201d;--text-2: #6b655e;--text-3: #9a948c;--ok: #2f8a5b;--ok-50: #e8f5ee;--warn: #c98a12;--warn-50: #fdf5e3;--danger: #c23b30;--danger-50: #fcecea;--info: #3367b8;--info-50: #eaf1fb;--radius: 12px;--shadow: 0 1px 2px rgba(30, 20, 10, .05), 0 4px 16px rgba(30, 20, 10, .04);--sidebar: 248px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Heebo,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--brand);text-decoration:none}.app{display:flex;height:100vh;height:100dvh;overflow:hidden}.sidebar{width:var(--sidebar);background:#3d110a;color:#fff;display:flex;flex-direction:column;position:fixed;inset:0 0 0 auto;z-index:30;transition:transform .2s}.sidebar-logo{padding:22px 18px 18px;margin:0 14px 10px;border-bottom:1px solid rgba(255,255,255,.45)}.nav{padding:6px 10px;display:flex;flex-direction:column;gap:2px;flex:1}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;border:0;background:none;cursor:pointer;color:#fff;text-align:right;font-size:15px;font-weight:500}.nav-item:hover{background:#ffffff1a;color:#fff}.nav-item.active{background:#fff;color:var(--brand);font-weight:700;box-shadow:0 2px 8px #7832002e}.nav-item .count{margin-inline-start:auto;background:var(--accent);color:#fff;border-radius:99px;font-size:11px;padding:1px 7px;font-weight:700}.sidebar-foot{padding:14px 18px;font-size:12px;color:#ffffffd9;border-top:1px solid rgba(255,255,255,.35)}.main{flex:1;margin-right:var(--sidebar);min-width:0;display:flex;flex-direction:column;overflow-y:auto;scrollbar-gutter:stable}.topbar{height:62px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:20}.topbar h1{font-size:19px;margin:0;font-weight:700}.topbar .spacer{flex:1}.global-search{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:7px 12px;width:320px;max-width:40vw}.global-search input{border:0;outline:0;background:none;width:100%}.icon-btn{position:relative;border:1px solid var(--border);background:var(--surface);width:38px;height:38px;border-radius:10px;display:grid;place-items:center;cursor:pointer}.icon-btn:hover{background:var(--surface-2)}.icon-btn .dot{position:absolute;top:-4px;left:-4px;background:var(--brand);color:#fff;font-size:10px;border-radius:99px;padding:1px 6px;font-weight:700}.user-chip{display:flex;align-items:center;gap:10px;cursor:pointer}.avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;flex-shrink:0}.menu-toggle{display:none}.subtabs{display:flex;gap:4px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto}.subtab{border:0;background:none;cursor:pointer;padding:13px 14px;font-weight:500;color:var(--text-2);border-bottom:2.5px solid transparent;white-space:nowrap;display:flex;gap:6px;align-items:center}.subtab:hover{color:var(--text)}.subtab.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.subtab .count{background:var(--brand-50);color:var(--brand);border-radius:99px;font-size:11px;padding:0 7px;font-weight:700}.content{padding:22px 24px 60px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:18px}.card-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.card-head h3{margin:0;font-size:15px;font-weight:700}.card-head .spacer{flex:1}.grid{display:grid;gap:16px}.g-2{grid-template-columns:repeat(2,1fr)}.g-3{grid-template-columns:repeat(3,1fr)}.g-4{grid-template-columns:repeat(4,1fr)}.g-6{grid-template-columns:repeat(6,1fr)}.span-2{grid-column:span 2}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.toolbar .spacer{flex:1}.btn{display:inline-flex;align-items:center;gap:7px;border-radius:9px;padding:8px 14px;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-weight:500;white-space:nowrap}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-600)}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{border-color:transparent;background:none}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{color:var(--danger)}.btn.sm{padding:5px 10px;font-size:13px;border-radius:8px}.btn:disabled{opacity:.5;cursor:default}.input,.select,textarea.input{border:1px solid var(--border);border-radius:9px;padding:8px 11px;background:var(--surface);outline:0;width:100%}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-50)}.search-input{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:9px;padding:0 11px;background:var(--surface);min-width:240px}.search-input input{border:0;outline:0;padding:8px 0;width:100%;background:none}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12.5px;color:var(--text-2);font-weight:500}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1 / -1}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--border);background:var(--surface);border-radius:99px;padding:4px 11px;font-size:12.5px;cursor:pointer}.chip.on{background:var(--accent-50);border-color:var(--accent);color:#8a4f0f;font-weight:600}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:99px;padding:2px 10px;font-size:12px;font-weight:600;white-space:nowrap}.badge.ok{background:var(--ok-50);color:var(--ok)}.badge.warn{background:var(--warn-50);color:var(--warn)}.badge.danger{background:var(--danger-50);color:var(--danger)}.badge.info{background:var(--info-50);color:var(--info)}.badge.muted{background:#f0ede9;color:var(--text-2)}.badge.brand{background:var(--brand-50);color:var(--brand)}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse}.table th{text-align:right;font-weight:600;font-size:12.5px;color:var(--text-2);background:var(--surface-2);padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid #f1eeea;vertical-align:middle}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:#fdfaf6}.table tr:last-child td{border-bottom:0}.muted{color:var(--text-2)}.small{font-size:12.5px}.num{font-variant-numeric:tabular-nums}.strong{font-weight:600}.empty{padding:40px;text-align:center;color:var(--text-3)}.stat{padding:16px 18px;cursor:pointer;transition:transform .12s,box-shadow .12s}.stat:hover{transform:translateY(-1px);box-shadow:0 6px 20px #1e140a14}.stat .label{color:var(--text-2);font-size:13px;display:flex;align-items:center;gap:7px}.stat .value{font-size:26px;font-weight:800;margin-top:6px}.stat .hint{font-size:12px;color:var(--text-3);margin-top:2px}.stat.alert .value{color:var(--brand)}.list-row{display:flex;align-items:center;gap:12px;padding:11px 18px;border-bottom:1px solid #f1eeea}.list-row:last-child{border-bottom:0}.list-row .grow{flex:1;min-width:0}.alert-box{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:10px;background:var(--brand-50);color:#6b2216;margin-bottom:10px;cursor:pointer}.alert-box.warn{background:var(--warn-50);color:#6e4a06}.alert-box.info{background:var(--info-50);color:#1f3f74}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#19120c61;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--surface);border-radius:14px;width:620px;max-width:100%;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040}.modal.wide{width:900px}.modal-head{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-head h2{margin:0;font-size:17px;flex:1}.modal-body{padding:20px;overflow-y:auto}.modal-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-start}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#19120c4d;z-index:45}.drawer{position:fixed;top:0;bottom:0;left:0;width:640px;max-width:100%;background:var(--bg);z-index:46;display:flex;flex-direction:column;box-shadow:10px 0 40px #00000026}.drawer-head{background:var(--surface);padding:18px 22px;border-bottom:1px solid var(--border);display:flex;gap:14px;align-items:center}.drawer-head h2{margin:0;font-size:19px}.drawer-body{padding:18px 22px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:14px}.kv{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;font-size:13.5px}.kv dt{color:var(--text-2)}.kv dd{margin:0}.timeline{display:flex;flex-direction:column}.timeline .t-item{display:flex;gap:10px;padding:9px 0;border-bottom:1px dashed var(--border)}.timeline .t-item:last-child{border-bottom:0}.t-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);margin-top:6px;flex-shrink:0}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border);border-right:1px solid var(--border)}.cal-h{padding:8px;font-weight:600;font-size:12.5px;color:var(--text-2);background:var(--surface-2);border-left:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center}.cal-d{min-height:104px;padding:6px;border-left:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface)}.cal-d.out{background:var(--surface-2);color:var(--text-3)}.cal-d.today{box-shadow:inset 0 0 0 2px var(--accent)}.cal-d .dn{font-size:12px;font-weight:600;margin-bottom:4px}.cal-ev{font-size:11.5px;padding:2px 6px;border-radius:5px;margin-bottom:3px;background:var(--info-50);color:var(--info);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.cal-ev.done{background:var(--ok-50);color:var(--ok);text-decoration:line-through}.cal-ev.missed{background:var(--danger-50);color:var(--danger)}.status-seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.status-seg button{border:0;background:var(--surface);padding:4px 9px;font-size:12px;cursor:pointer;border-left:1px solid var(--border)}.status-seg button:last-child{border-left:0}.status-seg button.on.pending{background:var(--warn-50);color:var(--warn);font-weight:700}.status-seg button.on.done{background:var(--ok-50);color:var(--ok);font-weight:700}.status-seg button.on.missed{background:var(--danger-50);color:var(--danger);font-weight:700}.perm-table td,.perm-table th{text-align:center}.perm-table td:first-child,.perm-table th:first-child{text-align:right}.route-col{min-width:260px;flex:1}.stop{display:flex;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid #f1eeea}.stop .n{width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700;flex-shrink:0}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:#1f1a17;color:#fff;padding:11px 20px;border-radius:10px;z-index:100;box-shadow:0 8px 30px #00000040}.letter{background:#fff;border:1px solid var(--border);border-radius:10px;padding:34px 40px;line-height:1.9}.letter img{height:80px;display:block;margin:0 auto 18px}.ext-page{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:30px 16px}.ext-card{width:480px;max-width:100%}.ext-card .logo{display:block;height:100px;margin:0 auto 14px}.print-only{display:none}@media print{.sidebar,.topbar,.subtabs,.toolbar,.no-print,.btn{display:none!important}.main{margin:0!important}.content{padding:0}.card{box-shadow:none;border:0}.print-only{display:block}body{background:#fff}.print-head{display:flex!important;align-items:center;gap:16px;border-bottom:2px solid var(--brand);padding-bottom:10px;margin-bottom:14px}.print-head img{height:64px}}@media (max-width: 1100px){.g-6{grid-template-columns:repeat(3,1fr)}.g-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 860px){.sidebar{transform:translate(100%)}.sidebar.open{transform:none}.main{margin-right:0}.menu-toggle{display:grid}.global-search{display:none}.g-2,.g-3,.g-4{grid-template-columns:1fr}.g-6{grid-template-columns:repeat(2,1fr)}.span-2{grid-column:auto}.content{padding:16px}.topbar,.subtabs{padding:0 16px}.form-grid{grid-template-columns:1fr}.user-chip .name{display:none}.search-input{min-width:0;flex:1}}.cal-d .dn{display:flex;justify-content:space-between;align-items:baseline}.cal-d .dn .heb{font-size:15px;font-weight:700;color:var(--text)}.cal-d .dn .greg{font-size:11.5px;color:var(--text-3);font-weight:500}.cal-d.out .dn .heb{color:var(--text-3)}.cal-d.holy{background:#fffaf3}.cal-heb{font-size:11px;color:var(--accent);font-weight:600;margin-bottom:3px;line-height:1.3}.cal-heb.parasha{color:var(--text-2);font-weight:500}.cal-heb.chag{color:var(--brand);font-weight:700}.topbar .hdate{color:var(--text-2);font-size:13px;white-space:nowrap}@media (max-width: 860px){.topbar .hdate{display:none}.cal-d{min-height:70px;padding:3px}.cal-ev{display:none}}.login-card{padding-top:26px}.pw-wrap{position:relative}.pw-wrap .input{padding-left:42px}.pw-eye{position:absolute;left:6px;top:50%;transform:translateY(-50%);border:0;background:none;cursor:pointer;color:var(--text-2);padding:6px;display:grid;place-items:center;border-radius:6px}.pw-eye:hover{color:var(--brand);background:var(--surface-2)}.logo-img{width:100%;background:center / contain no-repeat}.login-logo{margin:0 auto 18px;max-width:280px}.cal-d.clickable{cursor:pointer}.cal-d.clickable:hover{background:#fffaf3}.cal-more{font-size:11.5px;color:var(--brand);font-weight:600}.dp{position:relative}.dp-field{display:flex;align-items:center;gap:8px;text-align:right;cursor:pointer;white-space:nowrap;overflow:hidden}.dp-pop{position:fixed;z-index:80;width:340px;padding:10px}.dp-head{display:flex;align-items:center;gap:6px;margin-bottom:8px}.dp-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.dp-wd{text-align:center;font-size:11.5px;color:var(--text-2);font-weight:600;padding:3px 0}.dp-day{border:1px solid transparent;background:none;border-radius:7px;min-height:46px;padding:3px 2px;cursor:pointer;display:flex;flex-direction:column;align-items:center;line-height:1.15}.dp-day:hover{background:var(--accent-50)}.dp-day.out{opacity:.4}.dp-day.holy{background:#fffaf3}.dp-day.today{border-color:var(--accent)}.dp-day.sel{background:var(--brand);color:#fff}.dp-day.sel .dp-greg,.dp-day.sel .dp-ev{color:#fff}.dp-heb{font-size:13.5px;font-weight:700}.dp-greg{font-size:10.5px;color:var(--text-3)}.dp-ev{font-size:9px;color:var(--accent);font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-ev.parasha{color:var(--text-2);font-weight:500}.dp-ev.chag{color:var(--brand);font-weight:700}.dp-foot{display:flex;gap:6px;margin-top:8px;border-top:1px solid var(--border);padding-top:8px}@media (max-width: 860px){.dp-pop{position:fixed;top:50%;left:50%;right:auto;transform:translate(-50%,-50%);width:min(360px,94vw)}}.logo-svg{max-width:100%;margin:0 auto}.ext-logo{margin:0 auto 14px}.login-logo{margin:0 auto 18px}.main::-webkit-scrollbar{width:10px}.main::-webkit-scrollbar-track{background:transparent}.main::-webkit-scrollbar-thumb{background:#d9d2c9;border-radius:10px;border:2px solid var(--bg)}.main::-webkit-scrollbar-thumb:hover{background:#c2b8ac}@media print{.app{height:auto;overflow:visible}.main{overflow:visible}}.topbar,.subtabs{flex-shrink:0}.demo-banner{flex-shrink:0;background:#fdf3e7;border-bottom:1px solid #f1d3ad;color:#6e3d08;padding:8px 24px;font-size:13px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.demo-banner .btn{margin-inline-start:auto}.demo-entry{margin-top:16px;padding-top:16px;border-top:1px dashed var(--border)}.vp{position:relative;min-width:0}.vp-field{display:flex;align-items:center;gap:8px;cursor:pointer;text-align:right;white-space:nowrap}.vp-field.compact{padding-top:7px;padding-bottom:7px}.vp-clear{display:grid;place-items:center;color:var(--text-3);border-radius:50%;padding:2px}.vp-clear:hover{color:var(--danger);background:var(--danger-50)}.vp-pop{position:fixed;z-index:80;width:400px;max-width:92vw;padding:10px}@media (max-width: 860px){.vp-pop{top:50%;left:50%;transform:translate(-50%,-50%)}}.vp-areas{display:flex;flex-wrap:wrap;gap:5px;max-height:92px;overflow-y:auto}.vp-areas .chip{padding:3px 9px;font-size:12px}.vp-list{max-height:300px;overflow-y:auto;border-top:1px solid var(--border)}.vp-item{display:flex;align-items:center;gap:8px;padding:8px 6px;border-bottom:1px solid #f1eeea;cursor:pointer;border-radius:6px}.vp-item:hover{background:var(--accent-50)}.vp-item.sel{background:var(--brand-50)}.ext-page{background:#3d110a;min-height:100vh}.ext-card{box-shadow:0 20px 60px #00000059;border:0}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pay-card{width:560px}.pay-frame-box{border:1px solid var(--border);border-radius:10px;padding:8px 10px 0;background:#fff}.pay-btn{width:100%;justify-content:center;margin-top:16px;padding:13px;font-size:16px}.loading-screen{flex-direction:column;align-items:center;justify-content:center;gap:34px}.loading-stage{position:relative;width:260px;height:260px;display:grid;place-items:center}.loading-logo{animation:logo-breathe 2.2s ease-in-out infinite;filter:drop-shadow(0 8px 24px rgba(224,138,44,.35))}@keyframes logo-breathe{0%,to{transform:scale(.86) rotate(-2deg)}50%{transform:scale(1.08) rotate(2deg)}}.loading-ring{position:absolute;top:30px;right:30px;bottom:30px;left:30px;border-radius:50%;border:2px solid rgba(224,138,44,.55);animation:ring-out 2.2s ease-out infinite}.loading-ring.r2{animation-delay:1.1s;border-color:#ffffff59}@keyframes ring-out{0%{transform:scale(.55);opacity:.9}to{transform:scale(1.35);opacity:0}}.loading-text{color:#f3e3d3;font-size:17px;font-weight:500;letter-spacing:.3px}.loading-dots i{font-style:normal;animation:dot-blink 1.4s infinite}.loading-dots i:nth-child(2){animation-delay:.2s}.loading-dots i:nth-child(3){animation-delay:.4s}@keyframes dot-blink{0%,80%,to{opacity:.2}40%{opacity:1}}@media (prefers-reduced-motion: reduce){.loading-logo,.loading-ring,.loading-dots i{animation:none}}
