@font-face{font-family:'Patrick Hand';src:url('/assets/PatrickHand-Regular.ttf') format('truetype');font-display:swap}
:root{--ink:#332852;--muted:#817794;--purple:#7455bf;--lavender:#eee8ff;--paper:#fffefa;--line:#e9e3f1;--pink:#ffe7f1;--mint:#e7f7ee;--shadow:0 18px 45px #49306f12}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 10% 0%,#f4efff 0,transparent 32rem),#faf9fc;color:var(--ink);font-family:Nunito,system-ui,sans-serif}.topbar{height:76px;padding:0 max(24px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;background:#fffefaed;border-bottom:1px solid #eee9f3}.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none}.brand-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:var(--lavender);color:var(--purple);font-size:25px}.brand strong,.brand small{display:block}.brand strong{font-size:15px}.brand small{font-size:11px;color:var(--muted)}.live{font-size:12px;color:#716780;display:flex;align-items:center;gap:8px}.live i{width:8px;height:8px;border-radius:50%;background:#63bd83;box-shadow:0 0 0 4px #63bd831d}main{max-width:1120px;margin:auto;padding:44px 24px 18px}.hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 32px}.eyebrow{margin:0 0 8px;color:#987fd0;font-size:10px;font-weight:900;letter-spacing:.15em}.hero h1{font-family:'Patrick Hand',cursive;font-size:48px;line-height:1;margin:0 0 9px;letter-spacing:.01em}.hero h1 span{font-size:31px;color:#f2bd5c}.intro{margin:0;color:#766d84;font-size:14px}.note{position:relative;background:#fff4bf;box-shadow:0 9px 24px #44346212,4px 5px 0 #e8dda7;transform:rotate(1.2deg);padding:20px 23px 18px;min-width:215px}.tape{position:absolute;top:-9px;left:calc(50% - 33px);height:18px;width:66px;background:#d9cdf18a;transform:rotate(-3deg)}.welcome .note-icon{font-size:20px}.welcome strong,.welcome small{display:block}.welcome strong{font-family:'Patrick Hand',cursive;font-size:20px;margin:7px 0 2px}.welcome small{font-size:11px;color:#766d63}.calendar-shell{background:var(--paper);border:1px solid #eeeaf2;border-radius:23px;padding:27px 30px 25px;box-shadow:var(--shadow)}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.month-line{display:flex;align-items:center;gap:13px}.month-line h2{font-family:'Patrick Hand',cursive;font-size:32px;margin:0;min-width:130px}.arrow{border:1px solid var(--line);background:white;border-radius:12px;width:34px;height:34px;font-size:24px;line-height:1;color:#766a91;cursor:pointer}.arrow:hover{background:var(--lavender);color:var(--purple)}#year-label{margin:1px 0 0 47px;font-size:11px;color:#9b91a7}.today-button{border:1px solid #ded4f2;background:#f8f5ff;color:#7256ae;font:800 12px Nunito;padding:10px 16px;border-radius:11px;cursor:pointer}.legend{display:flex;align-items:center;gap:20px;margin:17px 0 14px;color:#766d84;font-size:11px}.legend span{display:flex;align-items:center;gap:7px}.legend i{width:11px;height:11px;border-radius:4px}.legend-father{background:#d9cafb}.legend-activity{background:#d3f0df}.legend-break{background:#ffe9ac}.weekday-grid,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekday-grid{padding:0 0 8px;border-bottom:1px solid #f0ecf3;color:#8d8399;font-size:11px;font-weight:800;text-align:center}.weekday-grid span:nth-last-child(-n+2){color:#ba9acb}.calendar-grid{padding-top:8px}.day{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:91px;padding:8px 8px 6px;border:1px solid #eeeaf2;border-radius:12px;background:#fffefa;color:var(--ink);text-align:left;cursor:pointer;overflow:hidden;transition:transform .15s,border-color .15s,box-shadow .15s}.day:not(.empty):hover{transform:translateY(-2px);border-color:#c7b5ed;box-shadow:0 5px 12px #60418b12;z-index:1}.day.empty{background:transparent;border-color:transparent;cursor:default}.day.weekend{background:#fcfaff}.day.is-break{background:#fffaf0}.day.is-father{border-color:#d9cafa;background:linear-gradient(145deg,#fbf8ff,#f5efff)}.day.is-today:after{content:'';position:absolute;inset:3px;border:1px dashed #b39bdd;border-radius:9px;pointer-events:none}.day-number{font-size:12px;font-weight:900}.day-tag{max-width:100%;font-size:9px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:6px;padding:3px 5px}.father-tag{background:#e8ddff;color:#6849aa}.activity-tag{background:#e5f6eb;color:#42775a}.day-holiday{font-size:8px;color:#a07a29;margin-top:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.bottom-row{display:grid;grid-template-columns:.95fr 1.05fr;gap:28px;align-items:start;margin:30px 8px}.message-note{background:#eaf7ee;box-shadow:0 9px 24px #44346210,4px 5px 0 #cce7d4;transform:rotate(-.5deg);padding:22px 24px}.note-heading{display:flex;align-items:center;gap:11px}.note-heading>span{font-size:24px}.note-heading strong,.note-heading small{display:block}.note-heading strong{font-family:'Patrick Hand',cursive;font-size:22px}.note-heading small{font-size:10px;color:#6f7d71;margin-top:2px}.message-note form{display:grid;gap:9px;margin-top:16px}.message-note input,.message-note textarea,.day-dialog input:not([type=checkbox]){width:100%;border:1px solid #d8e8dc;background:#fffefa;border-radius:9px;padding:10px 11px;font:500 12px Nunito;color:var(--ink);outline:none}.message-note input:focus,.message-note textarea:focus,.day-dialog input:focus{border-color:#9e80d3;box-shadow:0 0 0 3px #a98ade20}.message-note textarea{min-height:72px;resize:vertical}.send-button,.save-button{border:0;border-radius:10px;padding:11px 14px;background:#7458b7;color:white;font:800 12px Nunito;cursor:pointer;box-shadow:0 5px 12px #694bb42a}.send-button span{float:right;font-size:15px}.form-status{min-height:14px;margin:0;color:#7157a8;font-size:11px}.recent{padding:8px 0}.recent-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.recent-title h2{font-family:'Patrick Hand',cursive;font-size:27px;margin:0}.recent-title>span{font-size:22px}.recent-title .eyebrow{margin-bottom:3px}.message-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.message-card{position:relative;min-height:83px;padding:12px 14px;background:#fff0f6;border-radius:12px 9px 14px 8px;box-shadow:0 5px 14px #593e7010;transform:rotate(-.5deg)}.message-card.tone-1{background:#f1edff;transform:rotate(.7deg)}.message-card.tone-2{background:#fff7d9}.message-card small{font-size:9px;color:#93869e}.message-card p{font-family:'Patrick Hand',cursive;font-size:16px;line-height:1.25;margin:5px 0 0;overflow-wrap:anywhere}.pin{position:absolute;right:9px;top:6px;color:#ad91d8}.empty-state{color:#958ca0;font-size:12px;padding:8px}.bottom-row footer{}main>footer{text-align:center;padding:14px;color:#948aa0;font-size:11px}main>footer span{color:#8e70c3}.day-dialog{width:min(440px,calc(100% - 32px));border:1px solid #ebe5f2;border-radius:20px;padding:27px;background:#fffefa;color:var(--ink);box-shadow:0 25px 80px #261a4340}.day-dialog::backdrop{background:#30234266;backdrop-filter:blur(3px)}.dialog-close{position:absolute;right:16px;top:12px;border:0;background:transparent;color:#8a8097;font-size:28px;cursor:pointer}.dialog-date{display:flex;align-items:center;gap:12px;margin-bottom:20px}.dialog-date>span{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--lavender);font-size:20px}.dialog-date .eyebrow{margin:0 0 3px}.dialog-date h2{font-family:'Patrick Hand',cursive;font-size:24px;margin:0;text-transform:capitalize}.holiday-label{color:#a27d2d;font-size:11px;min-height:14px;margin:-11px 0 15px}.check-row{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid #e7ddf4;background:#f8f5ff;border-radius:12px;cursor:pointer}.check-row input{position:absolute;opacity:0}.check-custom{width:22px;height:22px;display:grid;place-items:center;background:#fff;border:1px solid #d8cbea;color:transparent;border-radius:7px}.check-row input:checked+.check-custom{background:#795dbd;border-color:#795dbd;color:white}.check-row strong,.check-row small{display:block}.check-row strong{font-size:13px}.check-row small{font-size:10px;color:#887d96;margin-top:2px}.field-label{display:block;margin:17px 0 7px;font-weight:800;font-size:11px}.save-button{width:100%;margin-top:13px}.save-button span{float:right}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){.topbar{height:64px;padding:0 18px}main{padding:27px 14px 15px}.hero{align-items:flex-start;margin-bottom:22px}.hero h1{font-size:38px}.intro{max-width:370px;font-size:12px;line-height:1.5}.welcome{display:none}.calendar-shell{padding:18px 12px;border-radius:18px}.month-line{gap:8px}.month-line h2{font-size:27px;min-width:112px}.arrow{width:31px;height:31px}.legend{gap:11px;flex-wrap:wrap;font-size:9px;margin:13px 0}.weekday-grid,.calendar-grid{gap:4px}.day{min-height:72px;padding:6px 4px;border-radius:9px;gap:3px}.day-number{font-size:11px}.day-tag{font-size:7px;padding:3px 4px}.day-holiday{font-size:6px}.bottom-row{grid-template-columns:1fr;gap:21px;margin:21px 4px}.message-note{max-width:none}.message-list{grid-template-columns:1fr 1fr}.today-button{padding:8px 10px;font-size:10px}}
@media(max-width:390px){.weekday-grid span{font-size:9px}.day{min-height:65px}.day-tag{font-size:6px}.day-holiday{font-size:5px}.calendar-shell{padding-inline:9px}}
.header-actions{display:flex;align-items:center;gap:15px}.install-button{border:1px solid #ded4f2;background:#f8f5ff;color:#7256ae;font:800 11px Nunito;padding:8px 12px;border-radius:10px;cursor:pointer}.update-banner{position:fixed;z-index:20;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:13px;width:min(520px,calc(100% - 28px));padding:13px 15px;border:1px solid #d9cbed;border-radius:16px;background:#fffefa;box-shadow:0 14px 45px #32234e30}.update-banner[hidden]{display:none}.update-sparkle{display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:12px;background:#eee7ff;color:#7455bf;font-size:20px}.update-copy{display:grid;gap:2px;flex:1}.update-copy strong{font-size:12px}.update-copy small{font-size:10px;color:#817794;line-height:1.35}.update-banner button{border:0;border-radius:10px;background:#7458b7;color:#fff;font:800 11px Nunito;padding:10px 13px;cursor:pointer;white-space:nowrap}@media(max-width:430px){.header-actions{gap:9px}.live{font-size:10px;gap:6px}.update-banner{gap:9px;padding:11px}.update-copy small{max-width:190px}}
.brand img{display:block;width:188px;height:62px;object-fit:contain}.brand{gap:8px}.brand>span small{font-size:10px;color:var(--muted);white-space:nowrap}.day-timeline{position:relative;display:block;width:100%;height:7px;min-height:7px;border-radius:99px;background:#eeeaf3;overflow:hidden}.day-timeline i{position:absolute;inset-block:0;border-radius:99px;background:linear-gradient(90deg,#a78be3,#7957c2)}.time-picker{position:fixed;z-index:30;width:min(410px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:17px;border:1px solid #ded3f1;border-radius:18px;background:#fffefa;color:var(--ink);box-shadow:0 18px 55px #30204438}.time-picker[hidden]{display:none}.picker-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.picker-head .eyebrow{margin:0 0 2px}.picker-head h2{margin:0;text-transform:capitalize;font:24px 'Patrick Hand',cursive}.picker-close{width:30px;height:30px;border:0;border-radius:9px;background:#f3effa;color:#6e5b91;font-size:22px;cursor:pointer}.period-choice{display:grid;gap:5px;margin-bottom:11px;font-size:10px;color:var(--muted)}.period-choice select,.time-choice input{min-width:0;border:1px solid #e3dced;border-radius:8px;background:white;padding:7px;font:11px Nunito;color:var(--ink)}.time-choice{display:grid;grid-template-columns:122px minmax(0,1fr);gap:9px;align-items:start;padding:10px 0;border-top:1px solid #f0ebf5}.time-choice>label{display:grid;grid-template-columns:1fr 1fr;gap:5px;font-size:11px;font-weight:800}.time-choice>label input{width:100%}.hour-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;max-height:94px;overflow:auto;padding:1px}.hour-options button{border:1px solid #ece6f4;border-radius:6px;background:#fff;padding:5px 1px;color:#746983;font:700 9px Nunito;cursor:pointer}.hour-options button:hover,.hour-options button.selected{border-color:#9d81d1;background:#eee7ff;color:#60449d}.picker-actions{display:flex;align-items:center;gap:7px;margin-top:8px}.picker-actions button{min-height:35px;padding:8px 10px;border:0;border-radius:9px;font:800 10px Nunito;cursor:pointer}.picker-actions .picker-note{background:#e9f5ed;color:#477356}.picker-actions .picker-delete{background:#fff0f0;color:#a55f66}.picker-actions .save-button{flex:1;margin:0;color:white;background:#7458b7}.picker-actions .save-button span{float:right}.time-picker .form-status{margin:6px 0 0}
@media(max-width:700px){.brand img{width:145px;height:48px}.brand>span small{font-size:9px}.time-picker{padding:13px;border-radius:15px}.time-choice{grid-template-columns:98px minmax(0,1fr);gap:6px}.hour-options{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px}.hour-options button{font-size:8px;padding:5px 0}.picker-actions{gap:5px}.picker-actions button{padding:8px 7px;font-size:9px}}
.picker-actions{flex-wrap:wrap}.picker-actions .save-button{min-width:85px}
.time-choice{grid-template-columns:1fr;gap:7px}.time-choice>label{grid-template-columns:68px minmax(0,1fr) minmax(0,1fr);align-items:center}.time-choice>label input:first-of-type{grid-column:2;grid-row:1}.time-choice>label input:last-of-type{grid-column:3;grid-row:1}.hour-options{max-height:116px}
@media(max-width:430px){.brand img{width:124px;height:42px}.brand>span{display:none}.live span{display:none}.header-actions{gap:10px}}
/* Zizi-style monthly grid with Leni's lavender paper palette. */
.weekday-grid,.calendar-grid{grid-template-columns:30px repeat(7,minmax(0,1fr));gap:0}
.weekday-grid{padding:0;border-bottom:0}
.weekday-grid span{display:grid;place-items:center;min-width:0;min-height:31px;border-right:1px solid #e5def0;border-bottom:1px solid #dcd3e9;background:#f8f5fc;font-size:10px}
.weekday-grid span:first-child,.week-head{background:#f0eafb;color:#8068a8;font-size:9px}
.weekday-grid span:nth-last-child(-n+2){color:#a07bb6}
.calendar-grid{padding-top:0;border-top:0;border-left:1px solid #e5def0}
.week-number,.day,.day.empty{position:relative;border:0;border-right:1px solid #e5def0;border-bottom:1px solid #e5def0;border-radius:0}
.week-number{display:grid;place-items:center;background:#f6f2fb;color:#8c77b2;font-size:10px;font-weight:800}
.day{min-height:78px;isolation:isolate}
.day.empty{background:#faf8fc}
.day.weekend{background:#fbf9fe}
.day.is-break{background:#fffaf0}
.day.is-father{background:#faf7ff}
.day.is-today:after{z-index:5}
.day-number,.day-tag,.day-holiday{position:relative;z-index:2}
.day.has-period .day-tag{margin-top:15px}
.time-fill{position:absolute;z-index:0;top:0;bottom:0;pointer-events:none;border-top:1px solid #9c7acc;border-bottom:1px solid #9c7acc;background:repeating-linear-gradient(135deg,#b89be8 0 3px,#d0bdf1 3px 6px);box-shadow:inset 1px 0 #ffffffa6,inset -1px 0 #7555aa66}
.time-caption{position:absolute;z-index:3;padding:2px 3px;border:1px solid #c8b5e5;border-radius:4px;background:#fffdfbe8;color:#62458e;font:700 7px/1.1 system-ui;white-space:nowrap;pointer-events:none;box-shadow:0 1px 2px #49336e24}
.time-caption.finish{color:#74599b}
@media(max-width:700px){.weekday-grid,.calendar-grid{grid-template-columns:23px repeat(7,minmax(0,1fr));gap:0}.weekday-grid span{min-height:27px;font-size:8px}.weekday-grid span:first-child,.week-head{font-size:7px}.week-number{font-size:8px}.day{min-height:69px;padding:6px 3px;border-radius:0}.day.has-period .day-tag{margin-top:14px}.time-caption{font-size:6px;padding:2px 1px}.day-tag{font-size:6px}}
/* Idősáv választó: parafa kártyák, szerephez kötött színek és tapintható naptárnapok. */
.day:not(.empty){background:linear-gradient(145deg,#fff 0%,#f7f4fb 100%);box-shadow:inset 1px 1px 2px #fff,0 2px 4px #5e4b7617,0 1px 1px #5e4b7610}
.day.weekend:not(.is-break):not(.is-father){background:linear-gradient(145deg,#fff 0%,#faf7ff 100%)}
.day.has-period{box-shadow:none}
.time-fill{border:0;box-shadow:inset 0 2px 7px #49346248,inset 0 -2px 6px #ffffff72}
.time-fill.pava{background:#bca3ec url('/assets/father-pencil-parchment-v1.webp') repeat 0 0/240px 240px;background-blend-mode:multiply}
.time-fill.nagyi{background:#f1a9c8 url('/assets/father-pencil-parchment-v1.webp') repeat 0 0/240px 240px;background-blend-mode:multiply;box-shadow:inset 0 2px 7px #8c3b6340,inset 0 -2px 6px #fff9}
.calendar-grid{position:relative}
.day.has-period{isolation:auto}
.relief-layer{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:visible;pointer-events:none}
.time-caption.nagyi{border-color:#e8aac2;color:#a34e75;background:#fff8fbe8}
.nagyi-tag{background:#fde2ec;color:#a34e75}
.companion-picker{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:8px 0 2px;padding:0;border:0}
.companion-picker legend{grid-column:1/-1;margin-bottom:1px;color:var(--muted);font-size:10px;font-weight:800}
.companion-choice{position:relative;display:flex;align-items:center;gap:8px;min-height:55px;padding:8px 10px;border:2px solid transparent;border-radius:11px;color:#443650;cursor:pointer;box-shadow:inset 0 2px 6px #38232235,0 2px 4px #46345420;background-color:#c6a37c;background-image:linear-gradient(#b99be988,#b99be988),url('/assets/father-pencil-parchment-v1.webp');background-position:center;background-size:cover;background-repeat:no-repeat}
.companion-choice input{position:absolute;width:1px;height:1px;opacity:0}
.companion-choice:focus-within{outline:3px solid #9475c5;outline-offset:2px}
.companion-choice.selected{border-color:#7250aa;box-shadow:inset 0 3px 8px #38232245,0 0 0 2px #fff,0 0 0 4px #9f83cb}
.companion-choice.nagyi-choice.selected{border-color:#bd638c;box-shadow:inset 0 3px 8px #38232245,0 0 0 2px #fff,0 0 0 4px #e69ab9}
.companion-emoji{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#fff9;font-size:22px;box-shadow:inset 0 1px 3px #513e3e22}
.companion-choice strong{font:700 12px 'Patrick Hand',cursive;text-shadow:0 1px 0 #fff9}
.calendar-modes{display:flex;align-items:center;gap:8px;margin:10px 0 12px}
.mode-button{display:grid;place-items:center;width:40px;height:36px;border:1px solid #dfd7ed;border-radius:11px;background:#fff;color:#766a8d;font:700 19px/1 system-ui;cursor:pointer;box-shadow:0 2px 5px #49336e0c;transition:background .15s,border-color .15s,transform .15s}
.mode-button:hover{transform:translateY(-1px);border-color:#bfaddc}
.mode-button.active{border-color:#8e70c5;background:#ede5fa;color:#6849a4;box-shadow:inset 0 1px 4px #6b4c9830,0 0 0 2px #d6c8ee}
.event-time-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.event-time-fields label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:800}
.event-time-fields input{width:100%;min-width:0}
.event-dialog{max-height:calc(100dvh - 32px);overflow:auto}
@media(max-width:430px){.companion-choice{min-height:51px;padding:6px 7px;gap:6px}.companion-emoji{width:30px;height:30px;font-size:19px}.companion-choice strong{font-size:11px}}
/* Keep the floating editor inside the phone's visible viewport. */
@media(max-width:700px){
  html,body{overflow-x:hidden}
  main{padding:12px 10px 15px}
  .calendar-shell{padding:14px 8px;border-radius:16px}
  .time-picker{width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:80dvh;padding:14px;overflow-x:hidden;overscroll-behavior:contain}
  .time-choice{min-width:0;width:100%;grid-template-columns:minmax(0,1fr);gap:6px;padding:9px 0}
  .time-choice>label{width:100%;min-width:0;grid-template-columns:minmax(0,1fr);gap:8px}
  .time-choice>label>span{grid-column:1}
  .time-choice>label input:first-of-type,.time-choice>label input:last-of-type{grid-column:auto;grid-row:auto}
  .time-choice>label input{display:block;width:100%;min-width:0;max-width:100%;padding:8px 5px;font:400 16px/1.2 system-ui,sans-serif}
  .period-choice select{width:100%;min-width:0;font:400 16px/1.2 system-ui,sans-serif}
  .companion-picker{width:100%;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .companion-choice{width:100%;min-width:0;overflow:hidden;gap:5px;padding:6px}
  .companion-choice strong{min-width:0;white-space:nowrap}
  .picker-actions{width:100%;min-width:0;gap:5px}
  .picker-actions button{min-width:0;max-width:100%;padding-inline:7px}
  .picker-actions .save-button{flex:1 1 105px}
  .time-picker input,.time-picker select,.message-note input,.message-note textarea,.day-dialog input,.day-dialog textarea,.day-dialog select{font-size:16px}
}
/* The calendar is the only page section and fills the available screen. */
:root{--topbar-height:76px}
body{display:flex;min-height:100dvh;flex-direction:column}
.topbar{flex:0 0 var(--topbar-height)}
main{display:flex;width:100%;max-width:none;height:calc(100dvh - var(--topbar-height));min-height:0;margin:0;padding:10px 14px 14px}
.calendar-shell{display:flex;flex:1;flex-direction:column;width:100%;min-height:0;padding:clamp(14px,2.3vh,25px) clamp(12px,2.5vw,30px)}
.calendar-grid{flex:1;min-height:0;grid-auto-rows:minmax(0,1fr)}
.day{min-height:0}
.legend-break{background:#cfe6cf}
.legend-inactive{background:#dfe1e6}
.day.is-inactive{background:linear-gradient(145deg,#f2f3f5,#e6e8ec)!important;color:#65636b}
.day.weekend,.day.is-break{background:linear-gradient(145deg,#f0f8ef,#e2f0e1)!important}
@media(max-width:700px){
  :root{--topbar-height:64px}
  main{padding:6px 7px 8px}
  .calendar-shell{padding:12px 6px;border-radius:15px}
  .calendar-modes{margin:7px 0 9px;gap:7px}
  .mode-button{width:38px;height:34px}
  .event-time-fields{grid-template-columns:1fr}
  .calendar-head{margin-bottom:8px}
  .legend{gap:7px 11px;margin:8px 0;font-size:9px}
  .weekday-grid span{min-height:26px}
  .calendar-grid{min-height:0}
  .day{min-height:0;padding:5px 3px}
}
/* A naptár betűmérete a fejléc vezérlőivel állítható, és eszközönként megmarad. */
:root{--calendar-font-scale:1}
.month-line h2{font-size:calc(32px * var(--calendar-font-scale))}
#year-label{font-size:calc(11px * var(--calendar-font-scale))}
.weekday-grid span{font-size:calc(10px * var(--calendar-font-scale))}
.weekday-grid span:first-child,.week-head{font-size:calc(9px * var(--calendar-font-scale))}
.week-number{font-size:calc(10px * var(--calendar-font-scale))}
.day-number{font-size:calc(12px * var(--calendar-font-scale))}
.day-tag{font-size:calc(9px * var(--calendar-font-scale))}
.day-holiday{font-size:calc(8px * var(--calendar-font-scale))}
.time-caption{font-size:calc(7px * var(--calendar-font-scale))}
.calendar-modes{flex-wrap:wrap}
.toolbar-divider{height:24px;width:1px;margin:0 2px;background:#e5def0}
.font-size-button{display:grid;place-items:center;min-width:40px;height:36px;padding:0 8px;border:1px solid #dfd7ed;border-radius:11px;background:#fff;color:#766a8d;font:800 14px/1 system-ui;cursor:pointer;box-shadow:0 2px 5px #49336e0c}
.font-size-button:hover:not(:disabled){border-color:#bfaddc;background:#f8f5ff}
.font-size-button:disabled{opacity:.42;cursor:default}
@media(max-width:700px){
  .month-line h2{font-size:calc(27px * var(--calendar-font-scale))}
  .weekday-grid span{font-size:calc(8px * var(--calendar-font-scale))}
  .weekday-grid span:first-child,.week-head{font-size:calc(7px * var(--calendar-font-scale))}
  .week-number{font-size:calc(8px * var(--calendar-font-scale))}
  .day-number{font-size:calc(11px * var(--calendar-font-scale))}
  .day-tag{font-size:calc(6px * var(--calendar-font-scale))}
  .day-holiday{font-size:calc(6px * var(--calendar-font-scale))}
  .time-caption{font-size:calc(6px * var(--calendar-font-scale))}
  .font-size-button{min-width:35px;height:34px;padding-inline:6px}
}
/* A Zizi naptár mai nap jelölése lila változatban; koppintás nem hagy fókuszkeretet. */
.day.is-today:after{content:none}
.day.is-today{z-index:3;box-shadow:inset 0 0 0 2px #8a6cbb}
.day.is-today .day-number{color:#6849a4}
.day.is-today .day-number:before{content:'';display:inline-block;width:4px;height:4px;margin:0 4px 3px 0;border-radius:50%;background:#8a6cbb}
.day-holiday{z-index:4;max-width:100%;padding:2px 4px;border:1px solid #d9e5d6;border-radius:4px;background:#fffefaed;color:#354638;font-size:calc(8px * var(--calendar-font-scale));font-weight:800;line-height:1.2;box-shadow:0 1px 2px #30234220}
.event-dialog:focus{outline:none}
.day:not(.empty):hover,.day:not(.empty):active{z-index:auto;transform:none;box-shadow:none}
.day.is-today{z-index:3;box-shadow:inset 0 0 0 2px #8a6cbb}
.day:focus{outline:none}
.day:focus-visible{outline:2px solid #8a6cbb;outline-offset:-3px}
@media(max-width:700px){.day-holiday{padding:1px 2px;font-size:calc(6px * var(--calendar-font-scale))}}
.day-holiday{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#75581f;font-weight:800;text-shadow:0 1px 1px #fff,0 0 2px #fff}
.day-holiday.on-pava{color:#392754}
.day-holiday.on-nagyi{color:#68243f}
.day-holiday.on-mixed{color:#30223f}
.event-existing{margin:0 0 16px;padding:12px;border:1px solid #e9e3f1;border-radius:12px;background:#faf8fd}
.event-existing[hidden]{display:none}
.event-existing h3{margin:0 0 8px;color:#817794;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.event-existing-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid #ece7f2}
.event-existing-item>span{display:grid;gap:2px;min-width:0}
.event-existing-item strong{overflow:hidden;color:#403650;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.event-existing-item small{color:#817794;font-size:10px}
.event-existing-item button{flex:0 0 auto;border:1px solid #e7cbd2;border-radius:8px;padding:7px 9px;background:#fff7f8;color:#963c56;font:800 11px Nunito;cursor:pointer}
.event-existing-item button:disabled{opacity:.55}
@media(max-width:700px){.event-dialog input:not([type=checkbox]),.event-dialog select,.event-dialog textarea{font-size:16px!important}}
.day-tag.event-postit{position:relative;display:grid;justify-items:center;gap:1px;width:max-content;max-width:calc(100% - 2px);min-width:0;margin:2px auto 3px;padding:3px 4px;border:0;border-radius:1px 2px 5px 2px;background:linear-gradient(170deg,#fff4bd,#f5df86);color:#5c4a1f;box-shadow:0 1px 1px #57432c24,1px 4px 3px -1px #57432c42,inset 0 1px #ffffffa6;transform:rotate(-.7deg);transform-origin:50% 5%;white-space:normal;overflow:hidden;text-overflow:clip;line-height:1.1}
.day-tag.event-postit::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(180deg,#68502e0f 0 22%,transparent 30% 75%,#ffffff42),repeating-linear-gradient(8deg,#ffffff1c 0 1px,transparent 1px 3px)}
.day-tag.event-postit::after{content:"";position:absolute;right:0;bottom:0;width:7px;height:7px;pointer-events:none;background:linear-gradient(135deg,transparent 45%,#ffffffa6 49%,#80684618);border-radius:0 0 4px 0}
.day-tag.event-postit small,.day-tag.event-postit strong{position:relative;z-index:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.day-tag.event-postit small{font-size:.82em;font-weight:800;line-height:1.05}
.day-tag.event-postit strong{color:#53431f;font-weight:900;text-align:center;line-height:1.12;overflow-wrap:anywhere}
@media(max-width:700px){.day-tag.event-postit{gap:1px;padding:2px 2px;transform:rotate(-.4deg);box-shadow:0 1px 1px #57432c24,1px 3px 2px -1px #57432c3b,inset 0 1px #ffffffa6}.day-tag.event-postit small{font-size:.85em}}
.month-line h2{min-width:0;font-size:24px;white-space:nowrap}
#year-label{margin:0;color:#9b91a7;font-size:12px;white-space:nowrap}
.font-controls{display:flex;align-items:center;gap:7px;margin-left:auto;padding-left:12px;border-left:1px solid #e5def0}
@media(max-width:700px){.month-line{gap:8px}.month-line h2{font-size:22px}.font-controls{gap:6px;padding-left:9px}}
.day.is-inactive{background:linear-gradient(145deg,#fff 0%,#f7f4fb 100%)!important;color:inherit}
.day.empty{background:linear-gradient(145deg,#f2f3f5,#e6e8ec)!important}
.day.is-inactive.weekend,.day.is-inactive.is-break{background:linear-gradient(145deg,#f0f8ef,#e2f0e1)!important}
