body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body,html{overflow-x:hidden}body{background-color:#f8f9fa;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;position:relative}#root,.App,body,html{max-width:100%;overflow-x:hidden;width:100%}.min-h-screen{min-height:100vh}.bg-gray-50{background-color:#f8f9fa}.bg-white{background-color:#fff}.max-w-6xl{margin:0 auto;max-width:72rem}.mx-auto{margin-left:auto;margin-right:auto}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-4{padding-bottom:1rem;padding-top:1rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}header{background-color:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px 0 #0000001a}.h-16{height:4rem}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.space-x-3>:not([hidden])~:not([hidden]){margin-left:.75rem}.space-x-1>:not([hidden])~:not([hidden]){margin-left:.25rem}.space-x-2>:not([hidden])~:not([hidden]){margin-left:.5rem}.w-8{width:2rem}.h-8{height:2rem}.w-5{width:1.25rem}.h-5{height:1.25rem}.w-4{width:1rem}.h-4{height:1rem}.w-10{width:2.5rem}.h-10{height:2.5rem}.bg-blue-600{background-color:#2563eb}.bg-blue-100{background-color:#dbeafe}.bg-green-100{background-color:#dcfce7}.bg-orange-100{background-color:#fed7aa}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-semibold{font-weight:600}.font-medium{font-weight:500}.text-gray-900{color:#111827}.text-gray-600{color:#4b5563}.text-blue-700{color:#1d4ed8}.text-blue-600{color:#2563eb}.text-green-600{color:#16a34a}.text-orange-600{color:#ea580c}nav button{align-items:center;background:#0000;border:none;border-radius:.375rem;color:#4b5563;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;padding:.5rem .75rem;transition:all .2s}nav button:hover{background-color:#f3f4f6;color:#111827}nav button.active{background-color:#dbeafe;color:#1d4ed8}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.gap-4{gap:1rem}.gap-6{gap:1.5rem}@media (min-width:768px){.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.border{border-width:1px}.border-gray-200{border-color:#e5e7eb}.border-blue-300{border-color:#93c5fd}.border-green-300{border-color:#86efac}.shadow-sm{box-shadow:0 1px 2px 0 #0000000d}button{background:#0000;border:none;cursor:pointer}.text-left{text-align:left}.transition-all{transition:all .2s ease-in-out}.animate-spin{animation:spin 1s linear infinite}.rounded-full{border-radius:9999px}.border-b-2{border-bottom-width:2px}button:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.content-card{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.5rem;transition:all .2s ease-in-out}.content-card:hover{border-color:#93c5fd;box-shadow:0 1px 2px 0 #0000000d}.stat-card{background:#fff;border:1px solid #e5e7eb;padding:1rem}.icon-container,.stat-card{align-items:center;border-radius:.5rem;display:flex}.icon-container{justify-content:center;margin-right:.75rem}.icon-blue{background-color:#dbeafe;color:#2563eb}.icon-green{background-color:#dcfce7;color:#16a34a}.icon-orange{background-color:#fed7aa;color:#ea580c}.action-button{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;cursor:pointer;padding:1.5rem;text-align:left;transition:all .2s ease-in-out;width:100%}.action-button:hover{box-shadow:0 1px 2px 0 #0000000d}.action-button:hover.manage-team{border-color:#93c5fd}.action-button:hover.create-schedule{border-color:#86efac}.action-text{color:#2563eb;font-size:.875rem;font-weight:500}.action-text.green{color:#16a34a}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:.5rem;box-shadow:0 20px 25px -5px #0000001a;max-height:90vh;max-width:500px;overflow-y:auto;padding:1.5rem;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:1rem}.modal-header h2{color:#111827;font-size:1.25rem;font-weight:600;margin:0}.modal-close{background:none;border:none;border-radius:.25rem;color:#6b7280;cursor:pointer;font-size:1.5rem;padding:.25rem}.modal-close:hover{background-color:#f3f4f6}.form-group{margin-bottom:1rem}.form-label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.form-input{border:1px solid #d1d5db;border-radius:.375rem;color:#111827;font-size:.875rem;padding:.5rem;width:100%}.form-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-select{background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;color:#111827;font-size:.875rem;padding:.5rem;width:100%}.form-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.btn{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.btn-primary{background-color:#2563eb;color:#fff}.btn-primary:hover{background-color:#1d4ed8}.btn-secondary{background-color:#6b7280;color:#fff}.btn-secondary:hover{background-color:#4b5563}.btn-success{background-color:#16a34a;color:#fff}.btn-success:hover{background-color:#15803d}.hours-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:1rem}.hours-card{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem}.hours-card h4{color:#111827;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.time-inputs{align-items:center;display:flex;gap:.5rem}.time-input{border:1px solid #d1d5db;border-radius:.25rem;font-size:.75rem;padding:.25rem;width:80px}.time-separator{color:#6b7280;font-weight:500}.checkbox-grid{grid-gap:.5rem;border:1px solid #e5e7eb;border-radius:.375rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));max-height:200px;overflow-y:auto;padding:1rem}.checkbox-item{align-items:center;display:flex;gap:.5rem}.checkbox-item input[type=checkbox]{height:1rem;width:1rem}.checkbox-item label{color:#374151;cursor:pointer;font-size:.75rem}.schedule-v3{background:linear-gradient(160deg,#eef2fb,#f0f4fc 60%,#e8edf8);min-height:100vh;overflow-x:hidden;width:100%}.schedule-v3 .schedule-v3-topbar{background:#fff;border-bottom:1px solid #dde5f5;box-shadow:0 2px 20px #0f175012}.schedule-v3 .schedule-v3-shell{margin-left:auto;margin-right:auto;max-width:1440px;padding-left:clamp(1.25rem,3vw,3rem);padding-right:clamp(1.25rem,3vw,3rem);width:100%}.schedule-v3 .schedule-v3-body{display:flex;flex-direction:column;gap:1.5rem;padding-bottom:3rem;padding-top:1.75rem}.schedule-v3 .schedule-v3-card{background:#fff;border:1px solid #6366f11a;border-radius:20px;box-shadow:0 4px 24px #0f175012,0 1px 4px #0f17500a;overflow:hidden;transition:box-shadow .2s}.schedule-step-number{align-items:center;background:linear-gradient(135deg,#3b82f6,#6366f1);border-radius:.6rem;color:#fff;display:flex;flex-shrink:0;font-size:.7rem;font-weight:800;height:2rem;justify-content:center;letter-spacing:.02em;width:2rem}.schedule-step1-card{background:linear-gradient(135deg,#f8faff,#fff)!important}.schedule-step1-header{align-items:center;border-bottom:1px solid #eef2fb;display:flex;gap:1rem;padding:1.4rem 1.75rem 1rem}.schedule-step1-title{color:#1e2a4a;font-size:1.05rem;font-weight:700;letter-spacing:-.01em;margin:0 0 .2rem}.schedule-step1-sub{color:#6b7a99;font-size:.82rem;margin:0}.schedule-step1-presets{display:flex;flex-wrap:wrap;gap:.75rem;padding:1.1rem 1.75rem 1.4rem}.schedule-preset-btn{align-items:center;border:2px solid #0000;border-radius:14px;cursor:pointer;display:inline-flex;flex-direction:column;font-weight:700;gap:.15rem;line-height:1.2;min-width:90px;padding:.7rem 1.3rem;transition:all .18s ease}.schedule-preset-btn .preset-label{font-size:.92rem;font-weight:800}.schedule-preset-btn .preset-hours{font-size:.7rem;font-weight:500;opacity:.75}.schedule-preset-btn--open{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-color:#93c5fd;color:#1e40af}.schedule-preset-btn--open:hover{background:linear-gradient(135deg,#bfdbfe,#93c5fd);box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.schedule-preset-btn--95{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-color:#6ee7b7;color:#065f46}.schedule-preset-btn--95:hover{background:linear-gradient(135deg,#a7f3d0,#6ee7b7);box-shadow:0 4px 12px #10b9814d;transform:translateY(-1px)}.schedule-preset-btn--mid{background:linear-gradient(135deg,#ede9fe,#ddd6fe);border-color:#c4b5fd;color:#4c1d95}.schedule-preset-btn--mid:hover{background:linear-gradient(135deg,#ddd6fe,#c4b5fd);box-shadow:0 4px 12px #8b5cf64d;transform:translateY(-1px)}.schedule-preset-btn--close{background:linear-gradient(135deg,#ffedd5,#fed7aa);border-color:#fdba74;color:#7c2d12}.schedule-preset-btn--close:hover{background:linear-gradient(135deg,#fed7aa,#fdba74);box-shadow:0 4px 12px #f973164d;transform:translateY(-1px)}.shift-template-editor{background:linear-gradient(135deg,#f8faff,#f3f4ff);border:1px solid #e0e7ff;border-radius:14px;margin:.25rem 1.75rem 1.1rem;padding:.95rem}.shift-template-editor__header{align-items:center;display:flex;gap:.75rem;justify-content:space-between;margin-bottom:.7rem}.shift-template-editor__title{color:#1e1b4b;font-size:.9rem;font-weight:800;margin:0}.shift-template-editor__hint{color:#4f46e5;font-size:.76rem}.shift-template-editor__fields{grid-gap:.55rem;display:grid;gap:.55rem;grid-template-columns:repeat(4,minmax(0,1fr))}.shift-template-editor__input{background:#fff;border:1px solid #c7d2fe;border-radius:10px;color:#1f2937;font-size:.88rem;padding:.5rem .65rem}.shift-template-editor__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}@media (max-width:980px){.shift-template-editor__fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.shift-template-editor{margin:.25rem 1rem 1rem;padding:.75rem}.shift-template-editor__header{align-items:flex-start;flex-direction:column}.shift-template-editor__fields{grid-template-columns:1fr}}.schedule-step2-card{background:#fff!important}.roster-card-header{background:linear-gradient(135deg,#f5f7ff,#eef1fb);border-bottom:1px solid #e2e8f8;gap:1rem;justify-content:space-between;padding:1.25rem 1.75rem}.roster-card-header,.roster-card-header-left{align-items:center;display:flex;flex-wrap:wrap}.roster-card-header-left{gap:.9rem}.roster-card-title{color:#1a2240;display:block;font-size:1.05rem;font-weight:800;letter-spacing:-.01em;line-height:1.2}.roster-card-sub{color:#6b7a99;font-size:.78rem;margin:.15rem 0 0}.roster-count-badge{align-items:center;background:linear-gradient(135deg,#3b82f6,#6366f1);border-radius:999px;box-shadow:0 2px 8px #6366f159;color:#fff;display:inline-flex;font-size:.82rem;font-weight:700;gap:.2rem;padding:.3rem .85rem}.roster-count-on{font-size:1rem;font-weight:900}.roster-count-sep{margin:0 .05rem;opacity:.6}.roster-count-total{opacity:.8}.roster-count-label{font-weight:600;margin-left:.2rem;opacity:.85}.roster-header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem}.roster-hdr-btn{align-items:center;border:1.5px solid #0000;border-radius:10px;cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:700;height:2.15rem;padding:0 1rem;transition:all .15s ease;white-space:nowrap}.roster-hdr-btn--green{background:#dcfce7;border-color:#86efac;color:#14532d}.roster-hdr-btn--green:hover{background:#bbf7d0;transform:translateY(-1px)}.roster-hdr-btn--gray{background:#f1f5f9;border-color:#cbd5e1;color:#475569}.roster-hdr-btn--gray:hover{background:#e2e8f0;transform:translateY(-1px)}.roster-hdr-btn--indigo{background:#ede9fe;border-color:#c4b5fd;color:#4c1d95}.roster-hdr-btn--indigo:hover{background:#ddd6fe;transform:translateY(-1px)}.roster-hdr-btn--add{background:linear-gradient(135deg,#22c55e,#16a34a);border-color:#0000;box-shadow:0 2px 8px #22c55e59;color:#fff}.roster-hdr-btn--add:hover{background:linear-gradient(135deg,#16a34a,#15803d);box-shadow:0 4px 14px #22c55e66;transform:translateY(-1px)}.roster-wrap{overflow-x:auto;padding:0}.roster-builder-table{border-collapse:initial;border-spacing:0;font-size:.9rem;width:100%}.roster-thead-row th.roster-th{background:#f8fafc;border-bottom:2px solid #e8eef8;color:#8496b5;font-size:.68rem;font-weight:800;letter-spacing:.07em;padding:.85rem 1rem;text-transform:uppercase;white-space:nowrap}.roster-thead-row th.roster-th-member{padding-left:1.5rem}.roster-thead-row th.roster-th-center{text-align:center}.roster-row{transition:background .12s}.roster-row td.roster-td{border-bottom:1px solid #eef2fb;padding:.9rem 1rem;vertical-align:middle}.roster-row td.roster-td-member{padding-left:1.5rem}.roster-row td.roster-td-center{padding-right:1.5rem;text-align:center}.roster-row-working{background:#fff;border-left:4px solid #3b82f6}.roster-row-working:hover{background:#f5f7ff}.roster-row-off{background:#fafafa;border-left:4px solid #e2e8f0;opacity:.7}.roster-row-off:hover{background:#f1f5f9;opacity:1}.roster-member-cell{align-items:center;display:flex;gap:.75rem}.roster-avatar{align-items:center;background:#e2e8f0;border-radius:50%;box-shadow:0 2px 6px #0000001f;color:#fff;display:flex;flex-shrink:0;font-size:.95rem;font-weight:800;height:2.4rem;justify-content:center;width:2.4rem}.roster-row-off .roster-avatar{background:#e2e8f0!important;box-shadow:none;color:#94a3b8}.roster-member-name{color:#1a2240;font-size:.92rem;font-weight:700;line-height:1.2}.roster-member-name-off{color:#94a3b8}.roster-member-role{color:#94a3b8;font-size:.72rem;font-weight:500;margin-top:.1rem}.roster-toggle-wrap{align-items:center;cursor:pointer;display:inline-flex;gap:.5rem;-webkit-user-select:none;user-select:none}.roster-toggle-input{height:0!important;opacity:0!important;pointer-events:none!important;position:absolute!important;width:0!important}.roster-toggle-track{background:#cbd5e1;border-radius:999px;display:inline-block;flex-shrink:0;height:1.35rem;position:relative;transition:background .18s;width:2.4rem}.roster-toggle-input:checked~.roster-toggle-track{background:linear-gradient(135deg,#3b82f6,#6366f1);box-shadow:0 0 0 3px #6366f126}.roster-toggle-thumb{background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;height:1rem;left:.175rem;position:absolute;top:.175rem;transition:transform .18s cubic-bezier(.34,1.56,.64,1);width:1rem}.roster-toggle-input:checked~.roster-toggle-track .roster-toggle-thumb{transform:translateX(1.05rem)}.roster-toggle-label{font-size:.75rem;font-weight:700;min-width:1.6rem}.roster-toggle-label-on{color:#3b82f6}.roster-toggle-label-off{color:#94a3b8}.roster-shift-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='m0 0 5 6 5-6z' fill='%236b7a99'/%3E%3C/svg%3E");background-position:right .6rem center;background-repeat:no-repeat;border:2px solid #0000;border-radius:10px;cursor:pointer;font-size:.85rem;font-weight:700;min-width:100px;padding:.45rem 2rem .45rem .85rem;transition:all .15s}.roster-shift-select:disabled{cursor:default;opacity:.45}.roster-shift-select.roster-shift-open,.roster-shift-select[value=Open]{background-color:#dbeafe;border-color:#93c5fd;color:#1e40af}.roster-shift-select.roster-shift-95,.roster-shift-select[value="9\2013 5"],.roster-shift-select[value="9–5"]{background-color:#d1fae5;border-color:#6ee7b7;color:#065f46}.roster-shift-select.roster-shift-mid,.roster-shift-select[value=Mid]{background-color:#ede9fe;border-color:#c4b5fd;color:#4c1d95}.roster-shift-select.roster-shift-close,.roster-shift-select[value=Close]{background-color:#ffedd5;border-color:#fdba74;color:#7c2d12}.roster-shift-select.roster-shift-custom,.roster-shift-select[value=CUSTOM]{background-color:#f1f5f9;border-color:#cbd5e1;color:#475569}.roster-shift-select.roster-shift-off,.roster-shift-select[value=OFF]{background-color:#f8fafc;border-color:#e2e8f0;color:#94a3b8}.roster-hours-cell{align-items:center;display:flex;gap:.45rem}.roster-time-input{background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;color:#1e2a4a;font-size:.85rem;font-weight:600;min-width:108px;padding:.4rem .6rem;transition:border-color .15s,background .15s}.roster-time-input:focus{background:#fff;border-color:#6366f1;outline:none}.roster-time-input:disabled{background:#f1f5f9;border-color:#e8eef8;color:#b0bad0}.roster-time-arrow{color:#94a3b8;flex-shrink:0;font-size:1rem;font-weight:700}.roster-action-btns{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem}.roster-action-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:.75rem;font-weight:700;height:1.75rem;padding:0 .7rem;transition:all .14s}.roster-action-btn--copy{background:#dbeafe;color:#1d4ed8}.roster-action-btn--copy:hover{background:#bfdbfe;transform:translateY(-1px)}.roster-action-btn--default{background:#ede9fe;color:#5b21b6}.roster-action-btn--default:hover{background:#ddd6fe;transform:translateY(-1px)}.roster-action-empty{color:#cbd5e1;font-size:.85rem}.roster-remove-btn{align-items:center;background:#0000;border:1.5px solid #e2e8f0;border-radius:50%;color:#cbd5e1;cursor:pointer;display:inline-flex;font-size:.75rem;font-weight:700;height:1.85rem;justify-content:center;transition:all .15s;width:1.85rem}.roster-remove-btn:hover{background:#fee2e2;border-color:#fca5a5;color:#dc2626;transform:scale(1.1)}.schedule-v3 .schedule-v3-card .text-sm.font-semibold.text-gray-700{color:#1a2240;font-weight:800}.schedule-v3 input[type=date],.schedule-v3 input[type=text],.schedule-v3 select{border-radius:10px;min-height:2.4rem}.schedule-v3 .bg-blue-600,.schedule-v3 .bg-green-600,.schedule-v3 .bg-indigo-600{box-shadow:0 2px 8px #2563eb38}.schedule-toolbar-actions{gap:.5rem}.schedule-toolbar-date,.schedule-toolbar-select{background:#f8faff;border:1.5px solid #dde5f5;border-radius:10px;color:#1a2240;font-size:.85rem;font-weight:500;height:2.4rem;outline:none;padding:0 .75rem;transition:border-color .15s,box-shadow .15s}.schedule-toolbar-date:focus,.schedule-toolbar-select:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.schedule-toolbar-generate{align-items:center;background:linear-gradient(135deg,#2563eb,#4f46e5);border:none;border-radius:12px;box-shadow:0 3px 12px #2563eb47;color:#fff;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:700;gap:.4rem;height:2.4rem;letter-spacing:.01em;padding:0 1.25rem;transition:opacity .15s,transform .1s,box-shadow .15s}.schedule-toolbar-generate:hover:not(:disabled){box-shadow:0 5px 16px #2563eb61;opacity:.92;transform:translateY(-1px)}.schedule-toolbar-generate:disabled{cursor:not-allowed;opacity:.5}.schedule-toolbar-tablet{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:12px;box-shadow:0 3px 10px #6366f147;color:#fff;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:700;gap:.4rem;height:2.4rem;padding:0 1rem;transition:opacity .15s,transform .1s}.schedule-toolbar-tablet:hover{opacity:.9;transform:translateY(-1px)}.schedule-toolbar-advanced{align-items:center;background:#0000;border:1.5px solid #dde5f5;border-radius:10px;color:#5a6a8a;cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:600;height:2.4rem;padding:0 .875rem;transition:background .15s,color .15s}.schedule-toolbar-advanced:hover{background:#f0f4ff;color:#3b4a6b}.schedule-toolbar-traffic-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:.78rem;font-weight:700;height:2rem;letter-spacing:.02em;padding:0 .75rem}.schedule-toolbar-traffic-badge--busy{background:#fff3e0;border:1.5px solid #fcd34d;color:#b45309}.schedule-toolbar-traffic-badge--high{animation:badge-pulse 1.5s ease-in-out infinite;background:#fee2e2;border:1.5px solid #fca5a5;color:#b91c1c}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.7}}.traffic-level-card{background:linear-gradient(135deg,#fffbeb,#fff)!important;border-color:#f59e0b33!important}.traffic-level-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;padding:1.1rem 1.4rem}.traffic-level-icon{align-items:center;background:linear-gradient(135deg,#f59e0b,#ef4444);border-radius:.6rem;box-shadow:0 2px 8px #f59e0b4d;display:flex;flex-shrink:0;font-size:1rem;height:2.2rem;justify-content:center;width:2.2rem}.traffic-level-info{flex:1 1;min-width:160px}.traffic-level-title{color:#1a2240;font-size:1rem;font-weight:700;line-height:1.3;margin:0 0 .1rem}.traffic-level-sub{color:#6b7280;font-size:.8rem;margin:0}.traffic-level-btns{display:flex;flex-wrap:wrap;gap:.5rem}.traffic-level-btn{align-items:center;border:1.5px solid #0000;border-radius:12px;cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:600;height:2.25rem;padding:0 1rem;transition:all .18s}.traffic-level-btn--normal{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.traffic-level-btn--normal.active{background:#16a34a;border-color:#16a34a;box-shadow:0 3px 10px #16a34a4d;color:#fff}.traffic-level-btn--busy{background:#fffbeb;border-color:#fde68a;color:#b45309}.traffic-level-btn--busy.active{background:#f59e0b;border-color:#f59e0b;box-shadow:0 3px 10px #f59e0b4d;color:#fff}.traffic-level-btn--high{background:#fff1f2;border-color:#fecdd3;color:#be123c}.traffic-level-btn--high.active{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#ef4444;box-shadow:0 3px 10px #ef444459;color:#fff}.traffic-level-btn:hover:not(.active){box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.traffic-options{align-items:center;background:#fffbebb3;border-top:1px solid #f59e0b26;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;padding:.875rem 1.4rem 1rem}.traffic-options-label{color:#92400e;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;width:100%}.traffic-peak-row{align-items:center;background:#ffffffb3;border:1.5px solid #f59e0b40;border-radius:10px;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.25rem;padding:.5rem .75rem;width:100%}.traffic-peak-label{color:#78350f;font-size:.82rem;font-weight:700;white-space:nowrap}.traffic-peak-select{background:#fffbeb;border:1.5px solid #fcd34d;border-radius:8px;color:#78350f;cursor:pointer;font-size:.82rem;font-weight:600;height:2rem;outline:none;padding:0 .6rem;transition:border-color .15s,box-shadow .15s}.traffic-peak-select:focus{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b26}.traffic-peak-to{color:#92400e;font-size:.78rem;font-weight:600}.traffic-peak-hint{color:#a16207;font-size:.72rem;margin-left:auto;opacity:.8;white-space:nowrap}.traffic-option-toggle{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:.5rem;-webkit-user-select:none;user-select:none}.traffic-option-toggle input[type=checkbox]{height:0;opacity:0;position:absolute;width:0}.traffic-option-track{background:#d1d5db;border-radius:999px;display:inline-block;flex-shrink:0;height:1.25rem;position:relative;transition:background .2s;width:2.25rem}.traffic-option-track:after{background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;content:"";height:1rem;left:.125rem;position:absolute;top:.125rem;transition:transform .2s;width:1rem}.traffic-option-toggle input:checked~.traffic-option-track{background:#f59e0b}.traffic-option-toggle input:checked~.traffic-option-track:after{transform:translateX(1rem)}.traffic-dor-row{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;padding:0 1.4rem .65rem}.traffic-dor-status{color:#6b7280;font-size:.8rem;white-space:nowrap}.traffic-dor-error{color:#b91c1c;font-size:.84rem;font-weight:600}.dor-summary-row{align-items:center;display:flex;flex-wrap:wrap;gap:.45rem;margin:.2rem 1.4rem 0}.dor-summary-label{color:#374151;font-size:.78rem;font-weight:700}.dor-summary-pill{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;color:#4b5563;display:inline-flex;font-size:.75rem;gap:.2rem;padding:.2rem .6rem}.dor-summary-pill strong{color:#1f2937;font-weight:700}.dor-analytics-card{background:linear-gradient(180deg,#f9fafb,#f8fafc);border:1px solid #e5e7eb;border-radius:12px;margin:.5rem 1.4rem .2rem;padding:.6rem .75rem}.dor-analytics-head{align-items:center;display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.45rem}.dor-analytics-title{color:#374151;font-size:.82rem;font-weight:700}.dor-analytics-loading{background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;color:#6366f1;font-size:.75rem;font-weight:600;padding:.15rem .55rem}.dor-analytics-metrics{grid-gap:.45rem;display:grid;gap:.45rem;grid-template-columns:repeat(4,minmax(0,1fr))}.dor-metric-chip{background:#fff;border:1px solid #e5e7eb;border-radius:10px;min-width:0;padding:.38rem .5rem}.dor-metric-label{color:#6b7280;display:block;font-size:.68rem;letter-spacing:.04em;line-height:1.15;text-transform:uppercase}.dor-metric-value{color:#111827;display:block;font-size:.82rem;font-weight:800;line-height:1.2;margin-top:.1rem}.register-close-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 1px 2px #0000000a;padding:12px 16px}.register-close-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:10px}.register-close-title{color:#1f2937;font-size:.95rem;font-weight:700}.register-close-sub{color:#6b7280;font-size:.78rem}.register-close-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(5,minmax(120px,1fr))}.register-close-item{background:#fafafa;border:1px solid #e5e7eb;border-radius:10px;padding:8px}.register-close-label{color:#4b5563;font-size:.8rem;font-weight:700;margin-bottom:6px}.register-close-buttons{display:flex;flex-wrap:wrap;gap:4px}.register-close-btn{border:1px solid #d1d5db;border-radius:7px;font-size:.72rem;font-weight:700;height:24px;line-height:1;min-width:28px;padding:0 6px;transition:all .15s ease}.register-close-btn--idle{background:#fff;color:#4b5563}.register-close-btn--idle:hover{border-color:#f59e0b;color:#b45309}.register-close-btn--active{background:#dc2626;border-color:#dc2626;box-shadow:0 2px 8px #dc262640;color:#fff}.register-controls-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;overflow:hidden}.register-controls-toggle{align-items:center;background:#f9fafb;border-bottom:1px solid #eef2f7;display:flex;justify-content:space-between;padding:12px 14px;width:100%}.register-controls-title{color:#374151;font-size:.82rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.register-controls-state{color:#9ca3af;font-size:.72rem}.register-controls-body{padding:10px 12px 12px}.register-controls-help{color:#6b7280;font-size:.78rem;margin-bottom:8px}.register-controls-table-wrap{overflow-x:auto}.register-controls-table{border-collapse:collapse;min-width:370px;width:100%}.register-controls-table th{background:#f3f4f6;border-bottom:1px solid #e5e7eb;color:#4b5563;font-size:.76rem;font-weight:700;padding:7px 8px;text-align:center}.register-controls-table th:first-child{text-align:left}.reg-row-even{background:#fff}.reg-row-odd{background:#f9fafb}.reg-time-cell{color:#374151;font-size:.78rem;font-weight:600;padding:6px 8px;white-space:nowrap}.reg-toggle-cell{padding:4px 6px;text-align:center}.reg-toggle-btn{border-radius:7px;font-size:.74rem;font-weight:700;height:26px;width:26px}.reg-toggle-btn--required{background:#fee2e2;border:2px solid #fca5a5;color:#b91c1c}.reg-toggle-btn--enabled{background:#dbeafe;border:1px solid #93c5fd;color:#1d4ed8}.reg-toggle-btn--disabled{background:#f3f4f6;border:1px solid #e5e7eb;color:#9ca3af}.register-controls-legend{align-items:center;color:#6b7280;display:flex;font-size:.74rem;gap:14px;margin-top:8px}.legend-dot{border-radius:4px;display:inline-block;height:10px;margin-right:4px;vertical-align:middle;width:10px}.legend-dot--required{background:#fee2e2;border:1px solid #fca5a5}.legend-dot--optional{background:#dbeafe;border:1px solid #93c5fd}.legend-dot--disabled{background:#f3f4f6;border:1px solid #e5e7eb}@media (max-width:1100px){.register-close-grid{grid-template-columns:repeat(3,minmax(120px,1fr))}}@media (max-width:700px){.register-close-head{align-items:flex-start;flex-direction:column}.register-close-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.dor-analytics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.schedule-v3 .schedule-v3-shell{padding-left:1rem;padding-right:1rem}.roster-card-header{align-items:flex-start;flex-direction:column}.schedule-step1-presets{gap:.5rem}.roster-row-off,.roster-row-working{border-left-width:3px}}.roster-hdr-btn--amber{background:#fffbeb;border-color:#fde68a;color:#92400e}.roster-hdr-btn--amber:hover{background:#fef3c7}.notes-input{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;color:#374151;font-size:11px;min-width:120px;outline:none;padding:4px 7px;transition:border-color .15s,background .15s;width:100%}.notes-input:focus{background:#fff;border-color:#6366f1}.notes-input::placeholder{color:#d1d5db}.coverage-scorecard-row{display:flex;flex-wrap:wrap;gap:1rem}.coverage-scorecard,.gap-report{flex:1 1 300px}.scorecard-metrics{display:flex;flex-wrap:wrap;gap:.75rem}.scorecard-metric{border:1.5px solid;border-radius:10px;flex:1 1 70px;padding:8px 10px;text-align:center}.scorecard-metric-label{color:#6b7280;font-size:10px;font-weight:600;letter-spacing:.04em;margin-bottom:2px;text-transform:uppercase}.scorecard-metric-value{font-size:20px;font-weight:700;line-height:1}.gap-list{display:flex;flex-direction:column;gap:5px;list-style:none;margin:0;max-height:240px;overflow-y:auto;padding:0}.gap-item{align-items:center;background:#fffbeb;border:1px solid #fde68a;border-radius:7px;display:flex;gap:8px;justify-content:space-between;padding:6px 8px}.gap-item--no-mod{background:#fff5f5;border-color:#fca5a5}.gap-item--no-staff{background:#f9fafb;border-color:#d1d5db}.gap-item--missing-registers{background:#eff6ff;border-color:#bfdbfe}.gap-item-body{align-items:flex-start;display:flex;flex:1 1;gap:8px;min-width:0}.gap-item-time{background:#0000000f;border-radius:4px;color:#374151;flex-shrink:0;font-size:10px;font-weight:700;margin-top:1px;padding:2px 5px;white-space:nowrap}.gap-item-info{min-width:0}.gap-item-label{color:#374151;font-size:11px;font-weight:600;line-height:1.3}.gap-item--no-mod .gap-item-label{color:#b91c1c}.gap-item--missing-registers .gap-item-label{color:#1d4ed8}.gap-item-detail{color:#6b7280;font-size:10px;line-height:1.4;margin-top:1px}.gap-fix-btn{background:#6366f1;border:none;border-radius:5px;color:#fff;cursor:pointer;flex-shrink:0;font-size:10px;font-weight:700;padding:3px 9px;transition:background .15s;white-space:nowrap}.gap-fix-btn:hover{background:#4f46e5}.gap-item-more{background:#f9fafb;border-color:#e5e7eb;color:#6b7280;font-size:11px;justify-content:center}.ai-float-btn{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:50px;bottom:24px;box-shadow:0 4px 14px #6366f159;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:6px;padding:10px 18px;position:fixed;right:24px;transition:transform .15s,box-shadow .15s;z-index:200}.ai-float-btn:hover{box-shadow:0 6px 20px #6366f173;transform:translateY(-2px)}.ai-chat-overlay{background:#0003;inset:0;position:fixed;z-index:300}.ai-chat-panel{background:#fff;border-radius:16px;bottom:24px;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column;max-height:600px;max-width:calc(100vw - 32px);overflow:hidden;position:fixed;right:24px;width:380px;z-index:310}.ai-chat-header{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;display:flex;justify-content:space-between;padding:14px 16px}.ai-chat-header h3{font-size:14px;font-weight:700;margin:0}.ai-chat-close{align-items:center;background:#ffffff26;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;height:26px;justify-content:center;width:26px}.ai-chat-close:hover{background:#ffffff40}.ai-chat-messages{display:flex;flex:1 1;flex-direction:column;gap:8px;overflow-y:auto;padding:12px 14px}.ai-msg{display:flex}.ai-msg--user{justify-content:flex-end}.ai-msg--assistant{justify-content:flex-start}.ai-msg-bubble{border-radius:12px;font-size:12px;line-height:1.5;max-width:80%;padding:8px 12px}.ai-msg--user .ai-msg-bubble{background:#6366f1;border-bottom-right-radius:3px;color:#fff}.ai-msg--assistant .ai-msg-bubble{background:#f3f4f6;border-bottom-left-radius:3px;color:#374151}.ai-chat-input-row{border-top:1px solid #e5e7eb;display:flex;gap:8px;padding:10px 14px}.ai-chat-input{border:1px solid #d1d5db;border-radius:8px;flex:1 1;font-size:12px;outline:none;padding:8px 10px}.ai-chat-input:focus{border-color:#6366f1}.ai-chat-send{background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:8px 14px}.ai-chat-send:hover{background:#4f46e5}.ai-chat-send:disabled{background:#c7d2fe;cursor:not-allowed}.ai-key-panel{background:#fafafa;border-top:1px solid #e5e7eb;padding:14px}.ai-key-panel p{color:#6b7280;font-size:11px;margin:0 0 6px}.ai-key-input-row{display:flex;gap:6px}.ai-key-input{border:1px solid #d1d5db;border-radius:6px;flex:1 1;font-family:monospace;font-size:11px;padding:6px 8px}.ai-key-save{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:11px;padding:6px 12px}.ai-chat-header-left{align-items:center;display:flex;gap:10px}.ai-chat-icon{font-size:20px}.ai-chat-title{color:#fff;font-size:14px;font-weight:700;margin:0}.ai-chat-sub{color:#ffffffb3;font-size:10px;margin:0}.ai-chat-header-right{align-items:center;display:flex;gap:6px}.ai-key-btn{background:#ffffff26;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;height:26px;width:26px}.ai-key-btn:hover{background:#ffffff40}.ai-close-btn{align-items:center;background:#ffffff26;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;height:26px;justify-content:center;width:26px}.ai-close-btn:hover{background:#ffffff40}.ai-key-label{color:#6b7280;font-size:11px;margin:0 0 6px}.ai-key-row{display:flex;gap:6px}.ai-key-link{color:#6366f1;display:block;font-size:10px;margin-top:6px;text-decoration:underline}.ai-msg-avatar{align-self:flex-start;flex-shrink:0;font-size:14px;margin-right:5px;padding-top:3px}.ai-msg-text{margin:0}.ai-changes-summary{color:#10b981;font-size:10px;font-weight:600;margin-top:5px}.ai-msg--error .ai-msg-bubble{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.ai-msg-bubble--thinking{align-items:center;display:flex;gap:4px;padding:10px 14px}.ai-thinking-dot{animation:aiDotBounce 1.2s ease-in-out infinite;background:#9ca3af;border-radius:50%;height:6px;width:6px}.ai-thinking-dot:nth-child(2){animation-delay:.2s}.ai-thinking-dot:nth-child(3){animation-delay:.4s}@keyframes aiDotBounce{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}.ai-send-spin{animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}@media print{.no-print{display:none!important}.schedule-v3{background:#fff!important}.schedule-v3-card{border:1px solid #e5e7eb!important;box-shadow:none!important;break-inside:avoid;page-break-inside:avoid}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.schedule-v3-card:first-child,.schedule-v3-card:nth-child(2),.schedule-v3-card:nth-child(3){display:none}}