:root{--orange:#f36b16;--orange-dark:#d94c00;--orange-soft:#fff1e8;--ink:#20242c;--muted:#667085;--line:#e4e7ec;--bg:#f7f8fa;--green:#16a34a;--red:#dc2626;--blue:#2563eb;--shadow:0 12px 35px rgba(16,24,40,.09)}*{box-sizing:border-box}body{margin:0;font:400 14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 18% 15%,#fff0e5 0,transparent 27%),linear-gradient(135deg,#fff 0,#fff8f3)}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:var(--shadow)}.login-logo{width:82px;height:82px;object-fit:cover;border-radius:20px;display:block;margin:0 auto 14px}.login-card h1{text-align:center;margin:0;font-size:28px}.login-card p{text-align:center;color:var(--muted);margin:7px 0 26px}.field{display:grid;gap:6px;margin-bottom:12px}.field label{font-weight:600}.required-mark{color:var(--red);font-weight:700;margin-left:2px}.input{width:100%;height:46px;border:1px solid #d0d5dd;border-radius:11px;padding:0 13px;outline:0;background:#fff}.input:focus{border-color:var(--orange);box-shadow:0 0 0 3px #f36b161c}.input-row{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.error{color:var(--red);min-height:20px;margin-top:8px}.error:empty{display:none}.btn{height:42px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:0 16px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{background:#fafafa}.btn:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.btn-primary{background:var(--orange);border-color:var(--orange);color:#fff}.btn-primary:hover{background:var(--orange-dark)}.btn-primary:disabled,.btn-primary:disabled:hover{background:var(--orange);border-color:var(--orange);color:#fff}.btn-green{background:var(--green);border-color:var(--green);color:#fff}.btn-green:hover{background:#15803d;border-color:#15803d;color:#fff;box-shadow:0 5px 14px #16a34a38}.btn-green:active{background:#166534;border-color:#166534;color:#fff}.btn-danger{color:var(--red);background:#fff5f5;border-color:#fecaca}.btn-sm{height:34px;padding:0 11px;font-size:13px}.btn-icon{width:34px;padding:0}.full{width:100%}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#f05800,#d94500);color:#fff;padding:20px 14px;display:flex;flex-direction:column;transition:.2s}.brand{display:flex;align-items:center;gap:12px;padding:2px 10px 22px;border-bottom:1px solid rgba(255,255,255,.2);margin-bottom:18px}.brand img{width:52px;height:52px;object-fit:cover;border-radius:14px;background:#fff}.brand strong{font-size:22px}.nav{display:grid;gap:6px}.nav button{height:48px;border:0;background:transparent;color:#fff;border-radius:11px;text-align:left;padding:0 14px;display:flex;align-items:center;gap:12px;font-weight:600}.nav button:hover,.nav button.active{background:#fff3}.nav svg{width:20px}.sidebar-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.2);padding:18px 10px 4px}.sidebar-user small{display:block;opacity:.8}.main{min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:20}.topbar h2{font-size:20px;margin:0 0 0 12px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.round-icon{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;display:grid;place-items:center;position:relative}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#ffead6;color:#c54c06;font-weight:700}.content{padding:28px;max-width:1700px;margin:auto}.page-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:20px}.page-head h1{font-size:28px;line-height:1.2;margin:0 0 5px}.page-head p{margin:0;color:var(--muted)}.page-actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.stat .label{color:var(--muted)}.stat strong{font-size:25px;display:block;margin-top:4px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 12px #10182808}.toolbar{padding:14px;display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--line);flex-wrap:wrap}.toolbar .input{max-width:290px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:850px}.table th{background:#fafafa;color:#475467;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.table th,.table td{padding:13px 15px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:0}.member{display:flex;align-items:center;gap:10px}.member .avatar{width:36px;height:36px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;min-height:27px;padding:3px 9px;border-radius:999px;background:var(--orange-soft);color:#b54708;font-size:12px;font-weight:600}.chip.gray{background:#f2f4f7;color:#475467}.chip.green{background:#eafbf0;color:#15803d}.chip.blue{background:#eff6ff;color:#1d4ed8}.status{display:inline-flex;padding:4px 9px;border-radius:999px;font-weight:600;font-size:12px}.status.open,.status.confirmed{background:#eafbf0;color:#15803d}.status.draft,.status.waiting{background:#fff7e8;color:#b45309}.status.closed{background:#f2f4f7;color:#475467}.table-wrap,.week-tabs,.job-tabs,.assignment-view-tabs{scrollbar-width:auto;scrollbar-color:#aeb7c4 #eef1f4;scrollbar-gutter:stable}.table-wrap::-webkit-scrollbar,.week-tabs::-webkit-scrollbar,.job-tabs::-webkit-scrollbar,.assignment-view-tabs::-webkit-scrollbar{height:12px}.table-wrap::-webkit-scrollbar-track,.week-tabs::-webkit-scrollbar-track,.job-tabs::-webkit-scrollbar-track,.assignment-view-tabs::-webkit-scrollbar-track{background:#eef1f4;border-radius:999px}.table-wrap::-webkit-scrollbar-thumb,.week-tabs::-webkit-scrollbar-thumb,.job-tabs::-webkit-scrollbar-thumb,.assignment-view-tabs::-webkit-scrollbar-thumb{min-width:48px;background:#aeb7c4;border:3px solid #eef1f4;border-radius:999px}.table-wrap::-webkit-scrollbar-thumb:hover,.week-tabs::-webkit-scrollbar-thumb:hover,.job-tabs::-webkit-scrollbar-thumb:hover,.assignment-view-tabs::-webkit-scrollbar-thumb:hover{background:#7f8998}.persistent-horizontal-scroll{position:fixed;bottom:8px;z-index:80;height:14px;padding:2px;background:#d7dbe0;border:1px solid #c5cbd3;border-radius:999px;box-shadow:0 2px 7px #10182829;-webkit-user-select:none;user-select:none;touch-action:none}.persistent-horizontal-track{position:relative;width:100%;height:8px;border-radius:999px;background:#d7dbe0;cursor:pointer}.persistent-horizontal-thumb{position:absolute;left:0;top:0;height:8px;border-radius:999px;background:#8e97a4;cursor:grab;will-change:transform}.persistent-horizontal-thumb:hover{background:#747e8c}.persistent-horizontal-thumb:active{cursor:grabbing;background:#687280}.persistent-horizontal-scroll:focus-visible{outline:2px solid #98a2b3;outline-offset:2px}.week-tabs,.job-tabs{display:flex;gap:6px;padding:5px;background:#f2f4f7;border-radius:11px;width:max-content;max-width:100%;overflow:auto}.week-tabs button,.job-tabs button{border:0;background:transparent;padding:8px 13px;border-radius:8px;font-weight:600;white-space:nowrap}.week-tabs button.active,.job-tabs button.active{background:#fff;color:var(--orange);box-shadow:0 1px 3px #00000014}.schedule{width:100%;min-width:1220px;border-collapse:separate;border-spacing:0}.schedule th,.schedule td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px;vertical-align:top}.schedule th:last-child,.schedule td:last-child{border-right:0}.schedule th{background:#fafafa;text-align:center}.schedule .shift-label{width:82px;background:#fafafa;font-weight:700}.shift-card{height:164px;box-sizing:border-box;border:1px solid var(--line);border-radius:11px;padding:11px;background:#fff;display:flex;flex-direction:column}.shift-card.short{border-color:#fdba74;background:#fffaf5}.shift-card.full{border-color:#bbf7d0}.shift-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.shift-count{font-size:16px;font-weight:700;white-space:nowrap}.shift-top .status{white-space:nowrap;flex:none}.short .shift-count{color:#ea580c}.full .shift-count{color:var(--green)}.shift-note{font-size:12px;color:var(--muted);line-height:1.35;margin:0 0 9px;min-height:34px}.shift-people{display:flex;align-items:center;margin-bottom:9px;min-height:27px}.shift-people:empty{display:none}.mini-avatar{width:27px;height:27px;margin-right:-5px;border-radius:50%;display:grid;place-items:center;background:#ffead6;color:#b54708;border:2px solid #fff;font-size:10px;font-weight:700}.shift-card .btn{width:100%;height:31px;margin-top:auto;padding-inline:7px;font-size:12px;white-space:nowrap}.summary-row{display:flex;gap:10px;flex-wrap:wrap}.summary-pill{padding:8px 12px;border-radius:9px;background:#f8fafc;border:1px solid var(--line)}.shift-card.unconfigured{border-color:#d0d5dd;background:#fafafa}.unconfigured .shift-count{color:#475467}.registration-count{width:max-content;max-width:100%;padding:3px 7px;border-radius:7px;background:#eff6ff;font-size:11px;font-weight:600;color:#1d4ed8;margin-bottom:9px;white-space:nowrap}.registration-inline{font-size:12px;font-weight:600;color:#1d4ed8}.btn-assignment-empty{background:#fff;border-color:var(--orange);color:var(--ink)}.btn-assignment-empty:hover{background:var(--orange-soft)}.modal-backdrop{position:fixed;inset:0;background:#10182885;z-index:100;display:grid;place-items:center;padding:18px}.modal{width:min(720px,100%);max-height:92vh;overflow:hidden;background:#fff;border-radius:18px;box-shadow:var(--shadow);display:flex;flex-direction:column}.modal.wide{width:min(1000px,100%)}.modal-head{padding:20px 22px 14px;display:flex;gap:15px;align-items:flex-start;border-bottom:1px solid var(--line);flex:none;background:#fff;z-index:2}.modal-head h2{margin:0;font-size:22px}.modal-head p{margin:4px 0 0;color:var(--muted)}.modal-head .round-icon{margin-left:auto;flex:none}.modal-body{padding:20px 22px;overflow:auto;min-height:0;overscroll-behavior:contain}.modal-foot{padding:14px 22px 20px;display:flex;justify-content:flex-end;gap:10px;flex:none;background:#fff;border-top:1px solid var(--line);z-index:2}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px}.check input{margin-top:3px}.callout{padding:12px 14px;border-radius:10px;background:#fff8f2;color:#9a3412;margin-bottom:15px}.candidate{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--line)}.candidate:last-child{border-bottom:0}.candidate .actions{margin-left:auto}.empty{text-align:center;padding:35px 12px;color:var(--muted)}.toast{position:fixed;right:24px;bottom:24px;z-index:200;background:#20242c;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow)}input[type=checkbox]{-webkit-appearance:none;appearance:none;width:18px;height:18px;min-width:18px;margin:0;border:1.5px solid #98a2b3;border-radius:4px;background-color:#fff;background-position:center;background-repeat:no-repeat;background-size:13px 13px;cursor:pointer;transition:background-color .15s,border-color .15s,box-shadow .15s}input[type=checkbox]:checked{border-color:var(--orange);background-color:var(--orange);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.2 6.3 11.5 13 4.8' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}input[type=checkbox]:focus-visible{outline:0;box-shadow:0 0 0 3px #f9731633}input[type=checkbox]:disabled{cursor:not-allowed;opacity:.55}.check input[type=checkbox]{margin-top:3px}.field-error,.inline-field-error{color:var(--red);font-size:12px;line-height:1.35;margin-top:1px}.field-error:empty,.inline-field-error:empty{display:none}.input.input-error,.avatar-picker.input-error,.custom-datetime.input-error .datetime-trigger{border-color:var(--red);box-shadow:0 0 0 3px #dc262617}.close-at{white-space:nowrap}.custom-datetime{position:relative}.datetime-input{padding-right:44px!important;font-weight:400}.datetime-calendar-button{position:absolute;top:50%;right:5px;width:36px;height:36px;padding:0;display:grid;place-items:center;transform:translateY(-50%);border:0;border-radius:8px;background:transparent;color:var(--muted)}.datetime-calendar-button:hover:not(:disabled){color:var(--orange);background:var(--orange-soft)}.datetime-calendar-button:focus-visible{outline:2px solid var(--orange);outline-offset:1px}.datetime-calendar-button:disabled{cursor:not-allowed;opacity:.5}.datetime-popover{position:fixed;z-index:130;width:min(320px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;padding:8px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px #10182838}.calendar-head{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;text-align:center;margin-bottom:4px}.calendar-head .round-icon{width:30px;height:30px;font-size:21px}.calendar-title{display:flex;align-items:center;justify-content:center;gap:6px;min-height:34px}.calendar-year-control{display:flex;align-items:center;gap:3px}.calendar-year-control>span{display:grid;gap:0}.calendar-year-control button{width:20px;height:16px;padding:0;display:grid;place-items:center;border:0;border-radius:4px;background:transparent;color:var(--muted)}.calendar-year-control button:hover{background:var(--orange-soft);color:var(--orange)}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar-weekdays{margin-bottom:2px}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:11px;font-weight:600}.calendar-grid button{height:26px;border:0;border-radius:8px;background:transparent;color:var(--ink)}.calendar-grid button:hover{background:var(--orange-soft)}.calendar-grid button.selected{background:var(--orange);color:#fff;font-weight:700}.time-control{border-top:1px solid var(--line);margin-top:7px;padding-top:7px}.time-control>label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:5px}.time-control .input{height:40px;font-weight:400}.datetime-actions{display:flex;justify-content:flex-end;border-top:1px solid var(--line);margin-top:7px;padding-top:7px}.datetime-actions .btn{height:36px;min-width:84px}.activity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.activity-card{padding:18px}.activity-card h3{margin:0 0 7px}.activity-card p{color:var(--muted)}@media(max-width:1000px){.app-shell{grid-template-columns:78px 1fr}.brand strong,.nav span,.sidebar-user div{display:none}.brand{padding-left:0;padding-right:0;justify-content:center}.brand img{width:46px;height:46px}.nav button{justify-content:center;padding:0}.stats,.activity-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.app-shell{display:block}.sidebar{position:fixed;z-index:50;left:-270px;width:260px;transition:.2s}.sidebar.open{left:0}.brand strong,.nav span,.sidebar-user div{display:block}.nav button{justify-content:flex-start;padding:0 14px}.content{padding:18px 12px}.topbar{padding:0 14px}.page-head{display:block}.page-actions{margin-top:12px}.stats{grid-template-columns:1fr 1fr}.input-row,.check-grid,.activity-grid{grid-template-columns:1fr}.top-actions .user-name{display:none}}:root{--orange:#f97316;--orange-dark:#ea580c;--orange-soft:#fff7ed;--ink:#172033;--muted:#667085;--line:#e7e9ee;--bg:#faf9f7;--shadow:0 12px 34px rgba(22,34,55,.08)}body{font-weight:400;color:#24262b;background:var(--bg)}h1,h2,h3,h4,strong,b{font-weight:600}.btn{font-weight:550;border-radius:11px}.table th{font-weight:550;text-transform:none;letter-spacing:0}.table td{font-weight:400}.sidebar{background:linear-gradient(180deg,#d94a00,#ec5200 48%,#c63b00);transition:width .22s ease;padding:18px 12px}.brand{padding:0 8px 18px}.nav button{font-weight:500}.nav button.active{background:#fff3}.topbar,.content{transition:padding .22s ease}.btn-icon{display:grid;place-items:center}.btn-icon svg,.nav svg{display:block}.page-head h1{font-size:25px;font-weight:600}@media(min-width:1001px){.app-shell.collapsed{grid-template-columns:78px 1fr}.app-shell.collapsed .sidebar{width:78px}.app-shell.collapsed .brand{justify-content:center;padding-left:0;padding-right:0}.app-shell.collapsed .brand img{width:44px;height:44px}.app-shell.collapsed .brand strong,.app-shell.collapsed .nav span,.app-shell.collapsed .sidebar-user div{display:none}.app-shell.collapsed .nav button{justify-content:center;padding:0}.app-shell.collapsed .sidebar-user{display:flex;justify-content:center;padding-left:0;padding-right:0}}@media(min-width:701px)and (max-width:1000px){.app-shell.expanded{grid-template-columns:260px 1fr}.app-shell.expanded .sidebar{width:260px}.app-shell.expanded .brand strong,.app-shell.expanded .nav span,.app-shell.expanded .sidebar-user div{display:block}.app-shell.expanded .nav button{justify-content:flex-start;padding:0 14px}}.job-badge{display:inline-flex;align-items:center;min-height:27px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.job-tpm{background:#f3e8ff;color:#7e22ce}.job-fixed{background:#ecfdf3;color:#15803d}.job-mobile{background:#eff6ff;color:#1d4ed8}.job-dept-tpm{background:#fff7ed;color:#c2410c}.job-tab.job-tpm.active{color:#7e22ce}.job-tab.job-fixed.active{color:#15803d}.job-tab.job-mobile.active{color:#1d4ed8}.job-tab.job-dept-tpm.active{color:#c2410c}.member-total-stat{display:grid;grid-template-columns:minmax(220px,420px);margin-bottom:18px}.member-filter-toolbar{align-items:center;flex-wrap:nowrap}.member-filter-toolbar>.input{flex:0 0 min(290px,35vw)}.member-job-filter-nav{display:flex;flex:1 1 0;align-items:center;gap:6px;min-width:0}.member-job-filters{display:flex;flex:1 1 0;align-items:center;gap:8px;min-width:0;height:34px;overflow-x:auto;padding:0 2px;scroll-behavior:smooth;scrollbar-width:none}.member-job-filters::-webkit-scrollbar{display:none}.member-filter-scroll{display:grid;flex:0 0 34px;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:#344054;font-size:24px;line-height:1;cursor:pointer;transition:color .18s,background .18s,border-color .18s,transform .18s}.member-filter-scroll.is-hidden{display:none}.member-filter-scroll.is-invisible{visibility:hidden;pointer-events:none}.member-filter-scroll:hover{color:var(--orange);border-color:var(--orange);background:#fff7ed;transform:scale(1.05)}.member-job-filter{min-height:31px;padding:4px 10px;border:1px solid transparent;border-radius:999px;font:inherit;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}.member-job-filter:hover{transform:translateY(-1px)}.member-job-filter:not(.job-tpm):not(.job-fixed):not(.job-mobile):not(.job-dept-tpm){background:#f2f4f7;color:#475467}.member-job-filter.active{border-color:currentColor;box-shadow:0 0 0 2px #f973161f}.member-job-filter:not(.job-tpm):not(.job-fixed):not(.job-mobile):not(.job-dept-tpm).active{background:var(--orange);color:#fff}.member-table{min-width:1660px}.member-table td:nth-child(3){min-width:210px}.member-table td:nth-child(10){min-width:250px}.member-table th:last-child,.member-table td:last-child{position:sticky;right:0;z-index:3;min-width:128px;background:#fff;box-shadow:-8px 0 12px -12px #10182873}.member-table th:last-child{z-index:4;background:#fafafa}.member-table td:last-child{padding-left:12px;padding-right:12px}.avatar.has-image{overflow:hidden;background:#fff}.avatar.has-image img{width:100%;height:100%;object-fit:cover;display:block}.avatar-picker{display:flex;align-items:center;gap:16px;padding:14px;border:1px dashed #cfd4dc;border-radius:12px;background:#fafafa}.avatar-picker .avatar{width:76px;height:76px;flex:none;font-size:20px}.avatar-picker-actions{display:grid;gap:6px}.avatar-picker-actions small{color:var(--muted)}.modal-section-title{margin:22px 0 10px;padding-top:18px;border-top:1px solid var(--line);font-size:15px}.member-actions{display:flex;justify-content:flex-end}.member-actions .btn{white-space:nowrap}.optional-label{color:var(--muted);font-weight:400}.evaluation-table{min-width:1500px}.evaluation-table th,.evaluation-table td{text-align:center}.evaluation-table th:first-child,.evaluation-table td:first-child{text-align:left}.evaluation-table th:last-child,.evaluation-table td:last-child{position:sticky;right:0;z-index:3;background:#fff;box-shadow:-8px 0 12px -12px #10182873}.evaluation-table th:last-child{z-index:4;background:#fafafa}.violation-summary{display:inline-flex;white-space:nowrap;padding:5px 9px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:12px}.violation-summary.has-errors{background:#fef2f2;color:#b91c1c}.evaluation-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}.evaluation-rank-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:end}.evaluation-violation-total{height:70px;border:1px solid var(--line);border-radius:12px;padding:11px 14px;margin-bottom:16px;background:#fff8f2}.evaluation-violation-total small{display:block;color:var(--muted)}.evaluation-violation-total strong{display:block;margin-top:4px;color:#b54708}.violation-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-top:18px;border-top:1px solid var(--line);margin-top:4px;margin-bottom:12px}.violation-heading h3{margin:0}.violation-heading p{margin:4px 0 0;color:var(--muted)}.violation-card{border:1px solid var(--line);border-radius:13px;padding:14px;margin-bottom:12px;background:#fafafa}.violation-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.violation-grid{display:grid;grid-template-columns:1fr 1.4fr 1fr 1fr;gap:0 10px}.violation-note{grid-column:1/-1}.violation-empty{border:1px dashed var(--line);border-radius:12px;padding:24px}.violation-card .field{margin-bottom:10px}@media(max-width:700px){.evaluation-fields,.evaluation-rank-row,.violation-grid{grid-template-columns:1fr}.violation-heading{display:block}.violation-heading .btn{margin-top:10px}.violation-note{grid-column:auto}}.app-shell{transition:grid-template-columns .28s cubic-bezier(.4,0,.2,1)}.sidebar{will-change:width;transition:width .28s cubic-bezier(.4,0,.2,1),transform .28s cubic-bezier(.4,0,.2,1)}.brand{gap:9px}.brand img{width:42px;height:42px;border-radius:11px}.brand strong{font-size:17px;line-height:1.2;white-space:nowrap}.nav span{transition:opacity .16s ease}.content.page-enter{animation:pageEnter .18s ease-out}.top-user{display:grid;line-height:1.25}.top-user strong{font-size:13px}.top-user small{font-size:11px;color:var(--muted);margin-top:2px}.btn-icon{transition:background .16s ease,transform .18s ease}.btn-icon:active{transform:scale(.94)}.app-shell.collapsed .brand img{width:38px;height:38px}@keyframes pageEnter{0%{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.app-shell,.sidebar,.content.page-enter,.btn-icon{transition:none;animation:none}}@media(max-width:700px){.top-user{display:none}}.responsible-label,.responsible-capability{display:inline-flex;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;margin-bottom:4px}.responsible-label{background:var(--orange);color:#fff}.responsible-capability{background:#fff7ed;color:#c2410c;border:1px solid #fdba74}.responsible-person{border:1.5px solid var(--orange)!important;border-radius:11px;padding-left:10px!important;padding-right:10px!important;background:#fffaf6}.work-count{display:block;color:var(--muted);font-size:12px;margin-top:3px}.schedule-published-badge{height:42px;display:inline-flex;align-items:center;padding:0 15px;border-radius:11px;background:#eafbf0;color:#15803d;border:1px solid #86efac;font-weight:700}.publication-lock,.publication-readonly{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.publication-lock strong,.publication-readonly strong{color:#9a3412}.confirmation-list{display:grid;gap:10px}.confirmation-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(210px,auto);align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.confirmation-member{display:grid;justify-items:start;gap:3px;min-width:0}.confirmation-member small{color:var(--muted)}.confirmation-member .chips{margin-top:4px}.confirmation-result{display:grid;justify-items:end;gap:4px;text-align:right}.confirmation-result small{color:var(--muted)}.confirmation-status{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700}.confirmation-status.confirmed{background:#eafbf0;color:#15803d;border:1px solid #86efac}.confirmation-status.pending{background:#fff7ed;color:#c2410c;border:1px solid #fdba74}.confirmation-status.late{background:#fef2f2;color:#b91c1c;border:1px solid #fca5a5}.confirmation-overview{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}@media(max-width:700px){.confirmation-row{grid-template-columns:auto minmax(0,1fr)}.confirmation-result{grid-column:1/-1;justify-items:start;text-align:left;padding-top:8px;border-top:1px solid var(--line);width:100%}}.assignment-view-card{padding:16px;margin-bottom:14px}.assignment-view-card>div:first-child{margin-bottom:12px}.assignment-view-card p{margin:3px 0 0;color:var(--muted)}.assignment-view-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:2px}.assignment-view-tabs button{min-height:39px;border:1px solid var(--line);border-radius:10px;padding:7px 13px;background:#fff;color:var(--ink);font-weight:600;white-space:nowrap}.assignment-view-tabs button.active{border-color:var(--orange);box-shadow:0 0 0 2px #f973161f}.assignment-view-tabs button:first-child.active{background:var(--orange);color:#fff}.assignment-view-tabs .job-tpm.active{background:#f3e8ff;color:#7e22ce;border-color:#d8b4fe}.assignment-view-tabs .job-fixed.active{background:#ecfdf3;color:#15803d;border-color:#86efac}.assignment-view-tabs .job-mobile.active{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd}.assignment-view-tabs .job-dept-tpm.active{background:#fff7ed;color:#c2410c;border-color:#fdba74}.assignment-access-note{margin-top:12px;padding:10px 12px;border-radius:9px;background:#fff8f2;color:#9a3412}.department-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(360px,520px);align-items:center;gap:18px;padding:14px 16px;margin-bottom:14px}.department-toolbar>div{display:flex;align-items:center;gap:10px}.department-toolbar label{display:flex;align-items:center;justify-content:flex-end;gap:10px;font-weight:600;white-space:nowrap}.department-toolbar label .input{height:40px;min-width:260px}.department-shift .shift-note{min-height:34px}.assignment-config{display:grid;grid-template-columns:minmax(260px,1.25fr) minmax(140px,.55fr) minmax(230px,1fr);align-items:end;gap:12px;border:1px solid var(--line);border-radius:13px;padding:14px;margin-bottom:14px;background:#fafafa}.assignment-config .field{margin:0}.shift-summary-list{display:grid;gap:10px}.shift-summary-row{position:relative;border:1px solid var(--line);border-radius:12px;padding:13px 140px 13px 14px}.shift-summary-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.shift-summary-meta{margin:7px 0;color:var(--muted)}.shift-summary-people{display:flex;gap:8px 12px;flex-wrap:wrap}.shift-summary-people>span{display:inline-flex;align-items:center;gap:5px;font-size:12px}.shift-summary-row>.btn{position:absolute;right:13px;top:50%;transform:translateY(-50%)}.assignment-day-config{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(260px,1fr);gap:14px 12px;border:1px solid var(--line);border-radius:13px;padding:14px;margin-bottom:18px;background:#fafafa}.assignment-day-config>.field{margin:0;align-self:start;align-content:start}.assignment-quantity-group{grid-column:1/-1;display:grid;grid-template-columns:auto repeat(3,minmax(120px,1fr));align-items:start;gap:10px;padding-top:14px;border-top:1px solid var(--line)}.assignment-quantity-group>strong{align-self:center}.assignment-quantity-group label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:600}.assignment-quantity-group .input{height:42px}.assignment-day-config .inline-field-error{max-width:100%;padding-top:1px}.assignment-quantity-error{grid-column:2/-1}.compact-callout{padding:11px 13px;margin-bottom:20px}.assignment-result-wrap{overflow-x:scroll;border:1px solid var(--line);border-radius:12px;scrollbar-width:auto;scrollbar-color:#98a2b3 #eef1f4;scrollbar-gutter:stable}.assignment-result-wrap::-webkit-scrollbar{height:12px}.assignment-result-wrap::-webkit-scrollbar-track{background:#eef1f4;border-radius:999px}.assignment-result-wrap::-webkit-scrollbar-thumb{min-width:48px;background:#98a2b3;border:3px solid #eef1f4;border-radius:999px}.assignment-result-wrap::-webkit-scrollbar-thumb:hover{background:#7f8998}.assignment-result-table{width:100%;min-width:1040px;border-collapse:collapse}.assignment-result-table th,.assignment-result-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}.assignment-result-table th:not(:last-child),.assignment-result-table td:not(:last-child){border-right:1px solid var(--line)}.assignment-result-table th{background:#fafafa;color:#475467;font-size:12px;white-space:nowrap}.assignment-result-table td:nth-child(5){min-width:210px}.assignment-result-table tr:last-child td{border-bottom:0}.assignment-result-table th:first-child,.assignment-result-table td:first-child{width:48px;text-align:center}.table-label{display:inline-flex;margin:0 0 0 7px;vertical-align:middle}.responsible-table-row{background:#fffaf6}.period-badge{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.period-morning{background:#eff6ff;color:#1d4ed8}.period-afternoon{background:#fff7ed;color:#c2410c}.period-full{background:#f3e8ff;color:#7e22ce}.period-actions{display:flex;gap:6px;flex-wrap:wrap}.period-actions .btn{padding:5px 8px}.assignment-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 20px}.assignment-totals-two{grid-template-columns:repeat(2,1fr)}.assignment-total{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;padding:11px 13px;border:1px solid #86efac;border-radius:11px;background:#f0fdf4;color:#166534}.assignment-total span{font-size:12px;font-weight:600}.assignment-total strong{font-size:18px}.assignment-total small{grid-column:1/-1}.assignment-total.missing{border-color:#fca5a5;background:#fef2f2;color:#b91c1c}.assignment-total.unset{border-color:var(--line);background:#f8fafc;color:var(--muted)}.candidate-details{margin-top:4px;border:1px solid var(--line);border-radius:12px;padding:0 12px 12px}.candidate-details summary{padding:12px 2px;font-weight:600;cursor:pointer}.candidate-table{min-width:1040px}.confirmation-time{display:block;margin-top:4px;color:var(--muted);white-space:nowrap}.mobile-assignment-config{display:grid;grid-template-columns:minmax(260px,1fr) minmax(260px,1fr);gap:14px 16px;border:1px solid var(--line);border-radius:13px;padding:16px;margin-bottom:18px;background:#fafafa}.mobile-assignment-config>.field{margin:0;align-self:start}.mobile-assignment-config .mobile-config-full,.mobile-assignment-config .assignment-quantity-group{grid-column:1/-1}.mobile-assignment-table{min-width:1580px}.mobile-assignment-table td:nth-child(5){min-width:230px}.mobile-assignment-table td:nth-child(6),.mobile-assignment-table td:nth-child(7),.mobile-assignment-table td:nth-child(9){min-width:165px}.mobile-assignment-table th:last-child,.mobile-assignment-table td:last-child{text-align:center}.mobile-member-name{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:185px}.mobile-position-badge{display:inline-flex;padding:4px 9px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:700;white-space:nowrap}.mobile-responsible-checkbox{display:inline-grid;place-items:center;cursor:pointer}.mobile-responsible-checkbox input{position:absolute;opacity:0;pointer-events:none}.mobile-responsible-checkbox span{display:grid;width:22px;height:22px;place-items:center;border:1.5px solid #98a2b3;border-radius:5px;background:#fff;transition:.15s}.mobile-responsible-checkbox input:checked+span{border-color:var(--orange);background:var(--orange)}.mobile-responsible-checkbox input:checked+span:after{content:"✓";color:#fff;font-size:15px;font-weight:800;line-height:1}.mobile-responsible-checkbox input:focus-visible+span{outline:3px solid rgba(249,115,22,.22);outline-offset:2px}.fixed-day-config{gap:14px 16px}.fixed-position-quantity{grid-template-columns:auto repeat(3,minmax(150px,1fr))}.fixed-assignment-table{min-width:920px}.fixed-assignment-table td:nth-child(5){min-width:260px}.fixed-assignment-table td:nth-child(6){min-width:130px}@media(max-width:900px){.department-toolbar,.assignment-config{grid-template-columns:1fr}.department-toolbar small{padding-bottom:0}.assignment-config-actions{flex-wrap:wrap}}@media(max-width:600px){.shift-summary-row{padding-right:14px}.shift-summary-row>.btn{position:static;transform:none;margin-top:10px}}@media(max-width:700px){.assignment-day-config,.mobile-assignment-config{grid-template-columns:1fr}.mobile-assignment-config .mobile-config-full,.mobile-assignment-config .assignment-quantity-group{grid-column:auto}.assignment-quantity-group{grid-template-columns:1fr 1fr;grid-column:auto}.assignment-quantity-group>strong{grid-column:1/-1}.assignment-quantity-error{grid-column:1/-1}.assignment-totals{grid-template-columns:1fr}}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:16px}.report-card{overflow:hidden}.report-image{height:175px;background:linear-gradient(135deg,#fff0e5,#ffe0c5);display:grid;place-items:center;color:var(--orange)}.report-image img{width:100%;height:100%;object-fit:cover}.report-image svg{width:42px;height:42px}.report-body{padding:16px}.report-body h3{margin:0 0 7px}.report-body p{color:var(--muted);margin:0 0 13px}.report-content{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:59px}.report-date{display:flex;align-items:center;gap:7px}.report-content-input{height:auto;min-height:120px;padding:12px 13px;line-height:1.5;resize:vertical}.card-action-row{display:flex;gap:8px;flex-wrap:wrap}.file-preview{height:210px;border:1px dashed #cfd4dc;border-radius:12px;background:#fafafa;display:grid;place-items:center;overflow:hidden;color:var(--muted)}.file-preview img{width:100%;height:100%;object-fit:contain;background:#fff}.activity-meta{display:flex;align-items:center;gap:8px;color:var(--muted);margin:10px 0 14px}.settings-card{padding:20px;max-width:720px}.settings-actions{margin:20px 0 0}.export-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.export-choice{display:flex;align-items:flex-start;gap:11px;border:1px solid var(--line);border-radius:13px;padding:15px;background:#fff;cursor:pointer}.export-choice.active{border-color:var(--orange);background:#fff8f2;box-shadow:0 0 0 2px #f973161a}.export-choice input{margin-top:4px;accent-color:var(--orange)}.export-choice span{display:grid;gap:4px}.export-choice small{color:var(--muted);line-height:1.4}.export-filter-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:15px;border:1px solid var(--line);border-radius:13px;background:#fafafa}.export-filter-fields .field{margin:0}@media(max-width:1000px){.report-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.report-grid,.export-choice-grid,.export-filter-fields{grid-template-columns:1fr}}@media(min-width:701px){.sidebar{width:260px;overflow:hidden;contain:paint;transition:width .3s cubic-bezier(.4,0,.2,1)}.brand{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:9px;width:100%;padding:0 8px 18px;justify-content:stretch;overflow:hidden;transition:grid-template-columns .3s cubic-bezier(.4,0,.2,1),gap .22s ease}.brand img{transition:width .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1)}.brand strong{display:block!important;min-width:0;overflow:hidden;opacity:1;transform:translate(0);white-space:nowrap;will-change:opacity,transform;transition:opacity .14s ease .12s,transform .2s ease .1s}.nav button{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;justify-content:stretch;gap:11px;width:100%;padding:0 14px;overflow:hidden;transition:grid-template-columns .3s cubic-bezier(.4,0,.2,1),gap .22s ease,background-color .15s ease}.nav button svg{width:20px;min-width:20px;justify-self:center}.nav button span{display:block!important;min-width:0;max-width:180px;overflow:hidden;opacity:1;transform:translate(0);white-space:nowrap;will-change:opacity,transform;transition:opacity .14s ease .12s,transform .2s ease .1s,max-width .3s cubic-bezier(.4,0,.2,1)}.app-shell.collapsed .sidebar{width:78px}.app-shell.collapsed .brand{grid-template-columns:38px 0fr;gap:0;padding:0 8px 18px;justify-content:stretch}.app-shell.collapsed .brand strong{display:block!important;opacity:0;transform:translate(-7px);pointer-events:none;transition:opacity .08s ease,transform .14s ease}.app-shell.collapsed .nav button{grid-template-columns:22px 0fr;gap:0;padding:0 14px;justify-content:stretch}.app-shell.collapsed .nav button span{display:block!important;max-width:0;opacity:0;transform:translate(-7px);pointer-events:none;transition:opacity .08s ease,transform .14s ease,max-width .24s cubic-bezier(.4,0,.2,1)}.app-shell.expanded .brand strong,.app-shell.expanded .nav button span{visibility:visible}}.work-log-mode-tabs{padding:10px 14px;margin-bottom:12px}.work-log-round{min-width:250px;margin:0}.work-log-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.work-log-filters .input{min-width:280px;flex:1}.work-log-filters select{min-width:180px;height:42px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);padding:0 10px}.work-log-summary-table{min-width:1320px}.attendance-log-table{min-width:1450px}.attendance-result{display:inline-flex;white-space:nowrap;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}.attendance-result.present{background:#ecfdf3;color:#027a48}.attendance-result.justified{background:#fff7ed;color:#b54708}.attendance-result.unjustified{background:#fef2f2;color:#b91c1c}.attendance-note{display:block;min-width:190px;max-width:300px;white-space:normal;line-height:1.4}.member small{display:block;color:var(--muted);font-weight:400;margin-top:2px}@media(max-width:900px){.work-log-round{width:100%}.work-log-filters .input,.work-log-filters select{width:100%;min-width:0}}@media(prefers-reduced-motion:reduce){.brand,.brand strong,.nav button,.nav button span{transition:none!important}}.status.excess{background:#fff1e8;color:#c2410c}.shift-card.over{border-color:#fb923c;background:#fff7ed}.over .shift-count{color:#ea580c}.assignment-total.excess{border-color:#fdba74;background:#fff7ed;color:#c2410c}.table{min-width:720px}.table th,.table td{padding:9px 10px}.member-table{min-width:1340px}.member-table th,.member-table td{padding-left:8px;padding-right:8px}.member-table td:nth-child(3){min-width:175px}.member-table td:nth-child(10){min-width:205px}.member-table th:last-child,.member-table td:last-child{min-width:112px}.member-table td:last-child{padding-left:9px;padding-right:9px}.evaluation-table{min-width:1200px}.evaluation-table th,.evaluation-table td{padding:8px}.schedule{min-width:1080px;table-layout:fixed}.assignment-result-table{min-width:840px;font-size:13px}.assignment-result-table th,.assignment-result-table td{padding:8px 9px}.assignment-result-table td:nth-child(5){min-width:175px}.candidate-table{min-width:840px}.mobile-assignment-table{min-width:1240px}.mobile-assignment-table td:nth-child(5){min-width:185px}.mobile-assignment-table td:nth-child(6),.mobile-assignment-table td:nth-child(7),.mobile-assignment-table td:nth-child(9){min-width:130px}.mobile-member-name{min-width:160px}.fixed-assignment-table{min-width:700px}.fixed-assignment-table td:nth-child(5){min-width:190px}.fixed-assignment-table td:nth-child(6){min-width:105px}@media(max-width:700px){.table th,.table td{padding:9px 8px}.assignment-result-table th,.assignment-result-table td{padding:8px}}.schedule{min-width:1160px;table-layout:fixed}.schedule th:first-child,.schedule td:first-child{width:82px}.schedule th:not(:first-child),.schedule td:not(:first-child){width:154px}.department-shift{width:100%;height:176px;min-width:0;display:grid;grid-template-rows:24px 28px minmax(42px,1fr) 31px;gap:5px;padding:10px}.department-shift .registration-count{max-width:100%;margin:0;overflow:hidden;text-overflow:ellipsis}.department-shift .shift-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;min-width:0;margin:0}.department-shift .shift-count{min-width:0;font-size:15px;line-height:1.2;white-space:nowrap}.department-shift .shift-top .status{max-width:100%;padding:3px 6px;font-size:11px;line-height:1.25;white-space:nowrap}.department-shift .shift-note{min-height:0;margin:0;line-height:1.35;overflow-wrap:anywhere}.department-shift .btn{height:31px;margin:0;align-self:end}.department-shift-meta{display:grid;align-content:start;gap:2px;font-size:11.5px}.department-shift-meta .shift-meta-line{display:block;color:var(--muted)}.department-shift-meta .shift-meta-line strong{color:#475467;font-weight:650}.department-shift-meta .shift-meta-empty{color:var(--muted)}.position-shift-meta{gap:0;font-size:11px;line-height:1.25}.position-shift-meta .shift-meta-line{display:flex;justify-content:space-between;gap:5px;white-space:nowrap}.schedule.day-only-schedule{min-width:1260px}.day-only-schedule th,.day-only-schedule td,.day-only-schedule th:first-child,.day-only-schedule td:first-child,.day-only-schedule th:not(:first-child),.day-only-schedule td:not(:first-child){width:180px;padding:14px 12px}.day-only-schedule .department-shift{height:210px;grid-template-rows:26px 30px minmax(68px,1fr) 34px;gap:7px;padding:13px}.day-only-schedule .position-shift-meta{gap:2px;font-size:12px;line-height:1.35}.day-only-schedule .department-shift .btn{height:34px}.candidate-details{padding:0 10px 10px}.candidate-details summary{padding:10px 2px}.candidate-table-unified{min-width:1105px;table-layout:fixed}.candidate-table-unified th,.candidate-table-unified td{padding:7px 8px}.candidate-table-unified th:nth-child(1),.candidate-table-unified td:nth-child(1){width:50px}.candidate-table-unified th:nth-child(2),.candidate-table-unified td:nth-child(2){width:190px}.candidate-table-unified th:nth-child(3),.candidate-table-unified td:nth-child(3){width:100px}.candidate-table-unified th:nth-child(4),.candidate-table-unified td:nth-child(4){width:110px}.candidate-table-unified th:nth-child(5),.candidate-table-unified td:nth-child(5){width:190px;min-width:0}.candidate-table-unified th:nth-child(6),.candidate-table-unified td:nth-child(6){width:80px}.candidate-table-unified th:nth-child(7),.candidate-table-unified td:nth-child(7){width:75px}.candidate-table-unified th:nth-child(8),.candidate-table-unified td:nth-child(8){width:310px}.candidate-table-unified tbody tr{height:58px}.candidate-table-unified .period-actions{gap:5px;flex-wrap:nowrap}.candidate-table-unified .period-actions .btn{white-space:nowrap}.data-table-wrap{isolation:isolate}.data-table th,.data-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.data-table th:last-child,.data-table td:last-child{border-right:0}.data-table tbody tr:last-child>td{border-bottom:0}.mobile-location-workspace{border:1px solid var(--line);border-radius:13px;background:#fff;margin-bottom:16px;overflow:hidden}.mobile-location-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:#fff8f2;border-bottom:1px solid #fed7aa}.mobile-location-heading>div{display:grid;gap:2px}.mobile-location-heading small{color:var(--muted)}.mobile-location-picker{display:grid;grid-template-columns:minmax(280px,1fr) auto;align-items:end;gap:12px;padding:14px 16px}.mobile-location-picker .field{margin:0}.mobile-location-picker .btn{margin-bottom:0}.mobile-location-add{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:end;gap:10px;padding:0 16px 14px}.mobile-location-add .field{margin:0}.mobile-location-empty{text-align:center;padding:38px 18px;border:1px dashed #cfd4dc;border-radius:13px;background:#fafafa}.mobile-location-empty p{margin:5px 0 16px;color:var(--muted)}.mobile-point-config{margin-bottom:12px}.mobile-point-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;margin-bottom:18px;border-radius:10px;background:#eff6ff;color:#1d4ed8}.mobile-point-summary span{font-size:12px;color:#475467}@media(max-width:700px){.mobile-location-heading{align-items:flex-start;flex-direction:column}.mobile-location-heading .btn{width:100%}.mobile-location-picker,.mobile-location-add{grid-template-columns:1fr}.mobile-location-picker .btn,.mobile-location-add .btn{width:100%}.mobile-point-summary{align-items:flex-start;flex-direction:column}}.weekly-confirmed-card{padding:0;overflow:hidden}.weekly-confirmed-week{margin-bottom:14px}.weekly-confirmed-week>span{margin-left:auto;color:var(--muted)}.weekly-confirmed-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:17px 18px 14px;border-bottom:1px solid var(--line)}.weekly-confirmed-head h3{margin:0 0 4px;font-size:17px}.weekly-confirmed-head p{margin:0;color:var(--muted)}.weekly-confirmed-search{display:flex;align-items:center;gap:14px;padding:12px 18px}.weekly-confirmed-search .input{max-width:460px}.weekly-confirmed-search span{margin-left:auto;color:var(--muted);white-space:nowrap}.weekly-confirmed-table{min-width:1100px}.weekly-confirmed-table th:nth-child(3),.weekly-confirmed-table td:nth-child(3){min-width:210px}.weekly-confirmed-table th:nth-child(n+5),.weekly-confirmed-table td:nth-child(n+5){text-align:center}.weekly-confirmed-total{display:inline-grid;place-items:center;min-width:34px;height:30px;padding:0 8px;border-radius:999px;background:var(--orange-soft);color:var(--orange-dark)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-top:1px solid var(--line);background:#fff}.pagination-info{color:var(--muted);font-size:13px}.pagination-controls{display:flex;align-items:center;gap:6px;overflow-x:auto}.pagination-controls button{display:grid;flex:0 0 34px;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:9px;background:#fff;color:#344054;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.pagination-controls button:hover:not(:disabled){border-color:var(--orange);color:var(--orange)}.pagination-controls button.active{border-color:var(--orange);background:var(--orange);color:#fff}.pagination-controls button:disabled{cursor:not-allowed;opacity:.4}.pagination-arrow{font-size:21px!important;line-height:1}@media(max-width:700px){.weekly-confirmed-head,.weekly-confirmed-search,.weekly-confirmed-week{align-items:stretch;flex-direction:column}.weekly-confirmed-week>span{margin-left:0}.weekly-confirmed-search .input{max-width:none}.weekly-confirmed-search span{margin-left:0}.pagination{align-items:flex-start;flex-direction:column}.pagination-controls{width:100%;padding-bottom:2px}}.status.confirm-confirmed{background:#eafbf0;color:#15803d}.status.confirm-pending{background:#fff7e8;color:#b45309}.status.confirm-late{background:#fef2f2;color:#b91c1c}.status.confirm-declined{background:#f2f4f7;color:#475467}.confirmation-time-cell{display:grid;gap:3px;white-space:nowrap}.confirmation-time-cell small{color:var(--muted);white-space:normal;max-width:260px}.confirmation-totals{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin:0 0 12px}.confirmation-total{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border:1px solid var(--line);border-radius:11px;font-size:12px;font-weight:600}.confirmation-total strong{font-size:18px}.confirmation-total.confirm-confirmed{background:#f0fdf4;border-color:#86efac;color:#166534}.confirmation-total.confirm-pending{background:#fff7ed;border-color:#fdba74;color:#b45309}.confirmation-total.confirm-late{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}.confirmation-total.confirm-declined{background:#f8fafc;color:#475467}@media(max-width:700px){.confirmation-totals{grid-template-columns:1fr 1fr}}.attendance-result.late{background:#fef3c7;color:#b45309}.attendance-cell{display:grid;gap:4px}.attendance-cell small{color:var(--muted);font-size:12px;max-width:240px;white-space:normal}.remark-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.remark-badge.praised{background:#ecfdf3;color:#027a48}.remark-badge.criticized{background:#fef2f2;color:#b91c1c}.remark-badge.supplementary{background:#eff6ff;color:#1d4ed8;margin-left:6px}.attendance-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:11px 13px;margin:0 0 12px;border:1px solid var(--line);border-radius:11px;background:#fafafa}.attendance-panel.completed{border-color:#86efac;background:#f0fdf4}.attendance-panel.open{border-color:#fdba74;background:#fff7ed}.status.confirm-supplementary{background:#eff6ff;color:#1d4ed8}.muted{color:var(--muted)}.session-history{margin:22px 0}.session-filters{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}.session-filters button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 11px;font-size:12px;font-weight:600}.session-filters button.active{border-color:var(--orange);background:#fff7ed;color:#c2410c}.session-history-table{min-width:980px}.period-select{min-width:280px;height:40px}.chip,.status,.job-badge,.remark-badge,.attendance-result,.violation-summary,.period-badge,.mobile-position-badge,.schedule-published-badge,.registration-count{white-space:nowrap;flex-shrink:0}.table th{white-space:nowrap}.table-wrap{overflow-x:auto}.session-filters,.shift-summary-head,.attendance-panel{flex-wrap:nowrap;overflow-x:auto}.session-filters button{white-space:nowrap;flex-shrink:0}.confirmation-total span{white-space:nowrap}.attendance-panel>span{white-space:nowrap}.data-table th,.data-table td{white-space:nowrap}.data-table .attendance-note{white-space:normal}.attendance-cell small,.confirmation-time-cell small{white-space:nowrap;max-width:none}.week-published-badge{margin-left:8px;padding:2px 7px;border-radius:999px;background:#eafbf0;color:#15803d;font-size:11px;font-weight:700;white-space:nowrap}.export-check-list{display:grid;gap:8px}.export-check-list label{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.export-check-list label.disabled{opacity:.55;cursor:not-allowed}.export-check-list label .status{margin-left:auto}.checkbox-group+.checkbox-group{margin-top:14px}.evaluation-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin-bottom:14px;flex-wrap:wrap}.evaluation-period-field{display:flex;align-items:center;gap:10px;font-weight:600;white-space:nowrap}.evaluation-period-field .input{min-width:320px;height:40px}.evaluation-toolbar-meta{color:var(--muted);font-size:13px;white-space:nowrap}.nav a{height:48px;border:0;background:transparent;color:#fff;border-radius:11px;text-align:left;padding:0 14px;display:flex;align-items:center;gap:12px;font-weight:600;text-decoration:none}.nav a:hover,.nav a.active{background:#fff3}.nav a svg{width:20px;flex:none}.top-actions .top-user{display:grid;line-height:1.25}.top-actions .top-user strong{font-size:13px}.top-actions .top-user small{font-size:11px;color:var(--muted);margin-top:2px}.person-cell{display:flex;align-items:center;gap:10px}.person-cell .avatar{width:36px;height:36px}.badges,.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.avatar{overflow:hidden;flex:none;border-radius:50%}.avatar img{display:block;width:100%;height:100%;object-fit:cover}.member-actions .btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:7px}.permission-badge{display:inline-flex;align-items:center;min-height:27px;padding:3px 9px;border-radius:999px;background:var(--orange-soft);color:#b54708;font-size:12px;font-weight:600;white-space:nowrap}.job-dieu_che_tpm{background:#f3e8ff;color:#7e22ce}.job-khoa_co_dinh{background:#ecfdf3;color:#15803d}.job-khoa_luu_dong{background:#eff6ff;color:#1d4ed8}.job-khoa_tpm{background:#fff7ed;color:#c2410c}.status-open,.status-active,.status-confirmed{background:#eafbf0!important;color:#15803d!important}.status-draft,.status-pending{background:#fff7e8!important;color:#b45309!important}.status-closed,.status-locked,.status-inactive{background:#f2f4f7!important;color:#475467!important}.field{font-weight:600}.field>input,.field>select,.field>textarea{width:100%;height:46px;border:1px solid #d0d5dd;border-radius:11px;padding:0 13px;outline:0;background:#fff;font-weight:400}.field>textarea{height:auto;min-height:110px;padding-block:11px}.field>input:focus,.field>select:focus,.field>textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px #f36b161c}.datetime-input:disabled{cursor:not-allowed;background:#f2f4f7;color:#667085}.datetime-input:focus{border-color:var(--orange);box-shadow:0 0 0 3px #f36b161c;outline:0}.datetime-popover .calendar-grid>span{height:26px}.datetime-popover .calendar-grid button:focus-visible{outline:2px solid var(--orange);outline-offset:1px}.rounds-card{overflow:hidden}.rounds-card .table{min-width:1120px}.rounds-card .table th,.rounds-card .table td{white-space:nowrap}.round-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px}.round-form-grid .field{min-width:0}.round-form>.field-error{margin-top:2px}.login-card form>.btn{margin-top:12px}.required{color:var(--red)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.checkbox-group{border:1px solid var(--line);border-radius:10px;margin:14px 0;padding:14px}.checkbox-group legend{font-weight:700}.checkbox-group>div{display:flex;gap:10px;flex-wrap:wrap}.checkbox-group label,.radio-row{display:flex;align-items:center;gap:8px}.checkbox-group input,.radio-row input{width:18px;height:18px;min-height:18px;accent-color:var(--orange)}.member-avatar-field{display:grid;gap:6px;margin-bottom:16px}.member-field-label{font-weight:600}.avatar-file-button{position:relative;width:max-content;overflow:hidden}.avatar-file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.avatar-remove{width:max-content}.member-account-fields{padding-bottom:4px}.member-profile-grid{align-items:start}.member-checkbox-section .check{align-items:center;min-height:54px}.member-checkbox-section .check input{margin:0}.member-checkbox-section .modal-section-title{font-size:16px}.member-checkbox-section .callout{margin-bottom:14px}.name-action{display:flex;align-items:center;gap:8px;white-space:nowrap}.name-action button{height:30px;padding:0 9px;border:1px solid #fecaca;border-radius:8px;background:#fff5f5;color:var(--red);font-weight:600}.can-responsible{margin-left:7px}.empty-cell{text-align:center!important;padding:35px 12px!important;color:var(--muted)}.filters{padding:14px;display:flex;align-items:end;gap:12px;flex-wrap:wrap}.filters label{display:grid;gap:5px;color:var(--muted);font-size:13px}.assignment-week-toolbar{justify-content:space-between;margin-bottom:14px}.assignment-week-toolbar>span{margin-left:auto;color:var(--muted)}.schedule th>span{font-weight:500;color:var(--muted)}.shift-label small{display:block;color:var(--muted);font-weight:400}.shift-meta-line{display:flex;justify-content:space-between;gap:8px}.department-shift-meta{display:grid;gap:2px}.schedule{min-width:1120px}.schedule th,.schedule td{padding:7px}.shift-card{padding:9px}.evaluation-card{padding:0;overflow:hidden}.evaluation-card .pagination{padding:12px 14px}.violation-readonly-grid{display:grid;grid-template-columns:1fr 1.5fr 1fr 1fr;gap:12px}.violation-readonly-grid span{display:grid;gap:3px}.violation-readonly-grid small{color:var(--muted);font-weight:500}.violation-readonly-note{grid-column:1/-1}.violation-create{background:#fff;margin-top:14px}.violation-create>.btn{margin-top:2px}.violation-create-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:2px}.mobile-point-create{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fafafa;margin-bottom:10px}.mobile-point-create .field{margin:0}.mobile-point-list{display:grid;gap:10px}.mobile-point-card{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid var(--line);border-radius:12px;padding:13px 14px}.mobile-point-card>div{display:flex;align-items:center;gap:10px}.mobile-point-card small{display:block;color:var(--muted);margin-top:3px}.mobile-point-index{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--orange-soft);color:#b54708;font-weight:700}@keyframes shimmer-slide{0%{background-position:200% 0}to{background-position:-200% 0}}.shimmer-block{display:block;border-radius:8px;background:linear-gradient(90deg,#eef1f4 25%,#f8f9fb 42%,#eef1f4 60%);background-size:300% 100%;animation:shimmer-slide 1.45s ease-in-out infinite}.shimmer-line{width:78%;height:14px}.shimmer-line-name{width:92%;height:18px}.shimmer-table-row td{height:62px}.shimmer-table-row:nth-child(2n) .shimmer-line{width:64%}.page-shimmer{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--bg)}.page-shimmer-logo{width:72px;height:72px;border-radius:20px}.page-shimmer-title{width:240px;height:28px}.page-shimmer-line{width:320px;max-width:70vw;height:16px}.page-shimmer-line.short{width:210px}.schedule-shimmer{padding:10px}.schedule-shimmer-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;min-width:1120px}.shimmer-schedule-card{height:205px;border:1px solid var(--line);border-radius:11px;padding:12px;display:flex;flex-direction:column;gap:15px}.shimmer-pill{width:98px;height:25px;border-radius:999px}.shimmer-schedule-card .shimmer-line{height:18px}.shimmer-schedule-card .short{width:55%}.shimmer-button{width:100%;height:31px;margin-top:auto}.modal-shimmer{display:grid;grid-template-columns:1fr 1fr;gap:14px}.shimmer-field{height:68px}.shimmer-heading{height:22px;width:180px;grid-column:1/-1;margin-top:12px}.shimmer-modal-row{height:52px;grid-column:1/-1}@media(prefers-reduced-motion:reduce){.shimmer-block{animation:none}}@media(min-width:701px){.nav a{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;justify-content:stretch;gap:11px;width:100%;padding:0 14px;overflow:hidden;transition:grid-template-columns .3s cubic-bezier(.4,0,.2,1),gap .22s ease,background-color .15s ease}.nav a svg{width:20px;min-width:20px;justify-self:center}.nav a span{display:block!important;min-width:0;max-width:180px;overflow:hidden;opacity:1;transform:translate(0);white-space:nowrap;will-change:opacity,transform;transition:opacity .14s ease .12s,transform .2s ease .1s,max-width .3s cubic-bezier(.4,0,.2,1)}.app-shell.collapsed .nav a{grid-template-columns:22px 0fr;gap:0;padding:0 14px}.app-shell.collapsed .nav a span{display:block!important;max-width:0;opacity:0;transform:translate(-7px);pointer-events:none;transition:opacity .08s ease,transform .14s ease,max-width .24s cubic-bezier(.4,0,.2,1)}.app-shell.expanded .nav a span{visibility:visible}}@media(prefers-reduced-motion:reduce){.nav a,.nav a span{transition:none!important}}@media(max-width:700px){.nav a{justify-content:flex-start;padding:0 14px}.nav a span{display:block}.top-actions .top-user{display:none}.form-grid,.round-form-grid,.mobile-point-create,.modal-shimmer,.violation-readonly-grid{grid-template-columns:1fr}.shimmer-heading,.shimmer-modal-row,.violation-readonly-note{grid-column:1}}.chips,.badges,.row-actions,.period-actions,.name-action{flex-wrap:nowrap}.env-badge{display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border-radius:999px;background:#7c3aed;color:#fff;font-size:11px;font-weight:800;letter-spacing:.04em;white-space:nowrap}.env-badge-login{margin:8px auto 0;align-self:center}
