@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap";:root{--bg:#141b26;--panel:#1c2635;--panel-2:#243043;--line:#34445c;--ink:#f2ece0;--ink-dim:#9aacc0;--gold:#ea8a5e;--gold-dim:#b5613a;--red:#d1574a;--navy-ink:#182636;--radius:10px;font-size:15px}body.theme-light{--bg:#f5f0e6;--panel:#fff;--panel-2:#efe6d4;--line:#ddd0b8;--ink:#263241;--ink-dim:#6b7a8c;--gold:#b8502b;--gold-dim:#e8935f;--red:#b23a2e;--navy-ink:#182636}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,sans-serif}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:420px;padding:32px}.auth-brand{align-items:center;gap:12px;margin-bottom:4px;display:flex}.auth-logo{flex-shrink:0;width:44px;height:44px}.auth-brand-mini{align-items:center;gap:9px;margin-bottom:18px;display:flex}.auth-brand-mini img{flex-shrink:0;width:26px;height:26px}.auth-brand-mini span{color:var(--gold);font-family:Fraunces,serif;font-size:.82rem;font-weight:700}.auth-card h1{color:var(--gold);margin:0 0 4px;font-family:Fraunces,serif;font-size:1.5rem;font-weight:700}.auth-brand h1{margin:0}.auth-card p.sub{color:var(--ink-dim);margin:0 0 24px;font-size:.85rem}.field{margin-bottom:16px}.field label{color:var(--ink-dim);margin-bottom:6px;font-size:.78rem;font-weight:600;display:block}.field input,.field textarea,.field select{background:var(--panel-2);width:100%;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-family:Inter,sans-serif;font-size:.9rem}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold-dim);outline:none}.field input:disabled,.field select:disabled{opacity:.6;cursor:not-allowed}.field textarea{resize:vertical;min-height:80px}.pw-field{position:relative}.pw-field input{padding-right:44px}.pw-toggle{cursor:pointer;width:40px;color:var(--ink-dim);background:0 0;border:none;justify-content:center;align-items:center;font-size:1rem;display:flex;position:absolute;top:0;bottom:0;right:0}.pw-toggle:hover{color:var(--ink)}.btn{text-align:center;border:1px solid var(--gold-dim);background:var(--gold);width:100%;color:var(--navy-ink);cursor:pointer;border-radius:8px;padding:11px 16px;font-family:Inter,sans-serif;font-size:.9rem;font-weight:700;transition:background .15s;display:inline-block}.btn:hover{background:#f3a374}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{color:var(--gold);background:0 0}.msg{border-radius:8px;margin-bottom:16px;padding:10px 12px;font-size:.82rem}.msg.error{color:#eec9a8;border:1px solid var(--red);background:#4a2420}.msg.info{background:var(--panel-2);color:var(--ink);border:1px solid var(--gold-dim)}.plan-list{flex-direction:column;gap:10px;margin-bottom:20px;display:flex}.plan-option{border:1px solid var(--line);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;padding:14px 16px;transition:border-color .15s;display:flex}.plan-option:hover{border-color:var(--gold-dim)}.plan-option.selected{border-color:var(--gold);background:var(--panel-2)}.plan-option .nom{font-weight:700}.plan-option .range{color:var(--ink-dim);font-size:.78rem}.plan-option .prix{color:var(--gold);font-family:IBM Plex Mono,monospace}.foot-link{text-align:center;color:var(--ink-dim);margin-top:18px;font-size:.82rem}.foot-link a{color:var(--gold);text-decoration:none}.app-shell{min-height:100vh;padding:32px}.app-header{justify-content:space-between;align-items:baseline;margin-bottom:24px;display:flex}.app-header h1{color:var(--gold);margin:0;font-family:Fraunces,serif;font-weight:700}.info-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;max-width:640px;display:grid}.info-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}.info-card .label{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.info-card .value{margin-top:4px;font-size:1.1rem;font-weight:700}.dash-section{max-width:960px;margin-top:32px}.dash-section h2{color:var(--gold);margin:0 0 14px;font-family:Fraunces,serif;font-size:1.05rem}.quick-actions{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;display:grid}.quick-action{background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:16px;text-decoration:none;transition:border-color .15s;display:block}.quick-action:hover{border-color:var(--gold-dim)}.quick-action .qa-icon{margin-bottom:6px;font-size:1.4rem}.quick-action .qa-label{font-size:.92rem;font-weight:700}.quick-action .qa-sub{color:var(--ink-dim);margin-top:2px;font-size:.75rem}.est-dash-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.est-dash-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px}.est-dash-header{align-items:center;gap:12px;margin-bottom:14px;display:flex}.est-dash-logo{object-fit:contain;border-radius:8px;flex-shrink:0;width:40px;height:40px}.est-dash-logo-empty{background:var(--panel-2);justify-content:center;align-items:center;font-size:1.1rem;display:flex}.est-dash-name{color:var(--gold);font-family:Fraunces,serif;font-size:1rem}.est-dash-meta{color:var(--ink-dim);margin-top:2px;font-size:.78rem}.est-dash-stats{color:var(--ink-dim);flex-direction:column;gap:4px;margin-bottom:14px;font-size:.82rem;display:flex}.est-dash-stats strong{color:var(--ink)}.est-dash-actions{flex-wrap:wrap;gap:8px;display:flex}.est-admin-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:20px;padding:20px}.est-admin-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.est-admin-header h2{color:var(--gold);margin:0;font-family:Fraunces,serif;font-size:1.1rem}.est-admin-header .actions{flex-shrink:0;gap:8px;display:flex}.est-admin-card table.grid{min-width:0}.est-admin-card select.role-select{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:.8rem}.planning-app{min-height:100vh;display:flex}.rail{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;flex:0 0 112px;align-items:center;gap:6px;width:112px;min-height:100vh;padding:20px 0;display:flex}.brand-row{align-items:center;gap:8px;margin-bottom:14px;padding:0 6px;display:flex}.rail-logo{flex-shrink:0;width:28px;height:28px}.brand{color:var(--gold);text-align:left;font-family:Fraunces,serif;font-size:.68rem;font-weight:700;line-height:1.2}.sector-btn{width:80px;color:var(--ink-dim);border-radius:var(--radius);cursor:pointer;text-align:center;background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:.68rem;font-weight:600;display:flex}.sector-btn .ic{font-size:1.2rem;line-height:1}.sector-btn:hover{background:var(--panel-2);color:var(--ink)}.sector-btn.active{color:var(--ink);background:#3c584f}.rail-spacer{flex:1}.rail-bottom-nav{flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.rail-manage-btn{width:80px;color:var(--ink-dim);cursor:pointer;border-radius:var(--radius);text-align:center;background:0 0;border:none;padding:8px 4px;font-size:.68rem;text-decoration:none;display:block}.rail-manage-btn:hover{background:var(--panel-2);color:var(--ink)}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 28px;display:flex}.topbar h1{color:var(--ink);margin:0;font-family:Fraunces,serif;font-size:1.4rem;font-weight:600}.establishment-banner{align-items:center;gap:12px;display:flex}.establishment-logo{object-fit:contain;border-radius:8px;width:40px;height:40px}.week-nav{align-items:center;gap:8px;display:flex}.week-nav button{background:var(--panel-2);border:1px solid var(--line);color:var(--ink);cursor:pointer;border-radius:8px;width:32px;height:32px;font-size:1rem}.week-nav button:hover{border-color:var(--gold-dim)}.week-label{color:var(--ink);background:var(--panel-2);border:1px solid var(--line);text-align:center;border-radius:8px;min-width:200px;padding:7px 12px;font-size:.82rem}.btn-small{width:auto;padding:7px 12px;font-size:.78rem}.content{padding:20px 28px 60px;overflow-x:auto}table.grid{border-collapse:collapse;width:100%;min-width:1200px}table.grid th,table.grid td{border:1px solid var(--line);vertical-align:top}table.grid thead th{background:var(--panel-2);color:var(--ink-dim);text-transform:uppercase;padding:8px 6px;font-size:.68rem;font-weight:600}table.grid thead th.day-head{color:var(--ink)}table.grid thead th .date-sub{color:var(--ink-dim);margin-top:2px;font-size:.65rem;font-weight:400;display:block}table.grid thead th.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}table.grid thead th.sortable-th:hover{color:var(--gold)}.day-copy-actions{justify-content:center;gap:4px;margin-top:5px;display:flex}.day-copy-btn{background:var(--panel);border:1px solid var(--line);color:var(--ink-dim);cursor:pointer;border-radius:4px;width:22px;height:18px;padding:0;font-size:.68rem;line-height:1}.day-copy-btn:hover{border-color:var(--gold);color:var(--gold)}.day-copy-btn.active{background:var(--gold-dim);color:var(--navy-ink);border-color:var(--gold-dim)}.emp-cell{width:200px;padding:10px}.row-copy-actions{justify-content:flex-end;gap:4px;margin-bottom:4px;display:flex}.emp-name{font-weight:700}.emp-meta{color:var(--ink-dim);margin-top:4px;font-size:.72rem;line-height:1.4}.emp-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.emp-actions button,.cell-copy-btn{border:1px solid var(--line);color:var(--ink-dim);cursor:pointer;background:0 0;border-radius:6px;padding:4px 8px;font-size:.7rem}.emp-actions button:hover,.cell-copy-btn:hover{border-color:var(--gold-dim);color:var(--gold)}.cell-copy-btn{padding:2px 6px;font-size:.68rem}.cell-copy-btn.active{border-color:var(--gold);color:var(--gold)}.cell-copy-actions{justify-content:flex-end;gap:4px;margin-bottom:4px;display:flex}.day-cell{min-width:130px;padding:8px}.day-status select{background:var(--panel-2);width:100%;color:var(--ink);border:1px solid var(--line);border-radius:6px;margin-bottom:6px;padding:4px;font-size:.75rem}.day-status select.st-repos{color:#5a8478;border-color:#5a8478}.day-status select.st-travail{border-color:var(--gold-dim)}.day-status select.st-absence{border-color:var(--red);color:var(--red)}.slot-label{color:var(--ink-dim);margin-bottom:2px;font-size:.65rem}.time-row{gap:4px;margin-bottom:6px;display:flex}.time-row select{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;flex:1;padding:3px;font-size:.72rem}.coupure-toggle{border:1px dashed var(--line);width:100%;color:var(--ink-dim);cursor:pointer;background:0 0;border-radius:6px;margin-bottom:6px;padding:3px;font-size:.68rem}.coupure-toggle:hover{border-color:var(--gold-dim);color:var(--gold)}.meal-row{color:var(--ink-dim);justify-content:space-between;align-items:center;font-size:.72rem;display:flex}.meal-check{align-items:center;gap:4px;display:flex}.day-total{color:var(--gold);font-family:IBM Plex Mono,monospace}.summary-cell{width:140px;padding:10px;font-size:.78rem}.hours-line{margin-bottom:4px}.badge{border-radius:99px;margin-top:6px;padding:4px 9px;font-size:.68rem;font-weight:600;display:inline-block}.badge.ok{color:#cfe8de;background:#3c584f}.badge.warn{color:#eec9a8;background:#4a3324}.empty-state{text-align:center;color:var(--ink-dim);padding:60px 20px}.empty-state .ic{margin-bottom:8px;font-size:2rem}#addEmpRowBtn:hover{border-color:var(--gold-dim);color:var(--gold)}.overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.overlay.show{display:flex}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:440px;max-height:85vh;padding:28px;overflow-y:auto}.modal h2{color:var(--gold);margin:0 0 18px;font-family:Fraunces,serif;font-size:1.2rem}.modal-actions{gap:10px;margin-top:20px;display:flex}.modal-actions .btn{flex:1;width:auto}select.select-field{background:var(--panel-2);width:100%;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-family:Inter,sans-serif;font-size:.9rem}.sector-manage-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.sector-manage-row input[type=text]{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:.85rem}.sector-icon-input{text-align:center;flex:0 0 44px;width:44px}.sector-nom-input{flex:1}.sector-del-btn{border:1px solid var(--line);color:var(--ink-dim);cursor:pointer;background:0 0;border-radius:7px;flex:0 0 32px;width:32px;height:32px}.sector-del-btn:hover{border-color:var(--red);color:var(--red)}.emoji-picker-btn{background:var(--panel-2);height:36px;color:var(--ink);border:1px solid var(--line);cursor:pointer;border-radius:7px;padding:0;font-size:1.05rem}.emoji-picker-btn:hover{border-color:var(--gold-dim)}.emoji-picker-popover{z-index:150;background:var(--panel);border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(8,1fr);gap:2px;width:264px;max-height:220px;padding:8px;display:grid;position:fixed;overflow-y:auto;box-shadow:0 12px 32px #00000080}.emoji-picker-popover button{cursor:pointer;background:0 0;border:none;border-radius:6px;padding:5px 0;font-size:1.15rem;line-height:1}.emoji-picker-popover button:hover{background:var(--panel-2)}.sector-del-btn:disabled{opacity:.35;cursor:not-allowed}.toast{background:var(--panel-2);border:1px solid var(--gold-dim);color:var(--ink);z-index:200;opacity:0;pointer-events:none;border-radius:8px;padding:11px 20px;font-size:.85rem;transition:opacity .2s,transform .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.emp-avatar{object-fit:cover;border-radius:50%;width:32px;height:32px;display:block}.emp-avatar-empty{background:var(--panel-2);justify-content:center;align-items:center;font-size:.9rem;display:flex}.theme-fab{z-index:300;background:var(--panel-2);border:1px solid var(--line);width:44px;height:44px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.15rem;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 2px 10px #00000059}.theme-fab:hover{border-color:var(--gold-dim)}.view-switch{align-items:center;gap:24px;margin-bottom:16px;display:flex}.sector-heading{flex:1;min-width:0}.sector-heading-title{color:var(--ink);font-family:Fraunces,serif;font-size:1.25rem;font-weight:600;line-height:1.2}.sector-heading-sub{color:var(--ink-dim);margin-top:2px;font-size:.8rem}.view-switch button{background:var(--panel-2);border:1px solid var(--line);color:var(--ink-dim);cursor:pointer;border-radius:8px;padding:7px 14px;font-size:.8rem;font-weight:600}.view-switch button.active{background:var(--gold-dim);color:var(--navy-ink);border-color:var(--gold-dim)}.view-switch button:hover{border-color:var(--gold-dim)}.day-tabs{flex-wrap:wrap;gap:6px;margin-bottom:18px;display:flex}.day-tab{background:var(--panel-2);border:1px solid var(--line);color:var(--ink-dim);cursor:pointer;border-radius:8px;padding:7px 14px;font-size:.78rem}.day-tab.active{background:var(--gold-dim);color:var(--navy-ink);border-color:var(--gold-dim)}.day-tab:hover{border-color:var(--gold-dim)}.timeline-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:1100px;padding:20px}.timeline-scale{border-bottom:1px solid var(--line);height:16px;margin-bottom:6px;margin-left:180px;padding-bottom:6px;display:flex;position:relative}.timeline-scale span{color:var(--ink-dim);font-family:IBM Plex Mono,monospace;font-size:.65rem;position:absolute;transform:translate(-50%)}.timeline-row{align-items:center;height:36px;margin-bottom:2px;display:flex;position:relative}.timeline-row .who{flex:0 0 180px;width:180px;padding-right:10px;overflow:hidden}.timeline-row .who-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.timeline-row .who-poste{color:var(--ink-dim);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:.66rem;overflow:hidden}.timeline-track{background:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px calc(100%/20));flex:1;height:20px;position:relative}.timeline-bar{height:16px;color:var(--navy-ink);white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;font-size:.6rem;font-weight:700;display:flex;position:absolute;top:2px;overflow:hidden}.headcount-panel{margin-top:24px;margin-left:180px}.headcount-title{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:.72rem}.headcount-chart-wrap{position:relative}.headcount-chart{border-bottom:1px solid var(--line);align-items:flex-end;gap:1px;height:90px;display:flex}.headcount-overlay{pointer-events:none;width:100%;height:90px;position:absolute;top:0;left:0;overflow:visible}.headcount-legend{flex-wrap:wrap;gap:12px;margin-top:10px;display:flex}.legend-item{color:var(--ink-dim);align-items:center;gap:5px;font-size:.7rem;display:inline-flex}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.headcount-bar{background:var(--gold-dim);border-radius:2px 2px 0 0;flex:1;min-height:1px;position:relative}.headcount-bar:hover{background:var(--gold)}.headcount-bar .val{color:var(--ink-dim);font-size:.6rem;display:none;position:absolute;top:-16px;left:50%;transform:translate(-50%)}.headcount-bar:hover .val{display:block}.staffing-table{min-width:0}.staffing-table th,.staffing-table td{text-align:center;padding:5px 4px}.staffing-table thead th{width:36px}.staffing-poste{color:var(--ink);white-space:nowrap;font-size:.8rem;text-align:left!important;padding-left:22px!important;padding-right:12px!important}.staffing-family-row td{color:var(--ink);text-transform:uppercase;letter-spacing:.03em;background:var(--panel-2);font-size:.76rem;font-weight:700;text-align:left!important}.staffing-input{text-align:center;background:var(--panel-2);width:36px;color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:4px 2px;font-size:.78rem}.staffing-input:disabled{opacity:.6}.month-nav{align-items:center;gap:10px;margin-bottom:16px;display:flex}.month-nav button{background:var(--panel-2);border:1px solid var(--line);color:var(--ink);cursor:pointer;border-radius:8px;width:34px;height:34px;font-size:1rem}.month-nav button:hover{border-color:var(--gold-dim)}.month-label{color:var(--ink);text-transform:capitalize;min-width:200px;font-family:Fraunces,serif;font-size:1.05rem}.month-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:1100px;padding:20px}.month-scale{border-bottom:1px solid var(--line);height:16px;margin-bottom:6px;margin-left:150px;margin-right:44px;padding-bottom:6px;display:flex;position:relative}.month-scale span{color:var(--ink-dim);font-family:IBM Plex Mono,monospace;font-size:.63rem;position:absolute;transform:translate(-50%)}.month-row{cursor:pointer;border-radius:4px;align-items:center;height:20px;margin-bottom:2px;display:flex}.month-row:hover{background:var(--panel-2)}.month-row .who{width:150px;color:var(--ink);flex:0 0 150px;font-size:.74rem}.month-row .who .wd{color:var(--ink-dim);margin-left:4px;font-size:.66rem}.month-track{flex:1;gap:1px;height:14px;display:flex}.month-cell{border-radius:1px;flex:1}.month-peak{text-align:right;width:44px;color:var(--ink-dim);flex:0 0 44px;font-family:IBM Plex Mono,monospace;font-size:.68rem}.month-legend{color:var(--ink-dim);align-items:center;gap:8px;margin-top:16px;margin-left:150px;font-size:.7rem;display:flex}.month-gradient{background:linear-gradient(90deg,var(--panel-2),var(--gold));border-radius:3px;width:120px;height:10px}.sector-btn[draggable=true]{cursor:grab}.sector-btn.drag-over{box-shadow:inset 0 2px 0 var(--gold)}.drag-handle{border:1px solid var(--line);background:var(--panel-2);cursor:grab;background-image:repeating-linear-gradient(0deg, var(--ink-dim) 0 2px, transparent 2px 5px);background-position:50%;background-repeat:no-repeat;background-size:9px 9px;border-radius:4px;flex:0 0 18px;width:18px;height:18px}.drag-handle:hover{border-color:var(--gold-dim)}.drag-handle:active{cursor:grabbing}.emp-cell.drag-over{box-shadow:inset 0 2px 0 var(--gold)}
