:root{--bg:#f4f6fb;--panel:#fff;--text:#172033;--muted:#687085;--border:#dce1eb;--primary:#2858c7;--primary-dark:#19449f;--navy:#111827;--success:#16834a;--warning:#a86404;--danger:#b42318;--shadow:0 18px 45px #14203a17;--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.brand{align-items:center;gap:11px;font-weight:800;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg,#4d82f0,#8058cf);border-radius:13px;place-items:center;width:42px;height:42px;font-size:13px;display:grid;box-shadow:0 8px 20px #415fbe4d}.button{border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;padding:10px 16px;font-weight:750;transition:all .2s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--primary);color:#fff;box-shadow:0 7px 18px #2858c738}.button.primary:hover{background:var(--primary-dark)}.button.ghost{border-color:var(--border);background:#fff}.button.danger-outline{color:var(--danger);background:#fff;border-color:#efb7b2}.button.large{padding:13px 19px}.button.small{padding:7px 12px}.button.full{width:100%}.eyebrow{color:var(--primary);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:850}.muted{color:var(--muted)}.landing{background:radial-gradient(circle at 80% 22%,#e9efff 0,#0000 34%),linear-gradient(#fbfcff,#f3f5fa);min-height:100vh}.landing-nav{justify-content:space-between;align-items:center;max-width:1180px;margin:auto;padding:24px 28px;display:flex}.nav-actions,.hero-actions,.trust-row,.form-actions{align-items:center;gap:12px;display:flex}.hero{grid-template-columns:1.05fr .95fr;align-items:center;gap:80px;max-width:1180px;margin:auto;padding:85px 28px 110px;display:grid}.hero h1{letter-spacing:-.045em;margin:16px 0 24px;font-size:clamp(44px,5vw,68px);line-height:1.04}.hero>div>p{color:var(--muted);max-width:600px;font-size:19px}.hero-actions{margin:34px 0 27px}.trust-row{color:#697188;gap:20px;font-size:13px}.hero-card{background:#fff;border:1px solid #e4e8f1;border-radius:26px;padding:28px;transform:rotate(1deg);box-shadow:0 30px 70px #192d5a24}.hero-card-head,.progress-label,.panel-head,.page-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.hero-card-head div{display:grid}.hero-card-head small,.stats small{letter-spacing:.08em;color:var(--muted);font-size:11px;font-weight:800}.hero-card-head strong{font-size:24px}.status{letter-spacing:.04em;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:850;display:inline-flex}.status.success{color:var(--success);background:#e6f6ed}.status.warning{color:var(--warning);background:#fff2d9}.status.danger{color:var(--danger);background:#ffe8e5}.status.neutral{color:#586174;background:#edf0f5}.progress-label{margin:28px 0 9px;font-size:13px}.progress{background:#e9edf5;border-radius:9px;height:9px;overflow:hidden}.progress i{background:linear-gradient(90deg,#2858c7,#6b7be8);height:100%;display:block}.mini-grid{grid-template-columns:repeat(7,1fr);gap:7px;margin:26px 0;display:grid}.mini-grid span{aspect-ratio:1;border:1px solid var(--border);border-radius:8px;place-items:center;font-size:11px;display:grid}.mini-grid .filled{color:#244caa;background:#eaf0ff;border-color:#aebfec}.hero-note{color:#875305;background:#fff7e5;border-radius:12px;padding:15px;font-size:13px;display:grid}.hero-note span{color:#9d702d;font-size:12px}.auth-shell{background:radial-gradient(circle at 20% 10%,#e9efff,transparent 35%),var(--bg);flex-direction:column;align-items:center;min-height:100vh;padding:45px 20px;display:flex}.auth-brand{margin-bottom:30px}.auth-card{border:1px solid var(--border);width:min(440px,100%);box-shadow:var(--shadow);background:#fff;border-radius:22px;padding:35px}.auth-card.wide{width:min(600px,100%)}.auth-card h1{letter-spacing:-.03em;margin:7px 0;font-size:34px}.form-stack,.form-grid{gap:17px;margin-top:25px;display:grid}.form-grid{grid-template-columns:1fr 1fr}.span-2{grid-column:1/-1}label{gap:7px;font-size:13px;font-weight:750;display:grid}label small{color:var(--muted);font-weight:500}input,select,textarea{width:100%;color:var(--text);background:#fff;border:1px solid #cfd5e2;border-radius:10px;outline:none;padding:11px 12px}input:focus,select:focus,textarea:focus{border-color:#6f91dc;box-shadow:0 0 0 3px #e8efff}.check{grid-template-columns:auto 1fr;align-items:flex-start;font-weight:500;display:flex}.check input{width:auto;margin-top:4px}.auth-foot{text-align:center;color:var(--muted);margin:22px 0 0;font-size:13px}.auth-foot a{color:var(--primary);font-weight:800}.alert{border-radius:10px;margin:17px 0;padding:12px 14px;font-size:13px}.alert.success{color:#126a3b;background:#e7f6ee}.alert.danger{color:#8e1d15;background:#ffe9e7}.app-shell{grid-template-columns:270px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--navy);color:#fff;flex-direction:column;height:100vh;padding:23px 18px;display:flex;position:sticky;top:0}.brand.inverse span:last-child{display:grid}.brand.inverse small{color:#8f9bad;font-size:11px;font-weight:500}.side-nav{gap:6px;margin-top:38px;display:grid}.side-nav a{color:#c9d1df;border-radius:10px;align-items:center;gap:13px;padding:11px 12px;font-size:14px;font-weight:650;display:flex}.side-nav a:hover{color:#fff;background:#202b3e}.side-nav a span{text-align:center;width:20px}.sidebar-user{border-top:1px solid #293447;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-top:auto;padding:18px 4px 0;display:grid}.sidebar-user>div:nth-child(2){display:grid}.sidebar-user small{color:#93a0b4;font-size:10px}.sidebar-user button{color:#aeb9ca;background:0 0;border:0;font-size:20px}.avatar{background:#2c60cf;border-radius:11px;place-items:center;width:37px;height:37px;font-size:12px;font-weight:850;display:grid}.avatar.light{color:#2858c7;background:#e8efff;width:48px;height:48px}.app-content{min-width:0}.page-content{max-width:1260px;margin:auto;padding:42px}.page-content.centered{place-items:center;min-height:100vh;display:grid}.page-header{margin-bottom:28px}.page-header h1{letter-spacing:-.035em;margin:5px 0;font-size:34px}.page-header p{color:var(--muted);margin:0}.role-badge{color:#6542ad;background:#ece7ff;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:850}.stats{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px;display:grid}.stats article{border:1px solid var(--border);background:#fff;border-radius:16px;align-items:center;gap:15px;padding:20px;display:flex}.stats article>div{display:grid}.stats strong{font-size:25px;line-height:1.2}.stats span,.stats a{color:var(--muted);font-size:12px}.stats a{color:var(--primary);font-weight:750}.stat-icon{border-radius:12px;place-items:center;width:44px;height:44px;font-weight:900;display:grid}.stat-icon.blue{color:#2858c7;background:#e8efff}.stat-icon.green{color:#16834a;background:#e6f6ed}.stat-icon.orange{color:#a86404;background:#fff2d9}.panel{border:1px solid var(--border);border-radius:var(--radius);background:#fff;margin-bottom:20px;padding:24px;box-shadow:0 7px 24px #14203a0a}.panel h2{margin:4px 0 7px}.action-panel{background:linear-gradient(110deg,#fff,#f1f5ff);justify-content:space-between;align-items:center;display:flex}.action-panel p{color:var(--muted);margin:0}.panel-head{margin-bottom:18px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--border);padding:11px;font-size:11px}td{border-bottom:1px solid #edf0f5;padding:13px 11px}td:first-child{display:grid}td small{color:var(--muted)}.pending-card{border:1px solid var(--border);max-width:600px;box-shadow:var(--shadow);text-align:center;background:#fff;border-radius:24px;padding:46px}.pending-card h1{font-size:34px}.pending-card p{color:var(--muted)}.pending-icon{font-size:36px}.status-line{justify-content:center;align-items:center;gap:12px;margin-top:25px;display:flex}.legend{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.legend span{border-radius:7px;padding:5px 9px;font-size:11px;font-weight:800}.want{color:#2454b7;background:#dce8ff}.can{color:#197746;background:#e5f5eb}.rather{color:#9b5f05;background:#fff0d8}.cannot{color:#a82b22;background:#ffe5e1}.vacation{color:#6845ab;background:#eee8ff}.sick{color:#536071;background:#e8edf3}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:9px;display:grid}.day-card{border:1px solid var(--border);background:#fafbfc;border-radius:12px;padding:10px}.day-card>span{justify-content:space-between;align-items:center;display:flex}.day-card b{font-size:17px}.day-card small{text-transform:uppercase}.day-card select{margin-top:7px;padding:7px;font-size:11px}.note-panel textarea{resize:vertical}.note-panel .form-actions{justify-content:flex-end;margin-top:16px}.request-list{gap:14px;display:grid}.request-card{grid-template-columns:1fr 1.5fr;gap:24px;display:grid}.request-person{gap:13px;display:flex}.request-person h2{margin:2px 0;font-size:18px}.request-person a{color:var(--primary);font-size:13px}.request-person div:last-child{align-content:start;display:grid}.request-person small{color:var(--muted)}.review-form{grid-template-columns:1fr 1.3fr;gap:12px;display:grid}.review-form .form-actions{grid-column:1/-1;justify-content:flex-end}.empty-state{text-align:center;border:1px solid var(--border);background:#fff;border-radius:18px;padding:50px}.empty-state>span{color:var(--success);font-size:35px}.inline-form{justify-content:flex-end;align-items:center;gap:8px;display:flex}.inline-form select{width:auto}@media (max-width:950px){.hero{grid-template-columns:1fr;padding-top:50px}.hero-card{transform:none}.stats{grid-template-columns:1fr}.calendar-grid{grid-template-columns:repeat(4,1fr)}.request-card{grid-template-columns:1fr}.app-shell{grid-template-columns:80px minmax(0,1fr)}.sidebar{padding:20px 12px}.brand.inverse span:last-child,.side-nav a:not(:hover){font-size:0}.side-nav a{justify-content:center}.sidebar-user>div:nth-child(2),.sidebar-user form{display:none}}@media (max-width:650px){.landing-nav{padding:18px}.landing-nav .ghost{display:none}.hero{padding:55px 20px}.hero h1{font-size:43px}.trust-row{display:grid}.page-content{padding:25px 17px}.app-shell{display:block}.sidebar{flex-direction:row;align-items:center;height:auto;position:static}.side-nav{margin:0 0 0 auto;display:flex}.side-nav a{padding:9px}.sidebar-user,.brand.inverse span:last-child{display:none}.calendar-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.request-card{padding:18px}.review-form{grid-template-columns:1fr}.action-panel{gap:18px;display:grid}.nav-actions{gap:6px}}.role-badges,.role-checkboxes{flex-wrap:wrap;gap:8px;display:flex}.role-options{border:0;margin:0;padding:0}.role-options legend{margin-bottom:7px;font-size:13px;font-weight:750}.user-role-form{grid-template-columns:minmax(280px,1fr) auto auto;align-items:center;gap:12px;display:grid}.user-role-form select{width:auto}@media (max-width:800px){.user-role-form{grid-template-columns:1fr}.user-role-form select{width:100%}}.day-card.day-want{background:#dce8ff;border-color:#9bb6ed}.day-card.day-can{background:#e5f5eb;border-color:#9dd3b2}.day-card.day-rather{background:#fff0d8;border-color:#e7bf7c}.day-card.day-cannot{background:#ffe5e1;border-color:#e9a39d}.day-card.day-vacation{background:#eee8ff;border-color:#bca9e5}.day-card.day-sick{background:#e8edf3;border-color:#aeb9c6}.day-card[class*=day-]{box-shadow:inset 0 0 0 1px #ffffff73}.sidebar-inner{flex-direction:column;height:100%;display:flex}.sidebar-toggle{color:#fff;z-index:8;background:#172235;border:1px solid #39465b;border-radius:9px;width:30px;height:30px;position:absolute;top:18px;right:-14px}.app-shell,.sidebar{transition:grid-template-columns .2s,padding .2s}.app-shell.sidebar-collapsed{grid-template-columns:52px minmax(0,1fr)}.sidebar-collapsed .sidebar{padding:20px 10px}.sidebar-collapsed .sidebar-inner{visibility:hidden}.shift-calendar{grid-template-columns:repeat(4,minmax(190px,1fr))}.day-card>header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.shift-choice{border:1px solid var(--border);border-radius:9px;margin-top:6px;padding:7px;transition:all .18s}.shift-choice>span{justify-content:space-between;align-items:center;display:flex}.shift-choice select{background:#ffffffd1;margin-top:5px;padding:6px;font-size:11px}.shift-choice.day-want,.matrix-shifts .day-want{background:#dce8ff;border-color:#9bb6ed}.shift-choice.day-can,.matrix-shifts .day-can{background:#e5f5eb;border-color:#9dd3b2}.shift-choice.day-rather,.matrix-shifts .day-rather{background:#fff0d8;border-color:#e7bf7c}.shift-choice.day-cannot,.matrix-shifts .day-cannot{background:#ffe5e1;border-color:#e9a39d}.shift-choice.day-vacation,.matrix-shifts .day-vacation{background:#eee8ff;border-color:#bca9e5}.shift-choice.day-sick,.matrix-shifts .day-sick{background:#e8edf3;border-color:#aeb9c6}.matrix-page{max-width:none;padding:20px}.matrix-panel{min-height:calc(100vh - 40px);margin:0}.matrix-panel .panel-head h1{margin:3px 0}.matrix-panel .panel-head p{color:var(--muted);margin:0}.matrix-scroll{border:1px solid var(--border);border-radius:12px;max-height:calc(100vh - 205px);overflow:auto}.preference-matrix{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.preference-matrix th,.preference-matrix td{vertical-align:middle;border-bottom:1px solid #e3e7ef;border-right:1px solid #e3e7ef;min-width:122px;padding:4px}.preference-matrix thead th{z-index:4;text-align:center;text-transform:none;background:#f1f4fa;font-size:12px;position:sticky;top:0}.preference-matrix th small{color:var(--muted);font-size:9px;display:block}.preference-matrix .sticky-col{z-index:3;background:#f7f8fb;min-width:80px;position:sticky;left:0}.preference-matrix thead .sticky-col{z-index:5}.matrix-shifts{grid-template-columns:1fr 1fr;gap:3px;display:grid}.matrix-shifts span{text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;min-width:55px;padding:4px 3px;font-size:9px;overflow:hidden}.matrix-shifts b{opacity:.65;font-size:8px;display:block}.matrix-empty{color:#8a93a3;background:#f2f4f7}@media (max-width:1100px){.shift-calendar{grid-template-columns:repeat(3,minmax(180px,1fr))}}@media (max-width:750px){.shift-calendar{grid-template-columns:repeat(2,minmax(150px,1fr))}.matrix-page{padding:10px}.matrix-panel .panel-head{display:grid}.matrix-scroll{max-height:calc(100vh - 260px)}}.field-help{text-align:right;margin-top:-10px}.field-help a{color:var(--primary);font-size:12px;font-weight:750}.account-grid{grid-template-columns:1.2fr .8fr;gap:20px;display:grid}.account-grid .panel{margin:0}.account-grid .panel>h2{margin-top:0}@media (max-width:900px){.account-grid{grid-template-columns:1fr}}.master-panel{background:#fff7f6;border-color:#d9a7a2;justify-content:space-between;align-items:center;display:flex}.master-panel.master-on{background:#f1fbf5;border-color:#75bd94}.master-panel form{justify-items:end;gap:10px;display:grid}.recipient-grid{border:1px solid var(--border);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:220px;padding:8px;display:grid;overflow:auto}@media (max-width:750px){.master-panel{gap:18px;display:grid}.master-panel form{justify-items:start}.recipient-grid{grid-template-columns:1fr}}.month-navigation{justify-content:center;align-items:center;gap:16px;margin:0 0 20px;display:flex}.preference-fieldset{border:0;min-width:0;margin:0;padding:0}.preference-fieldset:disabled{opacity:.62}.detail-list{gap:8px;margin:16px 0;display:grid}.detail-list div{border-bottom:1px solid #edf0f5;justify-content:space-between;gap:20px;padding-bottom:8px;display:flex}.branch-create{grid-template-columns:1fr 2fr;align-items:end;gap:14px;display:grid}.branch-create .shift-confirm,.branch-create button{grid-column:1/-1}.shift-confirm{align-items:flex-start;gap:8px;font-weight:500;display:flex}.shift-confirm input{width:auto;margin-top:4px}.branch-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.branch-card{border:1px solid var(--border);border-radius:14px;padding:18px}.branch-card h3{margin:0 0 4px}.branch-card form{gap:12px;display:grid}.branch-delete{margin-top:12px}.branch-readonly{gap:6px;display:grid}@media (max-width:750px){.month-navigation{justify-content:space-between;gap:8px}.month-navigation strong{text-align:center}.branch-create,.branch-list{grid-template-columns:1fr}}.public-period-table{margin:22px 0 18px}.public-period-table th{text-align:left;letter-spacing:0;text-transform:none;width:44%;padding:8px 0;font-size:12px}.public-period-table td{text-align:right;padding:8px 0;font-weight:700;display:table-cell}.public-period-table tr:last-child th,.public-period-table tr:last-child td{border-bottom:0}.danger-zone{background:snow;border-color:#efb7b2}.test-credentials{background:#f4f6fb;border-radius:12px;gap:6px;margin:18px 0;padding:15px;display:grid}.test-credentials code{font-size:13px}.restriction-list{gap:18px;margin-top:18px;display:grid}.selection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.generation-confirm{justify-content:space-between;align-items:center;gap:20px;display:flex}.generating-panel{background:#fffaf0;border-color:#e2bd71;align-items:center;gap:22px;display:flex}.generation-spinner{border:4px solid #f0dfb9;border-top-color:#a86404;border-radius:50%;flex:none;width:42px;height:42px;animation:1s linear infinite generation-spin}@keyframes generation-spin{to{transform:rotate(360deg)}}@media (max-width:750px){.selection-grid{grid-template-columns:1fr}.generation-confirm{display:grid}}.draft-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.draft-card{border:1px solid var(--border);border-radius:15px;padding:18px;position:relative}.draft-card.recommended{background:#f5fcf7;border-color:#75bd94}.draft-card>.status{position:absolute;top:14px;right:14px}.draft-card h3{margin:4px 0}.draft-score{color:var(--primary);margin:12px 0;font-size:28px;display:block}.draft-card dl{gap:7px;margin:0;display:grid}.draft-card dl div{border-bottom:1px solid #edf0f5;justify-content:space-between;display:flex}.draft-card dt{color:var(--muted)}.draft-card dd{font-weight:800}@media (max-width:900px){.draft-grid{grid-template-columns:1fr}}.generation-progress{min-width:min(460px,70vw);margin-top:14px}.generation-progress .progress-label{margin:0 0 8px}.generation-progress .progress{height:12px;box-shadow:inset 0 1px 3px #16223a1f}.generation-progress .progress i{background:linear-gradient(90deg,#2858c7,#6679ed,#52b8d2) 0 0/180% 100%;min-width:4px;transition:width .12s linear;animation:2.4s linear infinite generation-gradient;position:relative}.generation-progress .progress i:after{content:"";background:linear-gradient(90deg,#0000,#ffffff73,#0000);animation:1.6s ease-in-out infinite generation-shine;position:absolute;inset:0;transform:translate(-100%)}@keyframes generation-gradient{to{background-position:180% 0}}@keyframes generation-shine{60%,to{transform:translate(100%)}}.generation-completion-panel{padding-top:18px;padding-bottom:18px}.generation-progress-completing{min-width:0;margin-top:0}.generation-progress-completing .progress i{transition:width .45s ease-out}.hero-note.success{color:#176a3e;background:#e8f7ee}.hero-note.success span{color:#45825f}.hero-note.info{color:#2856aa;background:#eaf1ff}.hero-note.info span{color:#5674ad}.hero-note.neutral{color:#596274;background:#f0f2f6}.hero-note.neutral span{color:#7a8290}.draft-actions{flex-wrap:wrap;justify-content:flex-start;margin-bottom:20px}.publish-form{align-items:center;gap:12px;margin-left:auto;display:flex}.branch-schedule-list{gap:22px;display:grid}.branch-schedule{padding-top:22px}.branch-schedule .section-heading{margin-bottom:14px}.schedule-preview-table{max-height:min(560px,100vh - 250px)}.schedule-preview-table table{min-width:720px}.assignment-conflict{color:var(--danger);background:#fff0ee}@media (max-width:800px){.publish-form{width:100%;margin-left:0;display:grid}}.schedule-preview-table thead th{color:#536078;letter-spacing:.06em;background:#f6f8fc}.schedule-preview-table tbody tr:nth-child(2n){background:#fafbfe}.schedule-preview-table td{padding:11px 14px}.schedule-date{text-transform:capitalize;align-items:center;gap:10px;display:flex}.schedule-date strong{color:#2456cc;background:#edf2ff;border-radius:10px;place-items:center;width:36px;height:36px;font-size:17px;display:grid}.schedule-date span{color:var(--muted);font-size:13px}.shift-badge{border-radius:10px;justify-content:space-between;align-items:center;gap:14px;min-width:166px;padding:8px 11px;display:inline-flex}.shift-badge b{font-size:13px}.shift-badge small{opacity:.68;font-weight:700}.shift-day{color:#8b5a00;background:#fff2cf}.shift-night{color:#3e438c;background:#e8eafa}.branch-pill{color:#44516a;background:#edf1f7;border-radius:999px;padding:6px 10px;font-weight:700;display:inline-block}.doctor-name{color:#172033}.unassigned-doctor{color:var(--danger)}.schedule-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px;display:grid}.schedule-summary>div{border:1px solid var(--border);background:#fff;border-radius:16px;padding:18px 20px;box-shadow:0 8px 24px #22365c0d}.schedule-summary span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:800;display:block}.schedule-summary strong{margin-top:5px;font-size:28px;display:block}.schedule-summary .summary-day{border-top:4px solid #eab542}.schedule-summary .summary-night{border-top:4px solid #666bc5}.personal-schedule-panel{padding-top:24px}.personal-shift-list{gap:10px;display:grid}.personal-shift{border:1px solid var(--border);background:#fff;border-left:5px solid;border-radius:14px;grid-template-columns:72px 46px minmax(180px,1fr) minmax(150px,.7fr);align-items:center;gap:14px;padding:12px 18px;display:grid}.personal-shift-day{border-left-color:#eab542}.personal-shift-night{border-left-color:#666bc5}.personal-shift time{text-align:center;border-right:1px solid var(--border);padding-right:14px}.personal-shift time strong{font-size:25px;display:block}.personal-shift time span{color:var(--muted);text-transform:uppercase;font-size:11px;display:block}.personal-shift-icon{border-radius:12px;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.personal-shift-day .personal-shift-icon{color:#8b5a00;background:#fff2cf}.personal-shift-night .personal-shift-icon{color:#3e438c;background:#e8eafa}.personal-shift-info strong,.personal-shift-branch strong{display:block}.personal-shift-info span,.personal-shift-branch small{color:var(--muted);font-size:12px}.personal-shift-branch{border-left:1px solid var(--border);padding-left:18px}@media (max-width:800px){.schedule-summary{grid-template-columns:1fr 1fr}.personal-shift{grid-template-columns:58px 40px 1fr}.personal-shift-branch{border-left:0;grid-column:3;padding-left:0}.schedule-date span{display:none}}.month-calendar-wrap{overflow:auto}.month-calendar{grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1015px;display:grid}.month-calendar.weekdays{z-index:2;border:1px solid var(--border);border-bottom:0;border-radius:12px 12px 0 0;position:sticky;top:0;overflow:hidden}.month-calendar.weekdays div{text-align:center;color:#536078;text-transform:uppercase;letter-spacing:.04em;background:#edf2fa;padding:9px;font-size:11px;font-weight:800}.schedule-calendar{border-top:1px solid var(--border);border-left:1px solid var(--border)}.calendar-day{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff;min-height:128px;padding:8px}.calendar-day:last-child{border-radius:0 0 12px}.calendar-day-blank{background:#f5f7fb}.calendar-day-weekend{background:#fbfcff}.calendar-day header{text-align:right;color:#26344e;height:24px}.calendar-day-weekend header{color:#be4e55}.calendar-shift{background:var(--doctor-bg);min-height:40px;color:var(--doctor-fg);border:1px solid color-mix(in srgb,var(--doctor-fg) 16%,transparent);border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:1px 6px;margin-top:5px;padding:5px 7px;display:grid}.calendar-shift-label{opacity:.72;font-size:9px;font-weight:800}.calendar-shift strong{white-space:normal;grid-column:1/-1;font-size:10px;line-height:1.2}.calendar-shift small{opacity:.72;white-space:nowrap;text-overflow:ellipsis;grid-column:1/-1;font-size:9px;overflow:hidden}.calendar-shift-night{box-shadow:inset 3px 0 #6c70b8}.calendar-shift-day{box-shadow:inset 3px 0 #e1ad3e}.calendar-shift-empty{--doctor-bg:#f3f5f8!important;--doctor-fg:#98a0ae!important}.calendar-shift-issue{--doctor-bg:#fff0ee!important;--doctor-fg:#a12b22!important}.personal-schedule-panel .month-calendar{grid-template-columns:repeat(7,minmax(130px,1fr));min-width:910px}@media (max-width:800px){.calendar-day{min-height:118px}.month-calendar{grid-template-columns:repeat(7,minmax(125px,1fr));min-width:875px}}.sidebar-backdrop{display:none}.sidebar-user{grid-template-columns:auto 1fr}.sidebar-user form{grid-column:1/-1;width:100%}.sidebar-user .sidebar-logout{color:#eef2f8;background:#1b2638;border:1px solid #3a465a;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:5px;padding:9px 12px;font-size:13px;font-weight:750;display:flex}.sidebar-user .sidebar-logout:hover{background:#263349;border-color:#56647a}.sidebar-user .sidebar-logout span:first-child{font-size:18px}@media (max-width:950px){.app-shell,.app-shell.sidebar-collapsed{min-height:100vh;display:block}.app-content{width:100%}.sidebar{z-index:50;width:min(290px,100vw - 52px);height:100dvh;padding:22px 18px;transition:transform .2s;position:fixed;inset:0 auto 0 0;overflow:visible;box-shadow:18px 0 45px #09111f3d}.sidebar-inner{padding-right:2px;overflow:hidden auto}.sidebar-toggle{width:36px;height:36px;font-size:20px;top:18px;right:-42px;box-shadow:0 5px 16px #09111f38}.sidebar-backdrop{z-index:40;background:#0f172a61;border:0;display:block;position:fixed;inset:0}.app-shell.sidebar-collapsed .sidebar{box-shadow:none;padding:22px 18px;transform:translate(-100%)}.sidebar-collapsed .sidebar-inner{visibility:visible}.brand.inverse span:last-child{display:grid}.side-nav{gap:6px;margin:32px 0 20px;display:grid}.side-nav a,.side-nav a:not(:hover){justify-content:flex-start;padding:11px 12px;font-size:14px}.sidebar-user{margin-top:auto;display:grid}.sidebar-user>div:nth-child(2),.sidebar-user form{display:grid}}@media (max-width:650px){.sidebar{flex-direction:column;align-items:stretch}.brand.inverse span:last-child{display:grid}.side-nav{margin:32px 0 20px;display:grid}.sidebar-user{display:grid}}.published-schedule-list{gap:18px;display:grid}.published-schedule-card{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;display:grid}.published-schedule-card h2{margin:5px 0 0;font-size:28px}.published-schedule-heading{align-items:center;gap:12px;display:flex}.published-schedule-stats{flex-wrap:wrap;gap:12px;margin:20px 0 0;display:flex}.published-schedule-stats div{background:#f4f6fa;border-radius:11px;min-width:105px;padding:10px 13px}.published-schedule-stats dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:800}.published-schedule-stats dd{margin:2px 0 0;font-size:20px;font-weight:850}.published-schedule-actions{gap:10px;min-width:220px;display:grid}@media (max-width:750px){.published-schedule-card{grid-template-columns:1fr}.published-schedule-actions{min-width:0}.published-schedule-stats{grid-template-columns:1fr 1fr;display:grid}}.published-schedule-callout{background:linear-gradient(110deg,#f4fcf7,#fff);border-color:#87c6a2;justify-content:space-between;align-items:center;gap:24px;display:flex}.published-schedule-callout h2{margin:4px 0}.published-schedule-callout .form-actions{flex-wrap:wrap;justify-content:flex-end}@media (max-width:800px){.published-schedule-callout{display:grid}.published-schedule-callout .form-actions{justify-content:flex-start}}.side-nav{gap:18px}.side-nav-group{gap:5px;display:grid}.side-nav-heading{color:#718096;letter-spacing:.12em;text-transform:uppercase;padding:0 12px;font-size:9px;font-weight:850}.sidebar-planning-status{background:#172235;border:1px solid #2d3a50;border-radius:12px;margin-top:auto;padding:11px;display:block}.sidebar-planning-status:hover{background:#1d2a3e;border-color:#53627a}.planning-stepper-compact{gap:3px;display:grid}.planning-stepper-compact>span{color:#91a0b7;text-transform:uppercase;font-size:9px;font-weight:750}.planning-stepper-compact>strong{color:#fff;font-size:12px}.compact-step-progress{grid-template-columns:repeat(4,1fr);gap:4px;margin-top:5px;display:grid}.compact-step-progress i{background:#3a4659;border-radius:4px;height:4px}.compact-step-progress i.active{background:#6e91ee}.sidebar-user{margin-top:14px}.sidebar-user>div:nth-child(2)>a{color:#aebbd0;margin-top:2px;font-size:10px;font-weight:700}.sidebar-user>div:nth-child(2)>a:hover{color:#fff}.global-planning-status{max-width:1344px;margin:0 auto;padding:18px 42px 0}.planning-stepper{border:1px solid var(--border);background:#fff;border-radius:16px;grid-template-columns:minmax(190px,250px) minmax(0,1fr);align-items:center;gap:30px;padding:16px 20px;display:grid;box-shadow:0 5px 18px #14203a0a}.planning-stepper-summary{display:grid}.planning-stepper-summary>span{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:850}.planning-stepper-summary>strong{margin:2px 0;font-size:16px}.planning-stepper-summary>small{color:var(--muted);font-size:11px}.planning-stepper ol{grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none;display:grid}.planning-stepper li{color:#9aa2b1;text-align:center;justify-items:center;gap:5px;font-size:10px;display:grid;position:relative}.planning-stepper li:not(:last-child):after{content:"";z-index:0;background:#e1e5ec;width:calc(100% - 34px);height:2px;position:absolute;top:13px;left:calc(50% + 17px)}.planning-stepper li.complete:not(:last-child):after{background:#6f91dc}.planning-stepper li>span{z-index:1;background:#fff;border:2px solid #d7dce5;border-radius:50%;place-items:center;width:28px;height:28px;font-size:11px;font-weight:850;display:grid;position:relative}.planning-stepper li.complete{color:#397653}.planning-stepper li.complete>span{color:#257147;background:#e9f7ee;border-color:#6ab086}.planning-stepper li.current{color:#234ea9}.planning-stepper li.current>span{color:#2454b7;background:#e8efff;border-color:#315fca;box-shadow:0 0 0 4px #f0f4ff}.hero-card>.planning-stepper{border:0;border-top:1px solid var(--border);box-shadow:none;border-radius:0;margin-top:22px;padding:15px 0 4px;display:block}.hero-card>.planning-stepper .planning-stepper-summary{margin-bottom:14px}.hero-card>.planning-stepper .planning-stepper-summary>small{font-size:12px}@media (max-width:950px){.side-nav{gap:18px}.side-nav-heading{display:block}.sidebar-planning-status{margin-top:auto}.global-planning-status{padding:14px 18px 0}.planning-stepper{grid-template-columns:1fr;gap:13px}.planning-stepper-summary>small{max-width:520px}}@media (max-width:650px){.global-planning-status{padding:10px 12px 0}.planning-stepper{padding:13px 14px}.planning-stepper-summary>small,.planning-stepper li b{display:none}.planning-stepper li{gap:0}.planning-stepper li:not(:last-child):after{width:calc(100% - 30px);left:calc(50% + 15px)}.hero-card>.planning-stepper .planning-stepper-summary>small{display:block}}
.preference-save-detail{margin-top:4px;font-weight:500;display:block}.preference-toolbar{border:1px solid var(--border);background:#f7f9fd;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;padding:14px;display:flex}.preference-toolbar>div{margin-right:auto;display:grid}.preference-toolbar span:not(.status){color:var(--muted);font-size:12px}.shift-choice{-webkit-user-select:none;user-select:none}.shift-choice-selected{outline-offset:1px;outline:3px solid #2858c7;box-shadow:0 0 0 5px #2858c71f}.preference-calendar-scroll{padding:4px;overflow:auto}.preference-month-calendar{grid-template-columns:repeat(7,minmax(155px,1fr));gap:8px;min-width:1120px;display:grid}.preference-weekday{color:#536078;text-align:center;text-transform:uppercase;background:#edf2fa;border-radius:8px;padding:8px;font-size:11px;font-weight:800}.preference-day-blank{background:#f6f8fb;border:1px dashed #e0e5ee;border-radius:12px;min-height:190px}.preference-month-calendar .day-card{min-width:0}.preference-day-header{cursor:cell;border-radius:7px;padding:3px 4px}.preference-day-header:hover{background:#e8efff}.selection-rectangle{z-index:90;pointer-events:none;background:#2858c721;border:2px solid #2858c7;border-radius:5px;position:fixed;box-shadow:inset 0 0 0 1px #ffffffb3}.preference-setting-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.preference-setting-grid .check{border:1px solid var(--border);background:#fafbfe;border-radius:10px;padding:12px}.modal-backdrop{z-index:100;background:#1118278c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-modal{background:#fff;border-radius:20px;width:min(520px,100%);padding:28px;box-shadow:0 30px 80px #0a14284d}.confirm-modal h2{margin:7px 0}.confirm-modal p{color:var(--muted)}.confirm-modal .form-actions{justify-content:flex-end;margin-top:22px}@media (max-width:700px){.preference-setting-grid{grid-template-columns:1fr 1fr}.preference-toolbar>div{width:100%}.confirm-modal .form-actions{display:grid}}
.user-admin-list{gap:16px;display:grid}.user-admin-card{border:1px solid var(--border);background:#fbfcfe;border-radius:14px;padding:18px}.user-admin-card>header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:15px;display:flex}.user-admin-card>header div{display:grid}.user-admin-card>header small{color:var(--muted)}.branch-access-details,.delete-user{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.branch-access-details summary,.delete-user summary{cursor:pointer;color:var(--primary);font-weight:750}.branch-access-form{margin-top:14px}.branch-access-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.branch-access-grid .check{border:1px solid var(--border);background:#fff;border-radius:9px;padding:10px}.selection-grid .check span{display:grid}.selection-grid .check span small{color:var(--muted);font-weight:500}@media (max-width:800px){.branch-access-grid{grid-template-columns:1fr}}
.draft-editor-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.draft-editor-toolbar>div{margin-right:auto}.draft-editor-toolbar h2,.draft-editor-toolbar p{margin:2px 0}.draft-calendar{grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1015px;display:grid;overflow:auto}.draft-weekday{text-align:center;color:#536078;text-transform:uppercase;border:1px solid var(--border);background:#edf2fa;padding:8px;font-size:11px;font-weight:800}.draft-day{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff;min-height:155px;padding:7px}.draft-day.blank{background:#f4f6fa}.draft-day>header{text-align:right;font-weight:800}.draft-edit-shift{border:1px solid var(--border);background:#f8fafc;border-radius:8px;margin-top:6px;padding:5px;display:block}.draft-edit-shift>span{color:var(--muted);font-size:9px;display:block}.draft-edit-shift select{padding:5px;font-size:10px}.draft-edit-shift.invalid{color:var(--danger);background:#fff0ee;border-color:#e08c83}.draft-edit-shift small{color:var(--danger);margin-top:3px;font-size:8px;line-height:1.2;display:block}.revision-history summary{cursor:pointer;font-weight:800}.revision-history ol{margin:14px 0 0;padding-left:24px}.revision-history li{padding:5px}.revision-history li small{color:var(--muted);display:block}.swap-shift-list,.swap-request-list{gap:10px;display:grid}.force-override-modal{width:min(650px,100%)}.force-override-modal ul{max-height:180px;color:var(--danger);padding-left:22px;font-size:12px;overflow:auto}.notification-list{gap:10px;margin-bottom:20px;display:grid}.notification-card{border-left:5px solid var(--primary);justify-content:space-between;align-items:center;gap:20px;margin-bottom:0;display:flex}.notification-card h2,.notification-card p{margin:3px 0}@media (max-width:800px){.notification-card{flex-direction:column;align-items:flex-start}}.swap-shift-list article,.swap-request-list article{border:1px solid var(--border);background:#fbfcfe;border-radius:11px;justify-content:space-between;align-items:center;gap:14px;padding:13px;display:flex}.swap-shift-list article>div,.swap-request-list article>div{display:grid}.swap-shift-list small,.swap-request-list small,.swap-request-list span{color:var(--muted)}@media (max-width:800px){.swap-shift-list article,.swap-request-list article{flex-direction:column;align-items:flex-start}.draft-editor-toolbar>div{width:100%}}
