:root{
  color-scheme:light;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ink:#102b52;--muted:#667792;--line:#d9e3ef;--paper:#fff;--canvas:#f4f8fc;
  --blue:#6eafe9;--blue-deep:#246cae;--blue-soft:#dcebfb;
  --rose:#ed8da3;--rose-soft:#fde4ea;--amber:#efa84e;--amber-soft:#feecd2;
  --mint:#62cbb2;--mint-soft:#dcf5ed;--lavender:#9b86de;--lavender-soft:#ece7fb;
  --teal:#29adb7;--teal-soft:#d9f2f3;--danger:#db5f72;
  --radius:16px;--shadow-card:0 14px 30px rgba(42,75,112,.13),0 2px 5px rgba(42,75,112,.09),inset 0 1px 0 rgba(255,255,255,.9);
  --shadow-button:0 5px 10px rgba(44,75,110,.16),0 1px 2px rgba(44,75,110,.12),inset 0 1px 0 rgba(255,255,255,.95);
  --font-factor:1;--header-h:72px;--command-h:68px;
}
*{box-sizing:border-box}html{min-width:320px;background:var(--canvas);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-height:100dvh;color:var(--ink);background:radial-gradient(circle at 10% 0,rgba(110,175,233,.09),transparent 34%),var(--canvas);font-size:calc(16px * var(--font-factor));overflow-x:hidden}button,input{font:inherit}button{color:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,label:has(input:focus-visible){outline:3px solid rgba(35,112,183,.42);outline-offset:2px}
body[data-font-step="0"]{--font-factor:.78}body[data-font-step="1"]{--font-factor:.86}body[data-font-step="2"]{--font-factor:.94}body[data-font-step="3"]{--font-factor:1}body[data-font-step="4"]{--font-factor:1.1}body[data-font-step="5"]{--font-factor:1.22}body[data-font-step="6"]{--font-factor:1.36}
.app-shell{min-height:100dvh}.app-header{position:sticky;top:0;z-index:40;height:var(--header-h);display:flex;align-items:center;gap:clamp(10px,2vw,24px);padding:calc(8px + env(safe-area-inset-top,0px)) clamp(14px,3vw,36px) 8px;background:linear-gradient(180deg,#82bdeb,#63a8df);color:#fff;border-radius:0 0 18px 18px;box-shadow:0 8px 20px rgba(30,90,145,.23),inset 0 1px rgba(255,255,255,.38);text-shadow:0 1px 2px rgba(23,72,115,.2)}.brand{display:flex;align-items:baseline;gap:14px;white-space:nowrap}.brand strong{font-size:clamp(1.18rem,2.1vw,1.8rem);letter-spacing:-.02em}.brand span{font-size:clamp(1rem,1.6vw,1.38rem);opacity:.9}.sync-badge{margin-left:auto;display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 13px;border-radius:12px;background:rgba(255,255,255,.18);box-shadow:inset 0 1px rgba(255,255,255,.25)}.sync-badge i{width:9px;height:9px;border-radius:50%;background:#6ee2b0;box-shadow:0 0 0 3px rgba(110,226,176,.2)}.sync-badge[data-state="busy"] i{background:#ffe08a}.sync-badge[data-state="error"] i{background:#ff8798}.sync-badge span{font-size:.82rem;font-weight:750}.icon-button,.button{border:1px solid rgba(132,158,188,.3);background:linear-gradient(180deg,#fff,#f1f6fb);box-shadow:var(--shadow-button);min-width:48px;min-height:48px;border-radius:13px;font-weight:780;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.button:hover,.icon-button:hover{transform:translateY(-1px);box-shadow:0 7px 14px rgba(44,75,110,.2),inset 0 1px #fff}.button:active,.icon-button:active{transform:translateY(1px);box-shadow:inset 0 3px 7px rgba(50,83,119,.18)}.today-button{background:rgba(255,255,255,.94);color:var(--blue-deep);padding:0 17px}.menu-toggle{display:none;background:transparent;border:0;box-shadow:none;padding:11px}.menu-toggle span{display:block;width:25px;height:3px;margin:4px auto;border-radius:4px;background:#fff;box-shadow:0 1px 2px rgba(20,59,99,.25)}
.command-bar{position:sticky;top:var(--header-h);z-index:35;min-height:var(--command-h);display:flex;align-items:center;justify-content:center;gap:10px;padding:9px clamp(14px,3vw,34px);background:rgba(248,251,254,.93);border-bottom:1px solid rgba(170,190,213,.55);box-shadow:0 4px 16px rgba(40,71,105,.07);backdrop-filter:blur(14px)}.command-bar h1{min-width:135px;margin:0;text-align:center;font-size:clamp(1.02rem,1.8vw,1.38rem)}.nav-button{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 14px}.nav-button span{font-size:1.9rem;font-weight:400;line-height:1}.nav-button:disabled,.font-control button:disabled{opacity:.42;box-shadow:none;cursor:not-allowed}.font-control,.view-switch{display:flex;align-items:stretch;border:1px solid #d2deeb;border-radius:13px;background:#eef4fa;box-shadow:inset 0 2px 5px rgba(45,80,116,.1),0 2px 6px rgba(45,80,116,.07);overflow:hidden}.font-control{margin-left:clamp(4px,2vw,24px)}.font-control button,.view-switch button{border:0;border-right:1px solid #d2deeb;background:transparent;min-height:44px;padding:0 13px;font-weight:800;cursor:pointer}.font-control button:last-child,.view-switch button:last-child{border-right:0}.font-control output{display:grid;place-items:center;min-width:82px;padding:0 8px;font-size:.76rem;font-weight:750;color:var(--muted);background:#fff}.view-switch button.active{background:linear-gradient(180deg,#70b5ee,#3f8fd1);color:#fff;box-shadow:inset 0 1px rgba(255,255,255,.5),inset 0 -2px rgba(24,82,133,.18)}.panel-view-switch{display:none}
.tool-panel{position:fixed;z-index:25;left:12px;top:calc(var(--header-h) + var(--command-h) + 12px);bottom:12px;width:218px;padding:12px;background:rgba(255,255,255,.96);border:1px solid rgba(180,199,220,.7);border-radius:18px;box-shadow:var(--shadow-card);overflow:auto;scrollbar-width:thin}.panel-head,.panel-handle{display:none}.mode-list{display:grid;gap:9px}.mode-list>input{position:absolute;opacity:0;pointer-events:none}.mode-list label,.utility-list>button,.switch-row{position:relative;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:10px;min-height:64px;padding:9px 10px;border:1px solid rgba(140,166,195,.26);border-radius:13px;cursor:pointer;box-shadow:var(--shadow-button);transition:.16s ease;overflow:hidden}.mode-list label::after{content:"";position:absolute;inset:0;opacity:.22;pointer-events:none;background-image:repeating-linear-gradient(105deg,rgba(255,255,255,.7) 0 1px,transparent 1px 6px)}.mode-list label b,.utility-list b,.switch-row b{font-size:.88rem;z-index:1}.mode-list label small{grid-column:2;font-size:.65rem;color:#5c6f88;z-index:1}.tool-icon{grid-row:1/3;display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.62);box-shadow:0 4px 8px rgba(50,77,109,.13),inset 0 1px rgba(255,255,255,.9);font-size:1.25rem;font-weight:800;z-index:1}.mode-reader{background:var(--blue-soft)}.mode-father{background:#e8f2fd}.mode-event{background:var(--rose-soft)}.mode-break{background:var(--amber-soft)}.mode-note{background:var(--mint-soft)}.mode-clear{background:var(--lavender-soft)}.mode-list input:checked+label{transform:translateY(1px);border-color:currentColor;box-shadow:inset 0 4px 9px rgba(46,73,104,.18),0 1px 2px rgba(46,73,104,.08)}.mode-list input:checked+label::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:0 6px 6px 0;background:currentColor}.panel-divider{height:1px;margin:14px;background:#d8e2ed}.utility-list{display:grid;gap:9px}.utility-list>button,.switch-row{width:100%;grid-template-rows:1fr;background:linear-gradient(180deg,#fafdff,#edf4fb);text-align:left}.utility-list>button{border:1px solid rgba(140,166,195,.26)}.switch-row{grid-template-columns:1fr 48px}.switch-row>span{display:flex;align-items:center;gap:9px}.switch-row .tool-icon{display:inline-grid;width:36px;height:36px}.switch-row input{position:absolute;opacity:0}.switch-row>i{position:relative;width:46px;height:27px;border-radius:99px;background:#b9c5d2;box-shadow:inset 0 3px 5px rgba(34,62,90,.2)}.switch-row>i::after{content:"";position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:white;box-shadow:0 2px 5px rgba(32,56,82,.3);transition:.18s}.switch-row input:checked+i{background:#62c692}.switch-row input:checked+i::after{transform:translateX(19px)}
.calendar-stage{margin-left:242px;padding:14px clamp(14px,2vw,28px) 28px}.calendar-root.year-grid{display:grid;grid-template-columns:repeat(3,minmax(300px,1fr));gap:16px;align-items:start}.month-card{position:relative;background:var(--paper);border:1px solid rgba(180,199,220,.66);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);contain:layout paint}.month-title{height:48px;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;background:linear-gradient(180deg,#fff,#f7fafe);border-bottom:1px solid var(--line)}.month-title h2{margin:0;text-align:center;font-size:clamp(.98rem,1.3vw,1.18rem);color:#175390}.month-title button{border:0;background:transparent;min-width:44px;min-height:44px;font-size:1.6rem;color:#175390;cursor:pointer}.weekday-row,.days-grid{display:grid;grid-template-columns:clamp(30px,3.2vw,40px) repeat(7,minmax(0,1fr))}.weekday-row{min-height:34px;border-bottom:1px solid var(--line)}.weekday-row span{display:grid;place-items:center;font-size:.72rem;font-weight:850;border-right:1px solid #e7edf4}.weekday-row span:last-child{border-right:0}.weekday-row .sunday{color:#dc4f55}.week-head{color:#2865a5;background:#f0f6fc}.days-grid{grid-auto-rows:clamp(53px,5vw,72px)}.week-number,.day{position:relative;border:0;border-right:1px solid #e4ebf2;border-bottom:1px solid #e4ebf2;background:#fff;min-width:0;overflow:hidden}.week-number{display:grid;place-items:center;color:#3779b9;background:#f3f8fd;font-size:.75rem;font-weight:750}.day{padding:5px;text-align:left;cursor:pointer;isolation:isolate;transition:transform .13s ease,box-shadow .13s ease,background .13s ease}.day:not(.empty):hover{z-index:4;transform:translateY(-1px);box-shadow:0 5px 12px rgba(44,78,114,.18)}.day:active:not(.empty){transform:translateY(1px);box-shadow:inset 0 3px 7px rgba(50,82,116,.13)}.day.empty{background:#f8fafc;cursor:default}.day.sunday .day-number{color:#d94d54}.day.today{z-index:3;box-shadow:inset 0 0 0 3px #4b97d8,inset 0 0 0 6px rgba(75,151,216,.12)}.day.holiday:not(.father-full):not(.father-nightStart):not(.father-nightEnd){background:linear-gradient(145deg,#fff,#fff8f2)}.day-number{position:relative;z-index:3;display:block;font-weight:850;font-size:calc(clamp(.82rem,1.15vw,1.02rem) * var(--font-factor));line-height:1}.holiday-label{position:relative;z-index:3;display:block;margin-top:3px;color:#b45c39;font-size:calc(.53rem * var(--font-factor));line-height:1.05;max-height:2.1em;overflow:hidden}.event-chip,.break-ribbon{position:relative;z-index:4;display:block;width:max-content;max-width:100%;margin-top:3px;padding:2px 6px;border-radius:99px;font-size:calc(.55rem * var(--font-factor));font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 4px rgba(55,74,95,.14),inset 0 1px rgba(255,255,255,.7)}.event-chip.accident{background:#f9bec8;color:#8f2639}.event-chip.pee{background:#aee8df;color:#14675d}.break-ribbon{background:#fbd398;color:#7f4c0b}.note-marker{position:absolute;z-index:5;right:5px;bottom:4px;width:10px;height:10px;border-radius:50%;background:var(--mint);box-shadow:0 2px 4px rgba(25,116,94,.28),inset 0 1px rgba(255,255,255,.7);font-size:0}.day[class*="father-"]::before{content:"";position:absolute;z-index:1;inset:0;pointer-events:none}.day.father-full::before{background:linear-gradient(180deg,rgba(255,246,214,.84),rgba(254,243,199,.42));border-top:2px solid #efc65a;box-shadow:inset 0 2px rgba(255,255,255,.5),inset 0 -3px rgba(202,154,36,.08)}.day.father-nightStart::before{background:linear-gradient(to bottom right,transparent 0 49.35%,rgba(239,198,90,.68) 49.35% 50.65%,transparent 50.65% 100%),linear-gradient(to bottom right,transparent 0 50.65%,rgba(255,246,214,.84) 50.65%,rgba(254,243,199,.42) 100%);filter:drop-shadow(2px 2px 2px rgba(155,113,20,.12))}.day.father-nightEnd::before{background:linear-gradient(to bottom right,transparent 0 49.35%,rgba(239,198,90,.68) 49.35% 50.65%,transparent 50.65% 100%),linear-gradient(to bottom right,rgba(255,246,214,.84) 0%,rgba(254,243,199,.42) 49.35%,transparent 50.65% 100%);filter:drop-shadow(-2px 2px 2px rgba(155,113,20,.12))}.legend{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin:18px auto 0;width:max-content;max-width:100%;padding:10px 18px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 5px 14px rgba(45,75,108,.09);font-size:.72rem;font-weight:700}.legend span{display:flex;align-items:center;gap:7px}.legend i{width:13px;height:13px;border-radius:3px}.legend-father{background:linear-gradient(135deg,transparent 48%,#efc65a 50%)}.legend-accident{background:var(--rose)}.legend-break{background:var(--amber)}.legend-note{background:var(--mint)}.sunday-key{color:#d94d54}
.panel-backdrop{position:fixed;z-index:49;inset:0;background:rgba(20,40,64,.34);opacity:0;pointer-events:none;transition:.2s;backdrop-filter:blur(2px)}.details-dialog{width:min(520px,calc(100% - 28px));border:1px solid #d5e0eb;border-radius:20px;padding:0;color:var(--ink);box-shadow:0 28px 80px rgba(22,49,78,.3);background:#fff}.details-dialog::backdrop{background:rgba(19,38,61,.42);backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:linear-gradient(180deg,#e8f4fd,#f8fbfe);border-bottom:1px solid var(--line)}.dialog-head small{color:var(--muted);font-weight:700}.dialog-head h2{margin:2px 0 0}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:20px}.details-grid>div{padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fbfe}.details-grid small,.details-grid strong{display:block}.details-grid small{color:var(--muted);margin-bottom:4px}
@media(max-width:1180px) and (min-width:761px){.calendar-root.year-grid{grid-template-columns:repeat(2,minmax(280px,1fr))}.top-view-switch button{padding:0 9px}.command-bar h1{min-width:90px}.tool-panel{width:196px}.calendar-stage{margin-left:218px}.mode-list label small{display:none}.mode-list label{min-height:54px;grid-template-rows:1fr}}
@media(max-width:760px){:root{--header-h:calc(64px + env(safe-area-inset-top,0px));--command-h:116px;--radius:15px}.app-header{height:var(--header-h);padding:calc(7px + env(safe-area-inset-top,0px)) 12px 7px;border-radius:0 0 16px 16px}.menu-toggle{display:block}.brand{gap:7px}.brand strong{font-size:clamp(1rem,5vw,1.26rem)}.brand span{display:none}.sync-badge{position:absolute;left:50%;bottom:3px;transform:translateX(-50%);min-height:18px;padding:1px 7px;background:rgba(255,255,255,.16)}.sync-badge i{width:6px;height:6px}.sync-badge span{font-size:.59rem}.today-button{min-width:48px;min-height:44px;margin-left:auto;padding:0 10px}.command-bar{top:var(--header-h);height:var(--command-h);min-height:var(--command-h);display:grid;grid-template-columns:minmax(82px,1fr) minmax(116px,1.25fr) minmax(82px,1fr);grid-template-rows:52px 48px;gap:7px;padding:7px 10px}.command-bar h1{grid-column:2;grid-row:1;min-width:0;font-size:calc(clamp(.98rem,4.6vw,1.2rem) * var(--font-factor));white-space:nowrap}.nav-button{padding:0 8px}.nav-button b{font-size:calc(.78rem * var(--font-factor))}.nav-button span{font-size:1.55rem}.font-control{grid-column:1/4;grid-row:2;margin:0;justify-self:center;height:46px}.font-control button{min-width:58px}.font-control output{min-width:112px;font-size:calc(.67rem * var(--font-factor))}.top-view-switch{display:none}.tool-panel{z-index:50;left:0;right:0;top:auto;bottom:0;width:auto;max-height:min(82dvh,720px);padding:8px 14px calc(14px + env(safe-area-inset-bottom,0px));border-radius:24px 24px 0 0;transform:translateY(105%);transition:transform .24s cubic-bezier(.2,.75,.25,1);overflow:auto;overscroll-behavior:contain}.tool-panel.open{transform:translateY(0)}.panel-handle{display:block;width:44px;height:5px;margin:2px auto 9px;border-radius:9px;background:#c4cfdb}.panel-head{display:flex;align-items:center;justify-content:space-between;margin:0 1px 10px}.panel-head strong{font-size:1.1rem}.panel-head .icon-button{min-width:44px;min-height:44px;font-size:1.5rem}.mode-list{grid-template-columns:1fr 1fr;gap:8px}.mode-list label{min-height:66px}.mode-list label small{font-size:calc(.61rem * var(--font-factor))}.mode-list label b{font-size:calc(.82rem * var(--font-factor))}.tool-icon{width:38px;height:38px}.panel-divider{margin:12px}.utility-list{grid-template-columns:1fr 1fr}.utility-list .switch-row{grid-column:1/3}.panel-view-switch{display:flex;margin-top:11px}.panel-view-switch button{flex:1;min-height:46px}.panel-backdrop.open{opacity:1;pointer-events:auto}.menu-open{overflow:hidden}.calendar-stage{margin-left:0;padding:10px 8px calc(18px + env(safe-area-inset-bottom,0px))}.calendar-root.month-focus{display:block}.month-card{width:100%;border-radius:14px}.month-title{display:none}.weekday-row,.days-grid{grid-template-columns:clamp(28px,8vw,36px) repeat(7,minmax(0,1fr))}.weekday-row{min-height:32px}.weekday-row span{font-size:calc(clamp(.58rem,2.5vw,.72rem) * var(--font-factor))}.days-grid{grid-auto-rows:clamp(54px,12.8vw,78px)}.week-number{font-size:calc(.64rem * var(--font-factor))}.day{padding:4px 3px}.day-number{font-size:calc(clamp(.8rem,4vw,1.06rem) * var(--font-factor))}.holiday-label{font-size:calc(clamp(.38rem,1.8vw,.53rem) * var(--font-factor));letter-spacing:-.02em}.event-chip,.break-ribbon{padding:2px 4px;font-size:calc(clamp(.4rem,1.8vw,.56rem) * var(--font-factor))}.note-marker{width:9px;height:9px;right:4px;bottom:4px}.legend{display:none}.details-dialog{margin:auto auto calc(10px + env(safe-area-inset-bottom,0px));width:calc(100% - 18px);max-height:82dvh;border-radius:22px}.details-grid{grid-template-columns:1fr;padding:14px}.details-grid>div{padding:11px}}
@media(max-width:760px){body[data-layout="desktop"] .calendar-root.year-grid{display:grid;grid-template-columns:1fr;gap:12px}body[data-layout="desktop"] .month-title{display:grid}body[data-layout="desktop"] .calendar-stage{padding-inline:8px}}
@media(max-width:380px){.mode-list{grid-template-columns:1fr}.utility-list{grid-template-columns:1fr}.utility-list .switch-row{grid-column:auto}.command-bar{grid-template-columns:82px 1fr 82px}.nav-button b{display:none}.font-control output{min-width:98px}.days-grid{grid-auto-rows:clamp(50px,13vw,64px)}}
@media(min-width:761px){body[data-layout="mobile"]{--header-h:68px;--command-h:112px}.menu-toggle{display:block}body[data-layout="mobile"] .tool-panel{z-index:50;left:auto;right:18px;top:calc(var(--header-h) + 10px);bottom:auto;width:min(390px,calc(100% - 28px));max-height:calc(100dvh - var(--header-h) - 20px);transform:translateX(115%);transition:.22s;border-radius:20px}body[data-layout="mobile"] .tool-panel.open{transform:translateX(0)}body[data-layout="mobile"] .panel-head{display:flex;align-items:center;justify-content:space-between}body[data-layout="mobile"] .panel-view-switch{display:flex;margin-top:12px}body[data-layout="mobile"] .panel-backdrop.open{opacity:1;pointer-events:auto}body[data-layout="mobile"] .calendar-stage{margin-left:0;max-width:760px;margin-inline:auto;padding:16px}body[data-layout="mobile"] .calendar-root{display:block}body[data-layout="mobile"] .month-card{max-width:720px;margin:auto}body[data-layout="mobile"] .legend{display:none}body[data-layout="mobile"] .top-view-switch{display:none}body[data-layout="mobile"] .command-bar{flex-wrap:wrap}body[data-layout="mobile"] .command-bar h1{order:-1;flex-basis:100%}body[data-layout="desktop"] .panel-backdrop{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Mobile viewport fitting and tactile father-stay overlays */
.day.father-full::before,.day.father-nightStart::before,.day.father-nightEnd::before{background:repeating-linear-gradient(105deg,rgba(255,255,255,.16) 0 1px,transparent 1px 6px),repeating-linear-gradient(15deg,rgba(113,78,42,.055) 0 1px,transparent 1px 8px),linear-gradient(155deg,#f2e6d5 0%,#e5d1b5 56%,#d8bd99 100%);box-shadow:inset 2px 2px 0 rgba(255,255,255,.54),inset -2px -3px 0 rgba(112,77,39,.13);filter:drop-shadow(0 3px 2px rgba(103,72,39,.22))}.day.father-full::before{clip-path:inset(0);border-top:2px solid #bea077}.day.father-nightStart::before{clip-path:polygon(0 100%,100% 0,100% 100%)}.day.father-nightEnd::before{clip-path:polygon(0 0,100% 0,0 100%)}.day.father-nightStart::after,.day.father-nightEnd::after{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(to bottom right,transparent 0 49.1%,rgba(255,255,255,.62) 49.1% 49.7%,#b79569 49.7% 50.7%,rgba(91,61,31,.17) 50.7% 51.25%,transparent 51.25% 100%);filter:drop-shadow(0 2px 1px rgba(89,59,30,.16))}.legend-father{background:linear-gradient(135deg,transparent 48%,#c8a980 50%)}
@media(max-width:760px){body[data-layout="mobile"] .calendar-root.month-focus .month-card{display:flex;flex-direction:column;width:100%;height:calc(100dvh - var(--header-h) - var(--command-h) - 20px - env(safe-area-inset-bottom,0px));min-height:0;max-height:calc(100dvh - var(--header-h) - var(--command-h) - 20px - env(safe-area-inset-bottom,0px));border-radius:14px}body[data-layout="mobile"] .calendar-root.month-focus .days-grid{flex:1;grid-auto-rows:minmax(0,1fr)}}

.mode-list .mode-father{color:#654a2d;background:repeating-linear-gradient(105deg,rgba(255,255,255,.2) 0 1px,transparent 1px 6px),repeating-linear-gradient(15deg,rgba(113,78,42,.055) 0 1px,transparent 1px 8px),linear-gradient(155deg,#f2e6d5,#e5d1b5 58%,#d8bd99);border-color:rgba(158,121,78,.32);box-shadow:0 5px 10px rgba(91,65,38,.17),0 1px 2px rgba(91,65,38,.12),inset 2px 2px 0 rgba(255,255,255,.58),inset -2px -3px 0 rgba(112,77,39,.11)}#modeFather:checked+.mode-father{border-color:#a17a4d;box-shadow:inset 0 4px 9px rgba(102,70,37,.2),0 2px 4px rgba(91,65,38,.16)}#modeFather:checked+.mode-father::before{background:#a17a4d}

/* Compact single-row mobile calendar controls */
@media(max-width:760px){:root{--command-h:72px}.command-bar{height:var(--command-h);min-height:var(--command-h);grid-template-columns:54px minmax(0,1fr) 54px;grid-template-rows:58px;gap:7px;padding:7px 8px}.command-bar h1{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.nav-button{min-width:54px;width:54px;padding:0}.nav-button b{display:none}.nav-button span{font-size:1.55rem;line-height:1}.font-control{grid-column:2;grid-row:1;justify-self:stretch;width:100%;height:58px;margin:0}.font-control button{flex:0 0 42px;min-width:42px;padding:0 7px;font-size:.92rem;line-height:1}.font-control output{display:flex;flex:1 1 auto;min-width:0;padding:3px 4px;flex-direction:column;align-items:center;justify-content:center;gap:0;font-size:11px;line-height:1.05;white-space:nowrap}.font-control output span:first-child{font-size:11px;font-weight:850}.font-control output span:nth-child(2){font-size:12px;font-weight:850;color:var(--ink)}.font-control output small{font-size:9px;font-weight:750;color:var(--muted)}}

/* Tactile sticky-note event labels and pinned notes */
.event-chip,.break-ribbon{position:relative;border:1px solid rgba(89,68,42,.13);border-radius:2px 3px 4px 2px;padding:3px 7px 4px;transform:rotate(-.7deg);transform-origin:center;box-shadow:1px 3px 4px rgba(55,45,31,.2),inset 0 1px rgba(255,255,255,.52);clip-path:polygon(0 0,92% 0,100% 18%,100% 100%,0 100%);background-image:repeating-linear-gradient(102deg,rgba(255,255,255,.18) 0 1px,transparent 1px 5px),linear-gradient(155deg,var(--note-paper,#f5dfa0),var(--note-paper-deep,#e8c86f))}.event-chip::after,.break-ribbon::after{content:"";position:absolute;right:0;top:0;width:12%;height:20%;background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(99,74,37,.14));box-shadow:-1px 1px 2px rgba(75,56,31,.1);pointer-events:none}.event-chip.accident{--note-paper:#f8d2d9;--note-paper-deep:#eeaebc;color:#7d2637}.event-chip.pee{--note-paper:#ccefe8;--note-paper-deep:#96d9cc;color:#145f57;transform:rotate(.65deg)}.break-ribbon{--note-paper:#f8e0ad;--note-paper-deep:#ecc575;color:#71450d;transform:rotate(.8deg)}.note-marker{position:absolute;z-index:7;right:4px;bottom:2px;width:16px;height:20px;border-radius:0;background:transparent;box-shadow:none;overflow:visible;transform:rotate(8deg);filter:drop-shadow(1px 2px 1px rgba(69,42,36,.28))}.note-marker::before{content:"";position:absolute;z-index:2;left:3px;top:1px;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 34% 28%,#ffd2ca 0 10%,#e66f68 27%,#a93e43 72%,#78262d 100%);box-shadow:inset 1px 1px 2px rgba(255,255,255,.48),inset -1px -2px 2px rgba(80,19,24,.24)}.note-marker::after{content:"";position:absolute;z-index:1;left:8px;top:9px;width:2px;height:10px;border-radius:2px;background:linear-gradient(90deg,#765d59,#e4cfca 48%,#765d59);transform:rotate(14deg);transform-origin:top center}@media(max-width:760px){.event-chip,.break-ribbon{padding:2px 3px 3px;border-width:1px;box-shadow:1px 2px 3px rgba(55,45,31,.18),inset 0 1px rgba(255,255,255,.48)}.note-marker{right:1px;bottom:0;transform:scale(.86) rotate(8deg);transform-origin:right bottom}}

.note-tooltip{position:fixed;z-index:100;max-width:min(320px,calc(100vw - 16px));padding:10px 13px;border:1px solid rgba(104,78,48,.25);border-radius:8px;background:repeating-linear-gradient(102deg,rgba(255,255,255,.2) 0 1px,transparent 1px 6px),linear-gradient(155deg,#fff8d7,#f4e3a9);color:#47351f;font-size:13px;font-weight:700;line-height:1.35;white-space:normal;overflow-wrap:anywhere;box-shadow:0 10px 24px rgba(48,36,24,.24),inset 0 1px rgba(255,255,255,.7);pointer-events:none;transform:rotate(-.35deg)}.note-tooltip[hidden]{display:none}.note-tooltip::after{content:"";position:absolute;left:50%;bottom:-6px;width:10px;height:10px;background:#f4e3a9;border-right:1px solid rgba(104,78,48,.25);border-bottom:1px solid rgba(104,78,48,.25);transform:translateX(-50%) rotate(45deg)}

/* Structured day-cell hierarchy: date, events, calendar footer */
.day{display:flex;flex-direction:column}.day-number{position:absolute;z-index:6;top:5px;right:5px;line-height:1;text-align:right}.day-events{position:relative;z-index:4;display:flex;flex:1;min-height:0;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;padding:14px 0 2px}.day-events .event-chip,.day-events .break-ribbon{margin-top:2px}.day-footer{position:relative;z-index:4;display:flex;flex:0 0 auto;align-items:flex-end;width:calc(100% - 13px);min-height:1em;margin-top:auto}.day-footer .holiday-label{display:block;width:100%;margin:0;max-height:2.1em;text-align:left}.day:not(:has(.day-footer)) .day-events{padding-bottom:4px}@media(max-width:760px){.day-number{top:4px;right:4px}.day-events{padding-top:13px;padding-bottom:1px}.day-events .event-chip,.day-events .break-ribbon{margin-top:1px}.day-footer{width:calc(100% - 11px);min-height:.8em}.day-footer .holiday-label{margin:0}}

/* Swapped footer alignment: green pin left, stronger calendar label right */
.note-marker{left:4px;right:auto;transform:rotate(-8deg)}.note-marker::before{background:radial-gradient(circle at 34% 28%,#f1fff8 0 10%,#a8dfc3 28%,#69b58f 70%,#3f7f63 100%);box-shadow:inset 1px 1px 2px rgba(255,255,255,.58),inset -1px -2px 2px rgba(35,91,65,.2)}.note-marker::after{left:7px;transform:rotate(-14deg)}.day-footer{width:calc(100% - 13px);margin-left:13px;justify-content:flex-end}.day-footer .holiday-label{color:#b94f57;font-weight:800;text-align:right;-webkit-text-stroke:.25px currentColor;text-shadow:0 1px 0 rgba(255,255,255,.62)}@media(max-width:760px){.note-marker{left:3px;right:auto;transform:scale(.86) rotate(-8deg);transform-origin:left bottom}.day-footer{width:calc(100% - 11px);margin-left:11px}.day-footer .holiday-label{-webkit-text-stroke:.2px currentColor}}


/* 2026-07 palette and viewport-height refinement */
.weekday-row .weekend-head{background:#e8f3e2;color:#37624a}.weekday-row .weekend-head.sunday{color:#b54f56}
.day.workday{background:#fff9e9}.day.weekend{background:#e5f2df}.day.weekend-workday{box-shadow:inset 0 3px 0 #e2b966}.day.holiday:not(.father-full):not(.father-nightStart):not(.father-nightEnd){background:#e5f2df}.day.weekend-workday.holiday:not(.father-full):not(.father-nightStart):not(.father-nightEnd){background:#fff9e9}
.day.father-full::before,.day.father-nightStart::before,.day.father-nightEnd::before{background:repeating-linear-gradient(105deg,rgba(255,255,255,.22) 0 1px,transparent 1px 6px),repeating-linear-gradient(15deg,rgba(145,76,24,.055) 0 1px,transparent 1px 8px),linear-gradient(155deg,#ffe2bf 0%,#f6c98f 56%,#eeb36e 100%);box-shadow:inset 2px 2px 0 rgba(255,255,255,.60),inset -2px -3px 0 rgba(154,83,27,.14);filter:drop-shadow(0 3px 2px rgba(139,74,24,.22))}.day.father-full::before{border-top-color:#dc8b3f}.day.father-nightStart::after,.day.father-nightEnd::after{background:linear-gradient(to bottom right,transparent 0 49.1%,rgba(255,255,255,.68) 49.1% 49.7%,#d8873d 49.7% 50.7%,rgba(131,65,21,.18) 50.7% 51.25%,transparent 51.25% 100%)}.legend-father{background:linear-gradient(135deg,transparent 48%,#e79a50 50%)}
.break-ribbon{--note-paper:#e1f1d6;--note-paper-deep:#b9dca9;color:#355d37}.event-chip.accident{--note-paper:#ead2bc;--note-paper-deep:#cfa782;color:#65442e}.legend-break{background:#b9dca9}.legend-accident{background:#cfa782}
.note-marker{width:18px;height:19px;bottom:1px;filter:drop-shadow(1px 2px 1px rgba(87,66,24,.30))}.note-marker::before{left:2px;top:1px;width:14px;height:10px;border-radius:48% 48% 42% 42%;background:radial-gradient(ellipse at 34% 24%,#fffbd6 0 10%,#f9df78 32%,#d7ad35 72%,#a77918 100%);box-shadow:inset 1px 1px 2px rgba(255,255,255,.72),inset -1px -2px 2px rgba(111,77,10,.24),0 1px 1px rgba(86,59,12,.25)}.note-marker::after{left:8px;top:9px;width:3px;height:9px;background:linear-gradient(90deg,#806b4c,#f5e6bf 48%,#756044);transform:rotate(-8deg)}.legend-note{background:#f1cf55}
@media(min-width:761px){body[data-layout="desktop"] .month-card{display:flex;flex-direction:column;height:calc(100dvh - var(--header-h) - var(--command-h) - 42px);min-height:390px}body[data-layout="desktop"] .days-grid{flex:1;grid-auto-rows:minmax(0,1fr)}}@media(min-width:761px) and (min-height:850px){body[data-layout="desktop"] .month-card{height:calc((100dvh - var(--header-h) - var(--command-h) - 58px)/2);min-height:344px}}@media(max-width:760px){.note-marker{width:18px;height:19px;left:2px;bottom:0;transform:scale(.88) rotate(-7deg)}.note-marker::before{width:14px;height:10px}.note-marker::after{left:8px;top:9px;width:3px;height:9px}}


/* Paper-board control rail matching the calendar notes */
.tool-panel{background:repeating-linear-gradient(92deg,rgba(136,109,70,.035) 0 1px,transparent 1px 7px),linear-gradient(180deg,#fffdf7,#f7f1e5);border-color:#d9cdb9;box-shadow:0 15px 34px rgba(73,58,39,.16),inset 0 1px rgba(255,255,255,.9)}
.mode-list::before{content:"Esemény hozzáadása";display:block;margin:1px 3px 4px;color:#4d4335;font-size:.82rem;font-weight:850;letter-spacing:.01em}
.mode-list label{border-color:rgba(100,76,43,.18);border-radius:3px 4px 5px 3px;clip-path:polygon(0 0,94% 0,100% 10%,100% 100%,2% 98%);box-shadow:2px 4px 6px rgba(72,54,32,.20),inset 0 1px rgba(255,255,255,.58);transform:rotate(-.35deg);background-image:repeating-linear-gradient(102deg,rgba(255,255,255,.19) 0 1px,transparent 1px 6px),linear-gradient(155deg,var(--menu-paper,#fff4c9),var(--menu-paper-deep,#ead78c))}
.mode-list label:nth-of-type(even){transform:rotate(.35deg)}
.mode-list label::after{opacity:.3;background-image:repeating-linear-gradient(102deg,rgba(255,255,255,.28) 0 1px,transparent 1px 6px)}
.mode-list label::before{z-index:2}
.mode-list label:hover{transform:translateY(-2px) rotate(0);box-shadow:3px 7px 10px rgba(72,54,32,.23),inset 0 1px rgba(255,255,255,.65)}
.mode-list input:checked+label{transform:translateY(2px) rotate(0);box-shadow:inset 1px 4px 8px rgba(66,48,27,.22),0 1px 2px rgba(66,48,27,.13)}
.mode-reader{--menu-paper:#fff9e9;--menu-paper-deep:#efe2bd}.mode-father{--menu-paper:#ffe1ba;--menu-paper-deep:#efb66f}.mode-event{--menu-paper:#ead2bc;--menu-paper-deep:#cfa782}.mode-break{--menu-paper:#e1f1d6;--menu-paper-deep:#b9dca9}.mode-note{--menu-paper:#fff4b8;--menu-paper-deep:#efd067}.mode-clear{--menu-paper:#eee8f7;--menu-paper-deep:#d7c8ea}
.tool-icon{background:rgba(255,255,255,.34);border:1px solid rgba(91,69,39,.09);border-radius:50%;box-shadow:0 2px 4px rgba(70,52,31,.13),inset 0 1px rgba(255,255,255,.72);color:#554634}
.panel-divider{background:#d9cdb9}
.utility-list>button,.switch-row{border-color:#d9cdb9;background:linear-gradient(180deg,#fffdf8,#eee6d8);box-shadow:1px 3px 5px rgba(72,54,32,.13),inset 0 1px #fff}
.switch-row input:checked+i{background:#8fbd83}
@media(max-width:760px){.mode-list::before{grid-column:1/-1;font-size:.9rem;margin:2px 3px 3px}.tool-panel{background:repeating-linear-gradient(92deg,rgba(136,109,70,.035) 0 1px,transparent 1px 7px),linear-gradient(180deg,#fffdf7,#f7f1e5)}}

/* Ensure accident notes keep the same folded paper surface despite legacy shorthand colors */
.event-chip.accident{background-image:repeating-linear-gradient(102deg,rgba(255,255,255,.18) 0 1px,transparent 1px 5px),linear-gradient(155deg,#ead2bc,#cfa782)}
.event-chip.pee{background-image:repeating-linear-gradient(102deg,rgba(255,255,255,.18) 0 1px,transparent 1px 5px),linear-gradient(155deg,#ccefe8,#96d9cc)}


/* Generated paper materials and crisp father-stay geometry */
.event-chip,.break-ribbon{background-position:center;background-repeat:no-repeat;background-size:100% 100%;border-color:rgba(93,68,39,.16);border-radius:3px;clip-path:none;box-shadow:1px 3px 5px rgba(67,48,27,.23),inset 0 1px rgba(255,255,255,.58)}
.event-chip::after,.break-ribbon::after{display:none}
.break-ribbon{background-image:url("../textures/paper-green.webp")}.event-chip.accident{background-image:url("../textures/paper-brown.webp")}.event-chip.pee{background-image:url("../textures/paper-aqua.webp")}
.day.father-full::before,.day.father-nightStart::before,.day.father-nightEnd::before{background-color:transparent;background-image:url("../textures/paper-orange.webp");background-position:center;background-repeat:no-repeat;background-size:cover;border:0;box-shadow:inset 1px 1px rgba(255,255,255,.5),inset -1px -2px rgba(127,80,37,.08);filter:drop-shadow(0 2px 2px rgba(121,78,37,.13));opacity:.72}
.day.father-full::before{clip-path:inset(0)}.day.father-nightStart::before{clip-path:polygon(0 100%,100% 0,100% 100%)}.day.father-nightEnd::before{clip-path:polygon(0 0,100% 0,0 100%)}
.day.father-nightStart::after,.day.father-nightEnd::after{background:transparent url("../textures/father-diagonal.svg") center/100% 100% no-repeat;filter:drop-shadow(0 1px 1px rgba(101,62,28,.18))}.legend-father{background-image:url("../textures/paper-orange.webp")}
.mode-list label{background-color:#f8f1e2;background-image:var(--menu-texture);background-position:center;background-repeat:no-repeat;background-size:100% 100%;border-radius:3px;clip-path:none}.mode-reader{--menu-texture:url("../textures/paper-eggshell.webp")}.mode-father{--menu-texture:url("../textures/paper-orange.webp")}.mode-event{--menu-texture:url("../textures/paper-brown.webp")}.mode-break{--menu-texture:url("../textures/paper-green.webp")}.mode-note{--menu-texture:url("../textures/paper-yellow.webp")}.mode-clear{--menu-texture:url("../textures/paper-lavender.webp")}
@media(min-width:761px){html:has(body[data-layout="desktop"]){scroll-snap-type:y mandatory;scroll-padding-top:calc(var(--header-h) + var(--command-h) + 14px)}body[data-layout="desktop"] .month-card{scroll-snap-align:start;scroll-snap-stop:always}}

.mode-list .mode-father{background-color:#f6d6af;background-image:url("../textures/paper-orange.webp");border-color:rgba(163,112,62,.25);color:#654a2d}

/* Clear day-type base colors, also below partial father overlays */
.day.workday{background:#f7f8f8}.day.weekend{background:#e5f2df}.day.holiday.workday{background:#eef6e9}.day.holiday.weekend{background:#e5f2df}.day.weekend-workday,.day.weekend-workday.holiday{background:#f7f8f8}


/* Accepted warm paper theme from the visual concept */
:root{--ink:#302b23;--muted:#756c5e;--line:#ddd2c0;--paper:#fffdf8;--canvas:#eee9df;--shadow-card:0 10px 22px rgba(72,55,33,.14),0 2px 5px rgba(72,55,33,.10),inset 0 1px rgba(255,255,255,.9)}
html{background:#eee9df}body{font-family:"Trebuchet MS","Segoe UI",sans-serif;color:var(--ink);background:repeating-linear-gradient(92deg,rgba(115,88,51,.025) 0 1px,transparent 1px 8px),radial-gradient(circle at 50% 0,rgba(255,255,255,.72),transparent 42%),#eee9df}
.app-header{background:repeating-linear-gradient(92deg,rgba(120,91,51,.035) 0 1px,transparent 1px 7px),linear-gradient(180deg,#faf6ed,#eee5d6);color:#302a22;border:0;border-bottom:1px solid #d8ccb8;border-radius:0;box-shadow:0 5px 13px rgba(67,51,31,.13),inset 0 1px #fff;text-shadow:none}
.brand strong{font-family:"Segoe Print","Comic Sans MS",cursive;font-weight:700;letter-spacing:-.035em}.brand span{color:#766b5c;opacity:1}.menu-toggle span{background:#4f463a;box-shadow:none}.sync-badge{background:rgba(255,255,255,.58);color:#4f463a;box-shadow:inset 0 1px #fff,0 2px 5px rgba(72,55,33,.08)}.today-button{background:linear-gradient(180deg,#fffdf8,#eee5d6);color:#4c4337;border-color:#d4c6b1}
.command-bar{background:repeating-linear-gradient(92deg,rgba(120,91,51,.022) 0 1px,transparent 1px 8px),rgba(250,247,239,.96);border-bottom-color:#d8ccb8;box-shadow:0 4px 12px rgba(70,53,32,.09)}.command-bar h1{font-family:"Segoe Print","Comic Sans MS",cursive;color:#3c342a;font-weight:700}.icon-button,.button{border-color:#d7cbb9;background:linear-gradient(180deg,#fffdf9,#eee7dc);box-shadow:0 4px 9px rgba(68,51,31,.13),inset 0 1px #fff}.font-control,.view-switch{border-color:#d8ccb8;background:#eee7dc;box-shadow:inset 0 2px 5px rgba(70,53,32,.09),0 2px 5px rgba(70,53,32,.06)}.font-control button,.view-switch button{border-right-color:#d8ccb8}.font-control output{background:#fffdf8;color:#716758}.view-switch button.active{background:linear-gradient(180deg,#d8c6a8,#bba17a);color:#2f281f;box-shadow:inset 0 1px rgba(255,255,255,.6),inset 0 -2px rgba(91,66,36,.12)}
.calendar-stage{background:transparent}.month-card{background:#fffdf8;border:1px solid #d8ccb8;border-radius:11px;box-shadow:0 9px 19px rgba(68,51,31,.14),0 2px 4px rgba(68,51,31,.10),inset 0 1px #fff}.month-title{background:repeating-linear-gradient(92deg,rgba(121,91,51,.025) 0 1px,transparent 1px 7px),linear-gradient(180deg,#fffdf9,#f3ecdf);border-bottom-color:#d8ccb8}.month-title h2{font-family:"Segoe Print","Comic Sans MS",cursive;color:#332c24;font-weight:700;font-size:clamp(1rem,1.34vw,1.22rem)}.month-title button{color:#6b5942}.weekday-row{background:#f8f3e9;border-bottom-color:#d9cdbb}.weekday-row span{border-right-color:#e3d9ca;color:#4f463a}.weekday-row .weekend-head{background:#e8f1e2}.week-head,.week-number{background:#f0e9dc;color:#77654d}.week-number,.day{border-right-color:#e3d9ca;border-bottom-color:#e3d9ca}.day.empty{background:#f3f1ed}.day.workday{background:#fafafa}.day.weekend{background:#e5f2df}.day.holiday.workday,.day.break-day.workday{background:#eef6e9}.day.holiday.weekend,.day.break-day.weekend{background:#e5f2df}.day.weekend-workday,.day.weekend-workday.holiday{background:#fafafa}
.tool-panel{border-color:#d6c8b2;background:repeating-linear-gradient(92deg,rgba(115,88,51,.035) 0 1px,transparent 1px 7px),linear-gradient(180deg,#fbf7ee,#eee5d6);box-shadow:0 12px 26px rgba(68,51,31,.15),inset 0 1px #fff}.mode-list::before{font-family:"Segoe Print","Comic Sans MS",cursive;color:#41382d}.legend{border-color:#d8ccb8;background:#fffdf8;box-shadow:0 5px 12px rgba(68,51,31,.09)}
@media(max-width:760px){.app-header{border-radius:0 0 14px 14px}.brand strong{font-size:clamp(1rem,5vw,1.28rem)}}

/* Lock semantic day colors above legacy holiday selectors */
.day.workday{background:#fafafa!important}.day.weekend{background:#e5f2df!important}.day.holiday.workday,.day.break-day.workday{background:#eef6e9!important}.day.holiday.weekend,.day.break-day.weekend{background:#e5f2df!important}.day.weekend-workday,.day.weekend-workday.holiday{background:#fafafa!important}


/* Semantic SVG tool icons and single-row desktop command header */
.tool-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.mode-father .tool-icon svg{stroke-width:1.65}.mode-clear{--menu-texture:none}.mode-list .mode-clear{background-color:#f5cfd1;background-image:linear-gradient(155deg,rgba(255,241,241,.72),rgba(231,159,164,.72)),url("../textures/paper-eggshell.webp");color:#6f3037;border-color:rgba(145,65,73,.24)}
@media(min-width:1300px){:root{--header-h:72px;--command-h:0px}.app-header{height:72px;padding-left:24px;padding-right:24px}.brand{min-width:185px}.command-bar{top:0;z-index:41;width:calc(100% - 580px);height:72px;min-height:72px;margin:-72px 290px 0;padding:9px 8px;background:transparent;border:0;box-shadow:none;backdrop-filter:none}.command-bar h1{min-width:104px}.font-control{margin-left:8px}.tool-panel{top:84px}.calendar-stage{padding-top:14px}html:has(body[data-layout="desktop"]){scroll-padding-top:86px}}

/* Keep every desktop header on one row; compact secondary controls before mobile */
@media(min-width:761px) and (max-width:1299px){:root{--header-h:72px;--command-h:0px}.app-header{height:72px}.app-header .sync-badge{display:none}.command-bar{top:0;z-index:41;width:calc(100% - 380px);height:72px;min-height:72px;margin:-72px 90px 0 290px;padding:9px 6px;background:transparent;border:0;box-shadow:none;backdrop-filter:none}.command-bar h1{min-width:82px}.font-control{margin-left:4px}.tool-panel{top:84px}.calendar-stage{padding-top:14px}html:has(body[data-layout="desktop"]){scroll-padding-top:86px}}
@media(min-width:761px) and (max-width:1100px){.top-view-switch{display:none}}
@media(min-width:761px) and (max-width:900px){.command-bar{width:calc(100% - 330px);margin-right:70px;margin-left:260px}.font-control{display:none}}

.root-icon .root-stump{fill:currentColor;stroke:none}.root-icon .root-heavy{fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}.root-icon .root-fine{fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}.mode-father .tool-icon .root-icon{width:27px;height:27px}


/* Történeti, mindhárman együtt töltött éjszakák */
.together-overlay{position:absolute;z-index:1;inset:0;pointer-events:none;background:url("../textures/paper-lavender.webp") center/cover no-repeat;box-shadow:inset 1px 1px rgba(255,255,255,.55),inset -1px -2px rgba(83,59,120,.10);filter:drop-shadow(0 2px 2px rgba(74,50,112,.14));opacity:.78}
.together-overlay.together-full{clip-path:inset(0);border-top:2px solid rgba(126,91,166,.55)}
.together-overlay.together-nightStart{clip-path:polygon(0 100%,100% 0,100% 100%)}
.together-overlay.together-nightEnd{clip-path:polygon(0 0,100% 0,0 100%)}
.together-overlay.together-nightStart::after,.together-overlay.together-nightEnd::after{content:"";position:absolute;z-index:2;inset:0;background:transparent url("../textures/together-diagonal.svg") center/100% 100% no-repeat;filter:drop-shadow(0 1px 1px rgba(70,46,105,.20))}
.legend-together{background-image:url("../textures/paper-lavender.webp");background-position:center;background-size:cover;border:1px solid rgba(126,91,166,.35)}


/* Kompakt éves áttekintés: egy teljes év, csak felügyeleti színek és jelzőikon */
.annual-only{display:none!important}
body[data-layout="annual"]{overflow:hidden}
body[data-layout="annual"] .calendar-stage{margin-left:0;height:calc(100dvh - var(--header-h) - var(--command-h));padding:7px 10px 6px;display:flex;flex-direction:column;overflow:hidden}
.calendar-root.annual-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:7px;align-items:stretch}
.annual-grid .month-card{min-width:0;min-height:0;display:flex;flex-direction:column;border-radius:7px;box-shadow:0 3px 8px rgba(68,51,31,.12);contain:layout paint}
.annual-grid .month-title{height:24px;min-height:24px;display:flex;justify-content:center}
.annual-grid .month-title h2{font-size:.76rem;line-height:1;margin:0}
.annual-grid .month-title button{display:none}
.annual-grid .weekday-row{min-height:16px;height:16px;grid-template-columns:18px repeat(7,minmax(0,1fr))}
.annual-grid .weekday-row span{font-size:.5rem;line-height:1}
.annual-grid .days-grid{flex:1;min-height:0;grid-template-columns:18px repeat(7,minmax(0,1fr));grid-auto-rows:1fr}
.annual-grid .week-number{font-size:.46rem;line-height:1}
.annual-grid .day{min-height:0;padding:1px;box-shadow:none;transform:none}
.annual-grid .day:hover{transform:none;box-shadow:inset 0 0 0 1px rgba(86,67,43,.2)}
.annual-grid .day-number{font-size:.59rem;line-height:1;position:absolute;z-index:4;top:2px;right:2px}
.annual-grid .day.workday,.annual-grid .day.weekend,.annual-grid .day.holiday,.annual-grid .day.break-day,.annual-grid .day.weekend-workday{background:#fbfaf7!important}
.annual-grid .day.empty{background:#f1efea!important}
.annual-grid .day.today{box-shadow:inset 0 0 0 1px rgba(79,64,45,.38)}
.annual-grid .day-events,.annual-grid .day-footer,.annual-grid .note-marker{display:none!important}
.annual-indicator{position:absolute;z-index:6;left:2px;bottom:1px;width:10px;height:10px;color:#c69616;filter:drop-shadow(0 1px 1px rgba(93,68,15,.2));pointer-events:none}
.annual-indicator svg{display:block;width:100%;height:100%;fill:#f7d66b;stroke:#8d6b17;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
body[data-layout="annual"] .legend{flex:0 0 auto;margin:5px auto 0;padding:4px 10px;gap:13px;border-radius:8px;font-size:.62rem;line-height:1}
body[data-layout="annual"] .legend span:has(.legend-accident),body[data-layout="annual"] .legend span:has(.legend-break),body[data-layout="annual"] .legend span:has(.legend-note),body[data-layout="annual"] .legend .sunday-key{display:none}
body[data-layout="annual"] .legend .annual-only{display:flex!important}
.legend-bulb{background:#f7d66b;border:1px solid #a77d16;border-radius:50%!important;box-shadow:0 1px 2px rgba(93,68,15,.18)}
@media(min-width:1101px){body[data-layout="annual"] .tool-panel,body[data-layout="annual"] .menu-toggle{display:none}}
@media(max-width:1100px){.calendar-root.annual-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:5px}.annual-grid .month-title{height:20px;min-height:20px}.annual-grid .month-title h2{font-size:.66rem}.annual-grid .weekday-row{min-height:14px;height:14px;grid-template-columns:14px repeat(7,minmax(0,1fr))}.annual-grid .days-grid{grid-template-columns:14px repeat(7,minmax(0,1fr))}.annual-grid .weekday-row span,.annual-grid .week-number{font-size:.43rem}.annual-grid .day-number{font-size:.5rem}.annual-indicator{width:8px;height:8px}}
@media(max-width:760px){body[data-layout="annual"] .font-control{display:none}body[data-layout="annual"] .command-bar{min-height:48px;height:48px;padding-top:4px;padding-bottom:4px}body[data-layout="annual"]{--command-h:48px}body[data-layout="annual"] .nav-button{min-height:38px;height:38px}body[data-layout="annual"] .calendar-stage{padding:4px 4px 3px}body[data-layout="annual"] .legend{margin-top:3px;padding:3px 7px;gap:8px;font-size:.55rem}.calendar-root.annual-grid{gap:3px}.annual-grid .month-card{border-radius:4px}.annual-grid .day-number{top:1px;right:1px;font-size:.47rem}}


/* Havi tartásdíj: sáv a hónapkártyán, aqua eszköz, rögzítő ablak */
.mode-support{--menu-texture:url("../textures/paper-aqua.webp")}
.mode-list .mode-support{background-color:#d9f2f3;border-color:rgba(38,120,124,.28);color:#1c5f63}
.support-band{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:0;border-bottom:1px solid #e3d9ca;background:repeating-linear-gradient(92deg,rgba(121,91,51,.02) 0 1px,transparent 1px 8px),#faf7ef;color:#3c342a;font:inherit;text-align:left;cursor:pointer}
.support-band:hover{background:repeating-linear-gradient(92deg,rgba(121,91,51,.02) 0 1px,transparent 1px 8px),#fffdf6}
.support-band:active{box-shadow:inset 0 3px 7px rgba(70,53,32,.12)}
.support-icon{flex:0 0 auto;display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(24,84,87,.16);border-radius:50%;background:rgba(255,255,255,.6);color:#1c5f63;box-shadow:inset 0 1px #fff}
.support-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.support-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.support-text b{font-size:calc(.86rem * var(--font-factor));line-height:1.2}
.support-text small{color:#6f6455;font-size:calc(.72rem * var(--font-factor));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.support-stamp{flex:0 0 auto;margin-left:auto;padding:5px 12px;border-radius:4px;font-size:calc(.76rem * var(--font-factor));font-weight:850;letter-spacing:.02em;white-space:nowrap;box-shadow:2px 3px 5px rgba(72,54,32,.16),inset 0 1px rgba(255,255,255,.7);transform:rotate(-1.4deg)}
.support-stamp.support-paid{border:1px solid rgba(90,140,90,.42);background:#e5f2df;color:#355d37}
.support-stamp.support-partial{border:1px solid rgba(179,138,52,.42);background:#fbf0d3;color:#7f4c0b;transform:rotate(1.1deg)}
.support-stamp.support-missing{border:1px solid rgba(145,65,73,.42);background:#f7dcdd;color:#8f2639}
.support-stamp.support-pending{border:1px dashed #c9bda8;background:#f6f2e9;color:#7a6f5f;font-weight:800;box-shadow:none;transform:none}

.event-chip.support{background:#d9f2f3;color:#175f63}
.legend-support{background:#a3dcdd;border:1px solid rgba(38,120,124,.35)}
.annual-grid .support-band{display:none}
.support-dot{display:grid;place-items:center;width:14px;height:14px;margin-left:5px;border-radius:3px;font-size:.6rem;font-weight:850;line-height:1}
.support-dot.support-paid{border:1px solid rgba(90,140,90,.45);background:#e5f2df;color:#355d37}
.support-dot.support-partial{border:1px solid rgba(179,138,52,.45);background:#fbf0d3;color:#7f4c0b}
.support-dot.support-missing{border:1px solid rgba(145,65,73,.45);background:#f7dcdd;color:#8f2639}
.support-dot.support-pending{border:1px solid #ddd2be;background:#f6f2e9;color:#8d8271}

.support-dialog{width:min(560px,calc(100% - 24px));padding:0;border:1px solid #d5cbb9;border-radius:20px;background:#fffdf8;color:var(--ink);box-shadow:0 28px 60px rgba(52,38,20,.28)}
.support-dialog::backdrop{background:rgba(38,29,17,.42);backdrop-filter:blur(4px)}
.support-dialog .dialog-head{background:repeating-linear-gradient(92deg,rgba(121,91,51,.025) 0 1px,transparent 1px 7px),linear-gradient(180deg,#fffdf9,#f3ecdf);border-bottom-color:#d8ccb8}
.support-dialog .dialog-head h2{font-family:"Segoe Print","Comic Sans MS",cursive;font-weight:700;color:#332c24}
.support-body{display:flex;flex-direction:column;gap:13px;padding:16px 18px}
.support-list{display:flex;flex-direction:column;gap:7px}
.support-empty{margin:0;color:#7a6f5f;font-size:.86rem}
.support-row{display:flex;align-items:center;gap:8px}
.support-row-main{flex:1;min-width:0;display:grid;grid-template-columns:62px minmax(0,96px) minmax(0,1fr);align-items:center;gap:9px;min-height:44px;padding:6px 11px;border:1px solid #e0d6c5;border-radius:11px;background:#faf6ec;color:inherit;font:inherit;text-align:left;cursor:pointer}
.support-row-main small{color:#6f6455;font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.support-row.editing .support-row-main{border-color:#b7a077;box-shadow:inset 0 2px 5px rgba(70,53,32,.13)}
.support-row-remove{flex:0 0 auto;width:44px;height:44px;border:1px solid #dcc4c6;border-radius:11px;background:linear-gradient(180deg,#fff9f9,#f3e0e1);color:#8f2639;font-size:1.15rem;font-weight:800;cursor:pointer}
.support-total{display:flex;align-items:baseline;justify-content:space-between;gap:9px;padding:4px 11px;color:#4f463a;font-size:.86rem}
.support-total small{color:#8f2639;font-weight:800}
.support-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:13px;border:1px solid #e0d6c5;border-radius:13px;background:#faf6ec}
.support-field{display:flex;flex-direction:column;gap:5px}
.support-field small{color:#6f6455;font-size:.72rem;font-weight:700}
.support-field-wide{grid-column:1/-1}
.support-field input,.support-field select{min-height:44px;padding:0 11px;border:1px solid #d7cbb9;border-radius:11px;background:#fffdf9;color:inherit;font:inherit;box-shadow:inset 0 2px 4px rgba(70,53,32,.07)}
.support-apply{grid-column:1/-1;min-height:44px;padding:0 14px}
.support-actions{display:flex;align-items:center;gap:10px;padding:12px 18px 16px;border-top:1px solid #e6dccb}
.support-actions small{margin-right:auto;max-width:28ch;color:#7a6f5f;font-size:.72rem}
.support-actions .button{min-width:0;min-height:44px;padding:0 16px}
.support-save{border-color:#b7a077;background:linear-gradient(180deg,#d8c6a8,#bba17a);color:#2f281f;font-weight:850}
@media(max-width:760px){.support-band{gap:8px;padding:7px 10px}.support-stamp{padding:4px 9px;font-size:calc(.7rem * var(--font-factor))}.support-dialog{margin:auto auto calc(10px + env(safe-area-inset-bottom,0px));width:calc(100% - 18px);max-height:86dvh;border-radius:22px;overflow:auto}.support-fields{grid-template-columns:1fr}.support-actions{flex-wrap:wrap}.support-actions small{flex:1 0 100%;max-width:none;margin:0 0 4px}.support-actions .button{flex:1}}

/* Éves tartásdíj-áttekintés és elvárt összegek */
.support-year-dialog{width:min(620px,calc(100% - 24px));max-height:88dvh;overflow:auto}
.support-year-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.support-year-summary>div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid #e0d6c5;border-radius:12px;background:#faf6ec}
.support-year-summary small{color:#6f6455;font-size:.72rem;font-weight:700}
.support-year-summary b{font-size:1.02rem}
.support-overdue{color:#8f2639}
.support-year-list{display:flex;flex-direction:column;gap:6px}
.support-year-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,96px) auto;align-items:center;gap:9px;min-height:44px;padding:6px 11px;border:1px solid #e0d6c5;border-radius:11px;background:#faf6ec;color:inherit;font:inherit;text-align:left;cursor:pointer}
.support-year-row:hover{background:#fffdf6}
.support-year-row b{font-size:.86rem}
.support-year-row small{grid-column:1;grid-row:2;color:#6f6455;font-size:.7rem}
.support-year-row>span{grid-column:2;grid-row:1/3;text-align:right;font-weight:800;font-size:.84rem}
.support-year-row>span i{color:#8d8271;font-style:normal;font-weight:700}
.support-year-row .support-stamp{grid-column:3;grid-row:1/3;margin-left:0;padding:4px 10px;font-size:.72rem}
.support-settings{display:flex;flex-direction:column;gap:9px;padding:14px;border:1px solid #e0d6c5;border-radius:13px;background:#faf6ec}
.support-settings h3{margin:0;font-family:"Segoe Print","Comic Sans MS",cursive;font-weight:700;font-size:.95rem;color:#332c24}
.support-settings-note{margin:0;color:#6f6455;font-size:.74rem;line-height:1.45}
.support-setting-list{display:flex;flex-direction:column;gap:8px}
.support-setting-row{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.support-setting-row>b{flex:1 0 100%;font-size:.82rem}
.support-setting-row label{display:flex;flex-direction:column;gap:4px;flex:1;min-width:104px}
.support-setting-row small{color:#6f6455;font-size:.7rem;font-weight:700}
.support-setting-row input{min-height:44px;padding:0 10px;border:1px solid #d7cbb9;border-radius:11px;background:#fffdf9;color:inherit;font:inherit;box-shadow:inset 0 2px 4px rgba(70,53,32,.07)}
.support-secondary{min-width:0;min-height:44px;padding:0 14px;align-self:flex-start}
@media(max-width:760px){.support-year-summary{grid-template-columns:1fr;gap:6px}.support-year-summary>div{flex-direction:row;align-items:baseline;justify-content:space-between}.support-year-row{grid-template-columns:minmax(0,1fr) auto}.support-year-row>span{grid-column:2;grid-row:1}.support-year-row .support-stamp{grid-column:1/-1;grid-row:3;justify-self:start;margin-top:2px}}
.support-year-idle{background:#f6f3ec;color:#8d8271}
.support-year-idle b{font-weight:750}

/* Frissítés-értesítő és mobilbarát beállítássorok */
.update-banner{position:fixed;z-index:60;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:9px 12px;border:1px solid #d6c8b2;border-radius:14px;background:repeating-linear-gradient(92deg,rgba(115,88,51,.035) 0 1px,transparent 1px 7px),linear-gradient(180deg,#fbf7ee,#eee5d6);box-shadow:0 12px 26px rgba(68,51,31,.22),inset 0 1px #fff;color:#3c342a}
.update-banner[hidden]{display:none}
.update-banner b{font-size:.86rem;white-space:nowrap}
.update-banner .tool-icon{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.5);box-shadow:inset 0 1px #fff}
.update-banner .button{min-width:0;min-height:40px;padding:0 14px}
.support-setting-row select{min-height:44px;padding:0 10px;border:1px solid #d7cbb9;border-radius:11px;background:#fffdf9;color:inherit;font:inherit;box-shadow:inset 0 2px 4px rgba(70,53,32,.07)}
.support-setting-row input,.support-setting-row select{width:100%;min-width:0}
@media(max-width:760px){
 .support-setting-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:end}
 .support-setting-row>b{grid-column:1/-1}
 .support-setting-row label{width:100%;min-width:0}
 .support-setting-row label:first-of-type{grid-column:1/-1}
 .support-setting-row .support-row-remove{grid-column:1/-1;justify-self:end;width:52px}
}
