@import url(https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap);:root{--color-bg:#f4f6f9;--color-surface:#fff;--color-primary:#5b7c99;--color-primary-dark:#456178;--color-primary-light:#e8eef3;--color-accent:#e8a87c;--color-text:#2c3e50;--color-text-muted:#6b7c8f;--color-border:#dde3ea;--color-weekend:#eef1f5;--color-header:#3d5a73;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 3px #2c3e5014;--shadow-md:0 4px 16px #2c3e501a;--font-family:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--header-height:56px;--toolbar-gap:12px}*,:after,:before{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-family);margin:0;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}button,input,select{font-family:inherit}.App{text-align:left}.burger-btn{align-items:center;background:#ffffff26;border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:40px;justify-content:center;transition:background .15s ease;width:40px}.burger-btn:hover{background:#ffffff40}.burger-icon{display:flex;flex-direction:column;gap:5px;height:14px;justify-content:center;width:18px}.burger-icon span{background:currentColor;border-radius:1px;display:block;height:2px;transition:transform .2s ease,opacity .2s ease;width:100%}.burger-btn--open .burger-icon span:first-child{transform:translateY(7px) rotate(45deg)}.burger-btn--open .burger-icon span:nth-child(2){opacity:0}.burger-btn--open .burger-icon span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.menuBar{display:flex;flex-direction:column;gap:var(--toolbar-gap);max-height:0;opacity:0;overflow:hidden;pointer-events:none;transition:max-height .25s ease,opacity .2s ease,padding .25s ease}.menuBar--header{border-top:1px solid #ffffff1f;padding:0 16px}.menuBar--open{max-height:520px;opacity:1;padding-bottom:16px;pointer-events:auto}.app-header-menu-inner{display:flex;flex-direction:column;gap:var(--toolbar-gap);margin:0 auto;max-width:1400px;padding-top:12px;width:100%}.toolbar-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:16px}.toolbar-card h2{color:var(--color-text-muted);font-size:.85rem;font-weight:600;letter-spacing:.04em;margin:0 0 12px;text-transform:uppercase}.MonthSelector,.addMonth{display:flex;flex-direction:column;float:none;gap:10px;margin:0;width:100%}.MonthSelector .controls-row,.addMonth .controls-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.MonthSelector #moisSelector,.addMonth .monthpicker{flex:1 1;min-width:140px}.toolbar-btn{flex-shrink:0;font-size:.875rem;min-width:6.5rem;padding:8px 18px;white-space:nowrap}.toolbar-btn.toolbar-btn-wide{min-width:7.5rem}.monthpicker{margin:0;width:100%}.child-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.child-tab{background:var(--color-surface);border:2px solid var(--color-border);border-radius:999px;color:var(--color-text);cursor:pointer;font-size:.875rem;font-weight:500;padding:8px 16px;transition:all .15s ease}.child-tab.active,.child-tab:hover{border-color:var(--color-primary)}.child-tab.active{background:var(--color-primary-light);color:var(--color-primary-dark)}.child-tab .dot{border-radius:50%;display:inline-block;height:10px;margin-right:6px;vertical-align:middle;width:10px}.desktop-only:not(.tablecontent){display:none}.mobile-only:not(.tablecontent){display:block}@media (min-width:768px){.desktop-only:not(.tablecontent){display:block}.mobile-only:not(.tablecontent){display:none}.menuBar--header{padding:0 24px}.menuBar--open{padding-bottom:20px}.menuBar--open .app-header-menu-inner{align-items:stretch;flex-direction:row}.menuBar--open .app-header-menu-inner .toolbar-card{flex:1 1}}@media (min-width:992px){.MonthSelector .controls-row,.addMonth .controls-row{flex-wrap:nowrap}}.empty-state{background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);padding:48px 24px;text-align:center}.empty-state p{font-size:.95rem;margin:0}@media (max-width:767px){.child-tabs{gap:6px;margin-bottom:6px}.child-tab{font-size:.78rem;padding:6px 10px}.empty-state{padding:24px 12px}}.app-header{background:linear-gradient(135deg,var(--color-header) 0,var(--color-primary) 100%);box-shadow:var(--shadow-md);color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:200}.app-header-top{align-items:center;display:flex;gap:12px;padding:10px 16px}.app-header-brand{flex:1 1;min-width:0}.app-header h1{font-size:1.15rem;font-weight:600;letter-spacing:-.02em;margin:0}.app-header p{font-size:.75rem;margin:2px 0 0;opacity:.85}.app-header-month{background:#ffffff26;border-radius:999px;flex-shrink:0;font-size:.85rem;font-weight:600;padding:6px 10px;white-space:nowrap}#main{min-height:calc(100vh - var(--header-height));position:relative}#container{margin:0 auto;max-width:1400px;padding:8px;width:100%}@media (min-width:768px){.app-header-top{gap:16px;padding:12px 24px}#container{padding:24px}.app-header h1{font-size:1.35rem}.app-header p{font-size:.8rem}}.auth-page{display:flex;justify-content:center;padding:24px 0 40px}.auth-card-main{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);max-width:400px;padding:24px;width:100%}.auth-card-main h2{color:var(--color-text);font-size:1.25rem;margin:0 0 8px}.auth-hint{color:var(--color-text-muted);font-size:.85rem;line-height:1.4;margin:0 0 16px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-error{color:#c0392b;font-size:.8rem;margin:0}.auth-success{color:#2e7d32;font-size:.8rem;margin:0}.auth-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.auth-links{align-items:flex-start;display:flex;flex-direction:column;gap:6px}.auth-link{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.8rem;padding:0;text-decoration:underline}.auth-link:hover{color:var(--color-primary-dark)}.app-header-user{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:4px}.app-header-user-name{font-size:.75rem;font-weight:600;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header-logout{background:#ffffff26;border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:.68rem;padding:4px 8px}.app-header-logout:hover{background:#ffffff40}.thRaw{height:auto}.trsize{height:68px}.schedule-table{border-collapse:collapse;table-layout:fixed}.schedule-table thead .header-row-1 th{box-sizing:border-box;height:42px}.schedule-table thead .header-row-2 th{box-sizing:border-box;height:56px}.schedule-table thead .header-row-3 th{box-sizing:border-box;height:40px}.schedule-table tbody tr.trsize{height:68px}.schedule-table tbody tr.trsize td,.schedule-table tbody tr.trsize th{box-sizing:border-box;height:68px;max-height:68px;overflow:hidden;vertical-align:middle}.schedule-table .summary-spacer td{background:var(--color-header)}table{background:var(--color-surface);border:1px solid var(--color-border);border-collapse:collapse;border-radius:var(--radius-sm);border-spacing:0;font-size:.85rem;overflow:hidden}tr{border-bottom:1px solid var(--color-border)}td,th{border:none;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);margin:0;padding:8px 6px;text-align:center;vertical-align:middle}th{background:var(--color-primary-light);color:var(--color-primary-dark);font-size:.75rem;font-weight:600;white-space:nowrap}td:last-child,th:last-child{border-right:none}tr:last-child td{border-bottom:none}.date{font-weight:500;white-space:nowrap}.date,.jour{min-width:90px;text-align:center;width:90px}.jour{color:var(--color-text-muted);font-size:.8rem;text-transform:capitalize}.tablecontent{flex-direction:row;min-width:100%;position:relative;width:-webkit-max-content;width:max-content}.tablecontent.desktop-only{display:none}.tablecontent.mobile-only{display:flex}@media (min-width:768px){.tablecontent.desktop-only{display:flex}.tablecontent.mobile-only{display:none}}.table-scroll-hint{background:var(--color-primary-light);border-radius:var(--radius-sm);color:var(--color-text-muted);display:block;font-size:.75rem;margin-bottom:8px;padding:8px;text-align:center}@media (min-width:768px){.table-scroll-hint{display:none}}.tablefixed{background-color:var(--color-surface);flex-shrink:0;z-index:10}#tableauMois{-webkit-overflow-scrolling:touch;align-items:flex-start;display:flex;flex-direction:row;gap:0;overflow-x:auto;width:100%}#tableauMois .schedule-table{border-radius:0;margin-top:0}#tableauMois .tablefixed{border-right:none}#tableauMois .enfant-table{border-left:none}#tableauMois .enfant-table+.enfant-table{border-left:1px solid var(--color-border)}.partiegauche{background:var(--color-surface);flex-shrink:0;left:0;position:-webkit-sticky;position:sticky;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;z-index:5}.listTable{border-radius:0;flex:1 1;overflow-x:visible}.schedule-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;padding:12px}.weekend-row{background-color:var(--color-weekend)}@media (min-width:768px){.schedule-wrapper{padding:16px}.date,.jour{min-width:100px;width:100px}}@media (max-width:767px){.schedule-wrapper{border-radius:var(--radius-sm);padding:4px}.schedule-table{font-size:.7rem}.schedule-table thead .header-row-1 th{font-size:.62rem;height:28px;padding:2px 4px}.schedule-table thead .header-row-2 th{font-size:.6rem;height:34px;line-height:1.15;padding:2px 3px}.schedule-table thead .header-row-3 th{font-size:.58rem;height:26px;padding:2px 3px}.schedule-table tbody tr.trsize,.schedule-table tbody tr.trsize td,.schedule-table tbody tr.trsize th,.trsize{height:56px;max-height:56px}.calendar-table .date{font-size:.62rem;min-width:44px;padding:2px;width:44px}.calendar-table .jour{font-size:.58rem;min-width:34px;padding:2px 1px;text-transform:lowercase;width:34px}.calendar-table th{font-size:.58rem;padding:2px 3px}.table-scroll-hint{font-size:.68rem;margin-bottom:4px;padding:4px 6px}}.colDeb,.colFin{min-width:82px;padding:4px 6px!important;width:82px}.col-actions{padding:2px!important;vertical-align:middle}.col-actions,.col-actions-header{min-width:62px;width:62px}.quick-actions{align-items:stretch;display:flex;flex-direction:column;gap:2px;max-height:64px;overflow:hidden}.quick-btn{background:var(--color-primary-light);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary-dark);cursor:pointer;font-size:.55rem;font-weight:600;line-height:1;padding:3px 2px;white-space:nowrap}.quick-btn:hover:not(:disabled){background:#dce6ef;border-color:var(--color-primary)}.quick-btn:disabled{cursor:default;opacity:.5}.quick-btn--active{background:var(--color-primary);border-color:var(--color-primary-dark);color:#fff}.row-journee-entiere .colDeb.real{background-color:#e3f0fa!important}.row-compte-ferie .colDeb.real,.row-compte-ferie .colFin.real{box-shadow:inset 0 0 0 1px #e8a87c}.row-tarif-15 .colDeb.real,.row-tarif-15 .colFin.real{box-shadow:inset 0 0 0 1px #5b7c99}.time-cell{align-items:center;display:flex;gap:4px;justify-content:center;width:100%}.time-picker-btn{background:#0000;border:none;cursor:pointer;flex-shrink:0;font-size:.85rem;line-height:1;opacity:.75;padding:0;width:18px}.time-picker-btn:hover{opacity:1}.time-input{background:#ffffffd9;border:1px solid var(--color-border);border-radius:var(--radius-sm);box-sizing:border-box;color:var(--color-text);flex-shrink:0;font-size:.8rem;font-weight:inherit;height:30px;max-width:52px;min-width:52px;padding:4px;text-align:center;width:52px}.time-input:focus{border-color:var(--color-primary);outline:2px solid var(--color-primary);outline-offset:1px}.enfant-table{flex-shrink:0}.enfant-table th[colspan]{color:var(--color-text);font-size:.9rem;padding:10px 8px}.tarif-header{font-size:.7rem!important;line-height:1.3;white-space:normal}.total-row td{background:var(--color-primary-light);font-weight:600}.summary-row td{background:var(--color-header);color:#fff;font-size:.9rem;font-weight:700}.summary-row td b{font-weight:700}@media (max-width:767px){.col-actions,.col-actions-header{min-width:50px;width:50px}.quick-actions{gap:1px;max-height:52px}.quick-btn{font-size:.48rem;padding:2px 1px}.colDeb,.colFin{min-width:72px;padding:2px 3px!important;width:72px}.time-input{font-size:.75rem;height:28px;max-width:46px;min-width:46px;padding:2px;width:46px}.time-picker-btn{font-size:.7rem;width:14px}.time-cell{gap:2px}.enfant-table th[colspan]{font-size:.72rem;padding:4px 3px}.tarif-header{font-size:.55rem!important;line-height:1.15}.summary-row td,table{font-size:.68rem}td,th{padding:2px 3px}}.install-banner{align-items:center;background:var(--color-header);border-radius:var(--radius-md);bottom:calc(12px + env(safe-area-inset-bottom, 0px));box-shadow:var(--shadow-md);color:#fff;display:flex;gap:12px;justify-content:space-between;left:12px;padding:12px 14px;position:fixed;right:12px;z-index:1200}.install-banner-text{display:flex;flex-direction:column;gap:2px;min-width:0}.install-banner-text strong{font-size:.92rem;font-weight:700}.install-banner-text span{font-size:.78rem;opacity:.9}.install-banner-actions{align-items:center;display:flex;flex-shrink:0;gap:6px}.install-banner-btn{background:#fff;border:none;border-radius:var(--radius-sm);color:var(--color-header);cursor:pointer;font-size:.82rem;font-weight:700;padding:8px 12px}.install-banner-dismiss{background:#0000;border:none;color:#fff;cursor:pointer;font-size:1.35rem;line-height:1;opacity:.85;padding:4px 6px}@media (min-width:900px){.install-banner{bottom:20px;left:auto;right:20px;width:min(380px,calc(100vw - 40px))}}