:root{--ink:#16353a;--muted:#718287;--blue:#0b6670;--lav:#e2a12b;--mint:#2fb7a4;--coral:#f56f5d;--yellow:#f4b43d;--line:#e3eceb;--soft:#f5faf9;--shadow:0 18px 50px rgba(22,53,58,.08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:#f6faf9;color:var(--ink)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:#fff;border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column;z-index:10}.wordmark{display:flex;align-items:center;gap:12px;font-size:25px;font-weight:900;padding:0 10px 24px}.logo-box{width:82px;height:82px;border-radius:28px;background:linear-gradient(135deg,var(--blue),var(--lav));display:grid;place-items:center;color:#fff;font-size:42px;font-weight:900;box-shadow:0 15px 35px rgba(11,102,112,.20);transform:rotate(-4deg)}.logo-box.small{width:42px;height:42px;border-radius:14px;font-size:23px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:12px 14px;border-radius:14px;color:var(--muted);font-weight:750;display:flex;gap:12px;align-items:center}.sidebar nav a:hover,.sidebar nav a.active{background:#e8f4f3;color:var(--blue)}.sidebar nav span{font-size:20px}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:18px 8px 0}.profile-mini{display:flex;align-items:center;gap:10px}.profile-mini div{display:grid}.profile-mini small{color:var(--muted);margin-top:2px}.avatar{width:38px;height:38px;border-radius:13px;background:var(--member-color);color:#fff;display:grid;place-items:center;font-weight:900}.avatar.big{width:64px;height:64px;border-radius:21px;font-size:20px}.link-button{border:0;background:none;color:#c34f4f;font-weight:800;padding:12px 0}.main{margin-left:250px;padding:32px 38px 60px;max-width:1600px}.topbar{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:26px}.topbar h1{font-size:36px;margin:2px 0 5px}.topbar p{color:var(--muted);margin:0}.eyebrow{font-size:11px!important;letter-spacing:.13em;color:var(--blue)!important;font-weight:900;margin:0 0 6px!important}.quick-actions{display:flex;gap:10px}.btn{border:0;border-radius:14px;padding:12px 17px;font-weight:850}.btn.primary{background:var(--blue);color:#fff}.btn.light{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.wide{width:100%;margin-top:10px}.alert{padding:13px 16px;border-radius:14px;margin:0 0 18px;font-weight:750}.alert.success{background:#e7f8f0;color:#237455}.alert.error{background:#ffeded;color:#a44444}.hero{background:linear-gradient(130deg,#0b6670,#16818a 58%,#2fa99c);border-radius:30px;padding:34px 38px;color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 24px 60px rgba(11,102,112,.20);overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:270px;height:270px;border:45px solid rgba(255,255,255,.09);border-radius:50%;right:-70px;top:-95px}.hero h2{font-size:34px;line-height:1.12;margin:8px 0 10px}.hero p{opacity:.85}.hero-kicker{font-size:11px;font-weight:900;letter-spacing:.15em}.hero-date{position:relative;z-index:1;background:rgba(255,255,255,.17);border:1px solid rgba(255,255,255,.22);border-radius:25px;padding:18px 26px;text-align:center;backdrop-filter:blur(8px)}.hero-date b{display:block;font-size:46px}.hero-date span{font-weight:900}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.stat{padding:17px;background:#fff;border:1px solid var(--line);border-radius:20px;display:flex;align-items:center;gap:13px}.stat>span{width:45px;height:45px;border-radius:15px;display:grid;place-items:center;font-size:21px}.stat div{display:grid}.stat b{font-size:23px}.stat small{color:var(--muted)}.stat.blue>span{background:#e8f4f3}.stat.coral>span{background:#ffeaea}.stat.yellow>span{background:#fff4d7}.stat.mint>span{background:#e4faf5}.two-col{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.panel-head h3,.panel h3{font-size:21px;margin:0}.panel-head a{color:var(--blue);font-weight:800;font-size:13px}.timeline-item{display:grid;grid-template-columns:55px 14px 1fr;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.timeline-item time{font-weight:900;display:grid}.timeline-item time small{font-size:10px;color:var(--muted);font-weight:600}.timeline-item i,.feed-row i,.chip i,.member-card>i{width:9px;height:9px;border-radius:50%;background:var(--dot);display:block}.timeline-item div{display:grid}.timeline-item small,.reminder-row small,.feed-row small{color:var(--muted);margin-top:3px}.reminder-row{display:flex;gap:12px;padding:13px;border-radius:16px;margin:8px 0;background:#f8f9fc}.reminder-row div{display:grid}.priority-important{border-left:4px solid var(--coral)}.priority-normal{border-left:4px solid var(--lav)}.priority-quiet{border-left:4px solid var(--blue)}.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.chip{border:1px solid var(--line);background:#fff;padding:9px 12px;border-radius:999px;font-weight:750;color:var(--muted);display:flex;gap:7px;align-items:center}.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.calendar-layout{display:grid;grid-template-columns:minmax(580px,1.35fr) minmax(350px,.8fr);gap:18px}.month-card,.agenda-panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:20px}.month-head{display:flex;justify-content:space-between;align-items:center}.month-head h3{font-size:22px}.month-head button{border:0;background:#f3f5fa;width:38px;height:38px;border-radius:12px}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.month-weekdays span{text-align:center;color:var(--muted);font-size:11px;font-weight:900;padding:12px 0}.day{min-height:82px;border-radius:13px;padding:9px;background:#fafbfe;border:1px solid transparent}.day:hover{border-color:#b7d9d6}.day.today{background:#e8f4f3;color:var(--blue);border-color:#b7d9d6}.day div{display:flex;gap:3px;margin-top:8px}.day i{width:6px;height:6px;border-radius:50%;background:var(--dot)}.muted-day{opacity:.3}.agenda-panel{max-height:750px;overflow:auto}.agenda-day{display:grid;grid-template-columns:50px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.agenda-date{text-align:center}.agenda-date b{display:block;font-size:24px}.agenda-date span{color:var(--muted);font-size:10px;font-weight:900}.agenda-items{display:grid;gap:8px}.agenda-items article{border-left:4px solid var(--event-color);background:#f8f9fc;border-radius:0 13px 13px 0;padding:11px;display:grid;grid-template-columns:70px 1fr;gap:8px}.agenda-items time{font-size:11px;color:var(--muted);font-weight:800}.agenda-items div{display:grid}.agenda-items small{color:var(--muted);margin-top:3px}.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.kanban-col{background:#f0f3f8;border-radius:22px;padding:15px;min-height:500px}.kanban-head{display:flex;align-items:center;gap:9px;padding:3px 4px 12px}.kanban-head h3{margin:0}.dot{width:10px;height:10px;border-radius:50%}.dot.coral{background:var(--coral)}.dot.yellow{background:var(--yellow)}.dot.blue{background:var(--blue)}.task-card{background:#fff;border-radius:17px;padding:15px;margin-bottom:10px;box-shadow:0 8px 25px rgba(31,42,68,.06)}.task-card h4{font-size:16px;margin:9px 0}.task-card p{color:var(--muted);font-size:13px}.task-top{display:flex;justify-content:space-between}.task-top small{color:var(--muted)}.kanban-empty{color:var(--muted);font-size:13px;text-align:center;padding:28px 10px;margin:0}.task-actions{display:flex;gap:6px;margin-top:12px}.task-actions form{flex:1}.mini{border:0;background:#e8f4f3;color:var(--blue);border-radius:10px;padding:8px;width:100%;font-weight:850;font-size:12px}.mini.success{background:#e7f8f0;color:#28785a}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.occasion-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:19px;display:flex;gap:15px}.occasion-icon{width:52px;height:52px;background:#fff3d5;border-radius:17px;display:grid;place-items:center;font-size:25px}.occasion-card h3{margin:3px 0}.occasion-card p,.occasion-card small{color:var(--muted)}.floating-add{position:fixed;right:32px;bottom:28px;background:var(--blue);color:#fff;border:0;border-radius:18px;padding:15px 20px;font-weight:900;box-shadow:0 16px 40px rgba(11,102,112,.28)}.family-intro{background:linear-gradient(120deg,#eaf7f5,#fff7e8);border:1px solid #d7e9e6;border-radius:24px;padding:25px;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.family-intro h2{margin:3px 0}.family-intro p{color:var(--muted)}.admin-badge{background:#fff;color:var(--lav);padding:9px 13px;border-radius:999px;font-weight:900}.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.member-card{background:#fff;border:1px solid var(--line);border-radius:21px;padding:17px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px}.member-card h3{margin:0 0 3px}.member-card p{margin:0;color:var(--muted);font-size:13px}.role{display:inline-block;margin-top:7px;padding:4px 8px;border-radius:999px;background:#f1f3f8;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase}.member-card.inactive{opacity:.5}.security-card{display:flex;gap:14px;background:#e8f8f2;border:1px solid #c8eadc;border-radius:20px;padding:18px;margin-top:17px}.security-card>span{font-size:27px}.security-card h3{margin:0}.security-card p{margin:5px 0 0;color:var(--muted)}.secret-link{background:#f4f6fa;border-radius:14px;padding:13px;margin-top:14px}.secret-link small{color:var(--muted);font-weight:900}.secret-link code{display:block;margin-top:8px;overflow-wrap:anywhere;color:var(--blue)}.warning{color:#a66c13;font-size:12px;background:#fff7df;padding:10px;border-radius:11px}.feed-row{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.feed-row div{display:grid}.muted,.empty{color:var(--muted)}.modal{position:fixed;inset:0;background:rgba(20,28,48,.55);display:none;place-items:center;padding:20px;z-index:30}.modal.show{display:grid}.modal-card{background:#fff;width:min(570px,100%);max-height:92vh;overflow:auto;border-radius:27px;padding:25px;position:relative;box-shadow:0 30px 90px rgba(10,18,40,.25)}.modal-close{position:absolute;right:16px;top:14px;border:0;background:#f1f3f7;border-radius:50%;width:36px;height:36px;font-size:22px}.modal-card h2{margin:4px 0 18px}.modal-card form{display:grid;gap:12px}label{display:grid;gap:6px;font-size:12px;font-weight:850}input,textarea,select{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fafbfe;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(11,102,112,.12)}textarea{min-height:80px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px}.check input{width:auto}.login-body{background:linear-gradient(130deg,#edf8f6,#fff9ee);min-height:100vh;display:grid;place-items:center;padding:25px}.login-shell{width:min(1040px,100%);min-height:650px;background:#fff;border-radius:34px;display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden;box-shadow:0 35px 100px rgba(31,42,68,.15)}.brand-panel{padding:55px;background:linear-gradient(145deg,#0b6670,#147983 58%,#2b9e91);color:#fff;display:flex;flex-direction:column;justify-content:center}.brand-panel h1{font-size:50px;margin:20px 0 3px}.brand-panel>p{font-size:18px;opacity:.8;margin-bottom:35px}.login-feature{display:flex;align-items:center;gap:13px;margin:10px 0}.login-feature>span{width:47px;height:47px;border-radius:15px;background:rgba(255,255,255,.15);display:grid;place-items:center;font-size:21px}.login-feature div{display:grid}.login-feature small{opacity:.75;margin-top:3px}.login-card{padding:60px 55px;display:flex;flex-direction:column;justify-content:center}.login-card h2{font-size:31px;margin:3px 0 8px}.login-card form{display:grid;gap:14px;margin-top:20px}.security-note{text-align:center;color:var(--muted);font-size:12px;margin-top:18px}.mobile-brand{display:none}.wall-mode .main{margin:0;max-width:none;padding:26px}.wall-top{display:flex;justify-content:space-between;align-items:center}.wall-top>div{display:flex;gap:18px;align-items:center}.wall-top strong{font-size:22px}.wall-top span{font-size:25px;font-weight:900}.wall-hero{margin:22px 0;background:linear-gradient(120deg,#0b6670,#2fa99c);color:#fff;border-radius:28px;padding:28px;display:flex;justify-content:space-between;align-items:center}.wall-hero h1{font-size:42px;margin:3px 0}.wall-hero p{opacity:.8}.family-dots{display:flex}.family-dots span{width:48px;height:48px;border-radius:16px;background:var(--member-color);display:grid;place-items:center;font-weight:900;margin-left:-7px;border:3px solid rgba(255,255,255,.6)}.wall-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.wall-panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px}.wall-panel.wide{grid-column:1/-1}.wall-panel h2{margin-top:0}.wall-panel>article{display:grid;grid-template-columns:150px 1fr;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.wall-panel time{color:var(--muted)}.wall-occasions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.wall-occasions article{display:flex;gap:12px;background:#fff7df;padding:14px;border-radius:16px}.wall-occasions article>span{font-size:25px}.wall-occasions div{display:grid}.wall-occasions small{color:var(--muted)}@media(max-width:1050px){.sidebar{width:210px}.main{margin-left:210px;padding:25px}.stats-grid{grid-template-columns:repeat(2,1fr)}.two-col,.calendar-layout{grid-template-columns:1fr}.member-grid,.cards-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{position:static;width:auto;height:auto;padding:12px}.wordmark{padding:0 6px 10px}.sidebar nav{display:flex;overflow:auto}.sidebar nav a{white-space:nowrap}.sidebar-bottom{display:none}.main{margin:0;padding:18px}.topbar{align-items:flex-start;gap:14px}.topbar h1{font-size:29px}.quick-actions{flex-direction:column}.hero{padding:25px}.hero h2{font-size:27px}.hero-date{display:none}.stats-grid,.two-col,.kanban,.cards-grid,.member-grid,.wall-grid{grid-template-columns:1fr}.calendar-layout{display:block}.month-card{overflow:auto}.month-weekdays,.month-grid{min-width:620px}.login-shell{grid-template-columns:1fr;min-height:auto}.brand-panel{display:none}.login-card{padding:38px 25px}.mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:30px;font-size:23px}.form-grid{grid-template-columns:1fr}.wall-panel.wide{grid-column:auto}.wall-occasions{grid-template-columns:1fr}}

/* Kalenderinteraktion v0.1.2 */
.month-nav{border:0;background:#f3f5fa;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:20px;font-weight:800}.month-nav:hover{background:#e9edfb}.day{appearance:none;text-align:left;color:inherit;font:inherit;width:100%;cursor:pointer}.day.selected{outline:2px solid var(--blue);outline-offset:-2px;background:#eef3ff}.day-title{display:block;margin-top:7px;font-size:10px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.day-more{font-size:9px;color:var(--muted);font-weight:900}.day.filtered-empty .day-title{opacity:.35}.calendar-empty{padding:20px 4px}.agenda-day[hidden],.agenda-items article[hidden],[data-event-category][hidden]{display:none!important}
@media(max-width:1050px){.day-title{display:none}}
.task-top-right{display:flex;align-items:center;gap:8px}.task-edit{width:30px;height:30px;border:0;border-radius:9px;background:#f1f4fb;color:var(--blue);font-weight:900;line-height:1}.task-edit:hover{background:#e4ebff}.edit-modal-actions{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:8px}.btn.danger{background:#fff0f0;color:#b44545;border:1px solid #ffd3d3}@media(max-width:520px){.edit-modal-actions{grid-template-columns:1fr}.edit-modal-actions .btn{width:100%}}

.occasion-content{flex:1;min-width:0}.occasion-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.occasion-card-head .eyebrow{margin:0}.occasion-date{margin:12px 0 9px}.occasion-meta{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.occasion-meta strong,.occasion-meta span{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:11px}.occasion-meta strong{background:#e8f4f3;color:var(--blue)}.occasion-meta span{background:#fff5dc;color:#9b6a12}.occasion-note{display:block;margin-top:11px;line-height:1.45}.empty-state{background:#fff;border:1px dashed #ccd5e8;border-radius:22px;padding:40px;text-align:center}.empty-state>span{font-size:36px}.empty-state h3{margin:10px 0 5px}.empty-state p{color:var(--muted);margin:0 0 17px}

/* Familie v0.1.6 */
.family-summary{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.family-summary span{background:#fff;padding:9px 13px;border-radius:999px;color:var(--muted);font-size:12px;font-weight:750}.family-summary b{color:var(--lav);font-size:15px}.member-card-actions{display:flex;align-items:center;gap:9px}.member-color-dot{width:10px;height:10px;border-radius:50%;background:var(--dot);display:block}.you-label{display:inline-block;margin-left:5px;color:var(--blue);font-size:10px;text-transform:uppercase}.member-status{display:inline-block;margin:7px 0 0 5px;padding:4px 8px;border-radius:999px;background:#fff3d5;color:#946d10;font-size:10px;font-weight:900;text-transform:uppercase}.color-field{display:flex;align-items:center;gap:10px;min-height:43px;border:1px solid var(--line);border-radius:13px;padding:7px 10px;background:#fafbfe;color:var(--muted);font-weight:700}.color-field input[type=color]{width:38px;height:28px;padding:0;border:0;background:transparent;box-shadow:none}.form-help{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.task-edit{border:0;background:#f1f3f8;color:var(--muted);width:30px;height:30px;border-radius:9px;font-weight:900;cursor:pointer}.task-edit:hover{background:#e8edff;color:var(--blue)}
@media(max-width:760px){.family-intro{align-items:flex-start;gap:18px;flex-direction:column}.family-summary{justify-content:flex-start}.member-card{grid-template-columns:auto 1fr}.member-card-actions{grid-column:2;justify-content:flex-end}}


/* Kalenderforbindelser v0.1.7 */
.connection-grid{align-items:start}.connection-panel{min-height:330px}.panel-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.btn.compact{padding:9px 12px;border-radius:11px;font-size:12px}.secure-secret code{filter:none;min-height:36px}.secret-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.inline-form{margin-top:12px}.connection-guide{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}.connection-guide h4{margin:0 0 8px}.connection-guide details{border-bottom:1px solid var(--line);padding:10px 0}.connection-guide summary{font-weight:850;cursor:pointer}.connection-guide p{color:var(--muted);font-size:13px;line-height:1.5;margin:8px 0 2px}.feed-card{display:grid;grid-template-columns:10px 1fr auto;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.feed-card.inactive{opacity:.62}.feed-color{width:10px;height:36px;border-radius:999px;background:var(--dot)}.feed-main{min-width:0}.feed-heading{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.feed-main small{display:block;color:var(--muted);margin-top:5px}.sync-status{font-size:10px;font-weight:900;padding:4px 7px;border-radius:999px}.sync-status.ok{background:#e6f8ef;color:#26765a}.sync-status.error{background:#ffeded;color:#a44444}.sync-status.off{background:#f0f2f6;color:#758096}.feed-error{font-size:12px;color:#a44444;margin:7px 0 0;overflow-wrap:anywhere}.feed-actions{display:flex;align-items:center;gap:7px}.feed-actions form{margin:0}.icon-btn{width:30px;height:30px;border:0;border-radius:9px;background:#f1f3f8;color:var(--blue);font-size:18px;font-weight:900}.compact-state{padding:28px 18px;margin-top:18px}.compact-state h3{margin:8px 0 4px}.compact-state p{margin-bottom:14px}@media(max-width:760px){.panel-title-row{align-items:flex-start}.feed-card{grid-template-columns:8px 1fr}.feed-actions{grid-column:2;justify-content:flex-end}.secret-actions .btn{flex:1}}

/* Vægvisning v0.1.8 */
.wall-top-tools{display:flex;gap:18px;align-items:center}.wall-date{color:var(--muted);font-weight:750;text-transform:capitalize}.wall-fullscreen{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:13px;font-size:22px;cursor:pointer}.wall-content{transition:opacity .2s ease}.family-dots{gap:13px;align-items:flex-start}.family-person{display:grid;justify-items:center;gap:5px}.family-person i{font-style:normal;width:48px;height:48px;border-radius:16px;background:var(--member-color);display:grid;place-items:center;font-weight:900;border:3px solid rgba(255,255,255,.6)}.family-person small{font-size:11px;color:#fff;font-weight:800;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wall-panel>article time{display:grid}.wall-panel>article time small{margin-top:3px;font-size:12px}.wall-panel>article>div{display:grid;gap:5px}.wall-overdue{border-left:5px solid var(--coral);padding-left:12px!important}.overdue-label{color:#c94f59;font-weight:900;font-size:12px}.wall-evening.wall-mode{background:#101625;color:#edf2ff}.wall-evening .wall-panel,.wall-evening .wall-top .wall-fullscreen{background:#182033;border-color:#2b3650}.wall-evening .wall-panel>article{border-color:#2b3650}.wall-evening .wall-panel time,.wall-evening .wall-date,.wall-evening .empty{color:#aebbd3}.wall-evening .wall-occasions article{background:#29283a}.wall-evening .wall-top a{color:#d9e2f5}@media(max-width:760px){.wall-top-tools{gap:10px}.wall-date{display:none}.family-dots{flex-wrap:wrap;justify-content:flex-end}.family-person small{display:none}}

/* Vægvisning må aldrig kunne dækkes af formularvinduer fra andre sider. */
html.tidora-wall-active .modal{display:none!important}

/* v0.2.0: standalone wall layout */
body.wall-mode{margin:0;min-height:100vh;background:#f6faf9}.wall-standalone{width:100%;max-width:none;margin:0;padding:18px 14px 32px}.wall-standalone .wall-top{padding:0 2px}.wall-standalone .wall-content{width:100%}.wall-standalone .wall-hero{margin-top:22px}.wall-standalone .wall-grid{width:100%}html.tidora-wall-active .sidebar,body[data-page="wall"] .sidebar,body[data-page="wall"] .topbar,body[data-page="wall"] .modal{display:none!important}

.dashboard-overdue{background:#fff5f5;border-left-color:var(--coral)!important}.dashboard-overdue .overdue-label{margin-top:4px;color:#c94f59;font-weight:900}

/* Familieoversigt v0.3.0 */
.planning-section{margin-top:24px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px}.planning-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.planning-card{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:15px;padding:13px}.planning-card>i,.person-check i{width:11px;height:11px;border-radius:50%;background:var(--dot)}.planning-card div{display:grid}.planning-card small{color:var(--muted);margin-top:3px}.person-picker{border:1px solid var(--line);border-radius:16px;padding:13px;margin:14px 0}.person-picker legend{font-weight:900;padding:0 6px}.person-checks{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.person-check{display:flex;align-items:center;gap:7px;background:#f6f8fc;border:1px solid var(--line);border-radius:999px;padding:8px 11px;font-weight:800}.group-select{border:1px solid #d9dfff;background:#f0edff;color:var(--lav);border-radius:999px;padding:7px 11px;font-weight:900;margin:6px 6px 0 0}.group-select.active{background:var(--lav);color:#fff}.family-week-toolbar{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:16px}.family-week-toolbar>div{text-align:center}.family-week{display:grid;grid-template-columns:150px repeat(7,minmax(145px,1fr));background:#fff;border:1px solid var(--line);border-radius:20px;overflow:auto;min-height:500px}.family-week-head{padding:13px;text-align:center;background:#f5f7fb;border-left:1px solid var(--line);display:grid;gap:3px}.family-week-head span{font-weight:900}.person-column{text-align:left;border-left:0}.family-person-cell{display:flex;align-items:center;gap:9px;padding:13px;border-top:1px solid var(--line)}.family-person-cell i{width:13px;height:13px;border-radius:50%;background:var(--dot)}.family-day-cell{padding:7px;border-top:1px solid var(--line);border-left:1px solid var(--line);min-height:105px}.is-today{background:#eef4ff}.family-day-cell article{border:1px solid var(--line);border-left:5px solid var(--event-color);border-radius:11px;padding:8px;background:#fff;margin-bottom:6px;display:grid;gap:4px}.family-day-cell small{color:var(--muted)}.family-week-help{color:var(--muted);margin-top:12px}.family-week:fullscreen{background:#f6faf9;padding:16px;width:100vw;height:100vh;border-radius:0}.family-week:fullscreen .family-day-cell{min-height:130px}@media(max-width:1050px){.planning-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.planning-cards{grid-template-columns:1fr}.family-week-toolbar{flex-wrap:wrap}.family-week{grid-template-columns:120px repeat(7,140px)}}

/* v0.3.1 · redigering af aftaler */
.editable-event{position:relative;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.editable-event:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(31,42,68,.09)}.event-edit-hint,.family-edit-hint{margin-left:auto;color:var(--blue);font-weight:900;opacity:.65}.agenda-items article.editable-event{grid-template-columns:auto 1fr auto;align-items:center}.family-event{padding-right:28px!important}.family-edit-hint{position:absolute;right:8px;top:7px;font-size:12px}.field-disabled{opacity:.45}.family-overview-fullscreen:fullscreen{background:#f6faf9;padding:18px;overflow:auto;width:100vw;height:100vh}.family-overview-fullscreen:fullscreen .family-week{min-height:calc(100vh - 36px);border-radius:16px}.family-overview-fullscreen:fullscreen .family-day-cell{min-height:130px}.family-overview-fullscreen:fullscreen .modal.show{display:grid}.family-overview-fullscreen:fullscreen .modal{position:fixed;inset:0;z-index:9999}
.family-fullscreen-exit{display:none;position:fixed;right:18px;top:18px;z-index:20;width:42px;height:42px;border:0;border-radius:14px;background:#fff;color:var(--ink);font-size:24px;box-shadow:0 8px 25px rgba(31,42,68,.15)}.family-overview-fullscreen:fullscreen .family-fullscreen-exit{display:block}

/* Familieoversigt v0.3.2: Uge / Måned */
.family-overview-toolbar{position:relative;flex-wrap:wrap}
.family-view-switch{display:flex;gap:6px;padding:4px;background:#eef1f7;border-radius:13px}
.family-view-switch .btn{min-width:68px;text-align:center;justify-content:center}
.family-month{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;min-width:910px}
.family-month-weekday{padding:12px 8px;text-align:center;background:#f5f7fb;border-left:1px solid var(--line);font-weight:900;color:var(--ink)}
.family-month-weekday:first-child{border-left:0}
.family-month-day{min-height:145px;padding:8px;border-top:1px solid var(--line);border-left:1px solid var(--line);background:#fff;overflow:hidden}
.family-month-day:nth-child(7n + 1){border-left:0}
.family-month-day.is-outside{background:#fafbfe;color:#9aa3b5}
.family-month-day.is-outside .family-month-event{opacity:.55}
.family-month-day.is-today{background:#eef4ff;box-shadow:inset 0 0 0 2px rgba(79,124,255,.25)}
.family-month-date{display:flex;align-items:center;justify-content:space-between;min-height:25px;margin-bottom:5px}
.family-month-date b{font-size:15px}
.family-month-date span{font-size:10px;font-weight:900;text-transform:uppercase;color:var(--blue);background:#dfe9ff;border-radius:999px;padding:3px 6px}
.family-month-events{display:grid;gap:5px}
.family-month-event{border:1px solid var(--line);border-left:4px solid var(--event-color);border-radius:9px;padding:6px 7px;background:#fff;min-width:0}
.family-month-event-title{display:flex;align-items:center;gap:6px;min-width:0}
.family-month-event-title i{width:8px;height:8px;border-radius:50%;background:var(--dot);flex:0 0 auto}
.family-month-event-title b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.family-month-event small{display:block;margin-top:3px;font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.family-overview-fullscreen:fullscreen{padding:14px;background:#f6faf9;overflow:auto}
.family-overview-fullscreen:fullscreen .family-overview-toolbar{margin-right:54px}
.family-overview-fullscreen:fullscreen .family-month{min-height:calc(100vh - 105px);grid-auto-rows:minmax(115px,1fr)}
.family-overview-fullscreen:fullscreen .family-month-day{min-height:0}
@media(max-width:1050px){.family-month{min-width:840px;grid-template-columns:repeat(7,minmax(120px,1fr))}.family-month-day{min-height:130px}}
@media(max-width:760px){.family-month{min-width:770px;grid-template-columns:repeat(7,110px)}.family-month-day{min-height:120px}.family-overview-toolbar{justify-content:flex-start}.family-overview-toolbar>div:nth-of-type(1){min-width:180px}.family-view-switch{order:5}}
.family-intro-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
@media(max-width:760px){.family-intro-actions{align-items:flex-start;width:100%}.family-intro-actions .btn{width:100%}}


/* v0.4.0 · Profil, PWA og Familieoversigt-indstillinger */
.profile-link{color:inherit;text-decoration:none;border-radius:14px;padding:8px;margin:-8px}.profile-link:hover,.profile-link.active{background:rgba(79,124,255,.09)}
.profile-page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 8px 28px rgba(31,42,68,.04)}.settings-card-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px}.settings-card-head h2{margin:2px 0 5px}.settings-card-head p{margin:0;color:var(--muted)}.settings-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#eaf6f4;font-size:21px;flex:0 0 auto}.settings-form{display:grid;gap:13px}.settings-form>label{display:grid;gap:6px;font-weight:800}.settings-form input,.settings-form select{width:100%}.pwa-card{grid-column:1/-1}.pwa-status{display:grid;gap:4px;border:1px solid var(--line);background:#f6faf9;border-radius:15px;padding:14px;margin-bottom:13px}.pwa-status span{color:var(--muted)}.login-help{font-size:13px;line-height:1.45;color:var(--muted);background:#f6faf9;border:1px solid var(--line);padding:10px 12px;border-radius:12px;margin-top:12px}
.family-settings-card{max-width:570px}.family-overview-fullscreen.family-text-large .family-event b{font-size:1.08em}.family-overview-fullscreen.family-text-large .family-event small{font-size:.96em}.family-overview-fullscreen.family-text-large .family-month-event-title b{font-size:14px}.family-overview-fullscreen.family-text-large .family-month-event small{font-size:12px}.family-overview-fullscreen.family-text-xlarge .family-event b{font-size:1.2em}.family-overview-fullscreen.family-text-xlarge .family-event small{font-size:1.05em}.family-overview-fullscreen.family-text-xlarge .family-month-event-title b{font-size:15px}.family-overview-fullscreen.family-text-xlarge .family-month-event small{font-size:13px}.family-overview-fullscreen.family-text-xlarge .family-person-cell b{font-size:1.1em}
@media(max-width:760px){.profile-page-grid{grid-template-columns:1fr}.pwa-card{grid-column:auto}}

/* v0.5.0 · release-polering */
.dashboard-editable { cursor:pointer; position:relative; transition:transform .15s ease, box-shadow .15s ease; }
.dashboard-editable:hover { transform:translateY(-1px); box-shadow:0 8px 22px rgba(35,44,70,.08); }
.row-edit-hint { margin-left:auto; opacity:.45; font-size:.9rem; }
.dashboard-editable:hover .row-edit-hint { opacity:1; }

.family-day-cell, .family-month-day { position:relative; }
.family-quick-add { position:absolute; right:6px; top:6px; width:26px; height:26px; border:0; border-radius:50%; background:rgba(79,124,255,.10); color:#4F7CFF; font-weight:800; cursor:pointer; opacity:.55; z-index:3; }
.family-quick-add:hover, .family-quick-add:focus { opacity:1; background:rgba(79,124,255,.18); outline:none; }
.family-month-date { display:flex; align-items:center; gap:6px; }
.family-month-date .month-add { position:static; margin-left:auto; width:24px; height:24px; }
@media (pointer:coarse) { .family-quick-add { opacity:.9; width:30px; height:30px; } }

.trash-panel { max-width:920px; }
.trash-count { padding:.4rem .7rem; border-radius:999px; background:#f3f5fb; color:#60677b; font-size:.85rem; }
.trash-list { display:grid; gap:10px; margin-top:18px; }
.trash-item { display:flex; align-items:center; gap:14px; padding:14px 16px; border:1px solid #eceef5; border-radius:16px; background:#fff; }
.trash-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:#f6f7fb; font-size:1.2rem; }
.trash-copy { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.trash-copy small { color:#7a8092; }
.empty-state { padding:36px 18px; text-align:center; color:#777f91; display:grid; gap:6px; place-items:center; }
.empty-state span { font-size:2rem; }

body.family-kiosk { margin:0; background:var(--page-bg,#f6f7fb); }
.kiosk-shell { min-height:100vh; padding:12px 16px 24px; }
.kiosk-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px; padding:4px 4px 10px; }
.kiosk-top .wordmark { text-decoration:none; }
.kiosk-actions { display:flex; align-items:center; gap:8px; }
.kiosk-actions #clock { font-weight:700; font-variant-numeric:tabular-nums; min-width:64px; text-align:center; }
.family-kiosk .family-overview-fullscreen { min-height:calc(100vh - 80px); }
.family-kiosk .family-week-help { display:none; }
@media (max-width:800px) { .kiosk-top .wordmark span { display:none; } .kiosk-actions { flex-wrap:wrap; justify-content:flex-end; } }


/* v0.5.1 · Automatisk aften-/dark-tema til Familieoversigten */
.family-overview-fullscreen { transition:background-color .25s ease,color .25s ease; }
.family-overview-fullscreen.family-theme-dark {
  --ink:#edf2ff;
  --muted:#9faac1;
  --line:#30394b;
  --soft:#1a2130;
  color:#edf2ff;
  background:#121722;
  color-scheme:dark;
}
.family-theme-dark .family-week,
.family-theme-dark .family-month { background:#171e2b; border-color:#30394b; }
.family-theme-dark .family-week-head,
.family-theme-dark .family-month-weekday { background:#1c2433; color:#edf2ff; border-color:#30394b; }
.family-theme-dark .family-person-cell,
.family-theme-dark .family-day-cell,
.family-theme-dark .family-month-day { background:#171e2b; color:#edf2ff; border-color:#30394b; }
.family-theme-dark .family-day-cell.is-today,
.family-theme-dark .family-month-day.is-today,
.family-theme-dark .is-today { background:#202d46; }
.family-theme-dark .family-month-day.is-outside { background:#141a25; color:#68738a; }
.family-theme-dark .family-event,
.family-theme-dark .family-month-event { background:#202838; color:#f4f7ff; border-color:#374257; }
.family-theme-dark .family-event small,
.family-theme-dark .family-month-event small,
.family-theme-dark .family-week-help { color:#aab4c9; }
.family-theme-dark .family-view-switch { background:#222b3b; }
.family-theme-dark .btn.light,
.family-theme-dark .month-nav { background:#202838; color:#edf2ff; border-color:#374257; }
.family-theme-dark .family-quick-add { background:rgba(120,153,255,.18); color:#9fb8ff; }
.family-theme-dark .modal-card,
.family-theme-dark .family-settings-card { background:#171e2b; color:#edf2ff; border-color:#30394b; }
.family-theme-dark .modal-card input,
.family-theme-dark .modal-card textarea,
.family-theme-dark .modal-card select { background:#111722; color:#edf2ff; border-color:#374257; }
.family-theme-dark .person-picker { border-color:#374257; }
.family-theme-dark .person-check { background:#202838; color:#edf2ff; border-color:#374257; }
.family-theme-dark .group-select { background:#26243a; border-color:#494366; }
.family-theme-dark .modal-close { color:#edf2ff; }
.family-theme-dark .form-help { color:#9faac1; }
.family-theme-dark:fullscreen { background:#121722 !important; }
body.family-kiosk.family-theme-dark { --page-bg:#0e131c; background:#0e131c; color:#edf2ff; color-scheme:dark; }
body.family-kiosk.family-theme-dark .kiosk-top { color:#edf2ff; }
body.family-kiosk.family-theme-dark .kiosk-top .wordmark { color:#edf2ff; }
body.family-kiosk.family-theme-dark .kiosk-actions #clock { color:#e8eeff; }
body.family-kiosk.family-theme-dark .kiosk-shell { background:#0e131c; }

/* Oprettelsesmodalen ligger uden for selve Familieoversigt-roden i normal webvisning. */
body.family-overview-theme-dark[data-page="family-overview"] #event-modal .modal-card {
  background:#171e2b; color:#edf2ff; border-color:#30394b; color-scheme:dark;
}
body.family-overview-theme-dark[data-page="family-overview"] #event-modal input,
body.family-overview-theme-dark[data-page="family-overview"] #event-modal textarea,
body.family-overview-theme-dark[data-page="family-overview"] #event-modal select {
  background:#111722; color:#edf2ff; border-color:#374257;
}
body.family-overview-theme-dark[data-page="family-overview"] #event-modal .person-picker { border-color:#374257; }
body.family-overview-theme-dark[data-page="family-overview"] #event-modal .person-check { background:#202838; color:#edf2ff; border-color:#374257; }
body.family-overview-theme-dark[data-page="family-overview"] #event-modal .group-select { background:#26243a; border-color:#494366; }
body.family-overview-theme-dark[data-page="family-overview"] #event-modal .form-help { color:#9faac1; }
body.family-overview-theme-dark[data-page="family-overview"] #event-modal .modal-close { color:#edf2ff; }

/* v0.5.2 · Familieoversigt: skjulte personer skal fjerne hele grid-rækken.
   Author CSS (fx display:flex på personcellen) kan ellers overrule HTML hidden-attributten. */
.family-overview-fullscreen [data-family-person-row][hidden]{display:none!important}


/* v0.5.3 · hh Vejr */
.family-weather{display:grid;grid-template-columns:minmax(230px,1.3fr) minmax(300px,2fr) minmax(180px,.9fr);gap:12px;align-items:stretch;margin:0 0 12px;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#eef5ff,#f8fbff);box-shadow:0 8px 24px rgba(31,42,68,.06)}
.family-weather[hidden]{display:none!important}.family-weather-main{display:flex;align-items:center;gap:13px}.family-weather-icon{font-size:40px;line-height:1}.family-weather-main .eyebrow{margin:0 0 2px}.family-weather-current{display:flex;align-items:baseline;gap:10px}.family-weather-current b{font-size:29px;line-height:1}.family-weather-current span{font-weight:800}.family-weather-main small{display:block;margin-top:4px;color:var(--muted);font-weight:700}.family-weather-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.family-weather-facts>div,.family-weather-tomorrow{display:flex;flex-direction:column;justify-content:center;padding:8px 11px;border-radius:13px;background:rgba(255,255,255,.72);border:1px solid rgba(120,145,185,.14)}.family-weather-facts span,.family-weather-tomorrow span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:900}.family-weather-facts b,.family-weather-tomorrow b{margin-top:3px;font-size:14px}.family-weather.weather-error{opacity:.8}.weather-settings{border:1px solid var(--line);border-radius:14px;padding:12px 14px}.weather-settings legend{font-weight:900;padding:0 6px}.toggle-row{display:flex!important;align-items:center;gap:8px;margin-bottom:10px}.toggle-row input{width:auto!important}.family-theme-dark .family-weather{background:linear-gradient(135deg,#172338,#121a28);border-color:#30394b;color:#edf2ff;box-shadow:none}.family-theme-dark .family-weather-facts>div,.family-theme-dark .family-weather-tomorrow{background:#202838;border-color:#374257}.family-theme-dark .family-weather-main small,.family-theme-dark .family-weather-facts span,.family-theme-dark .family-weather-tomorrow span{color:#aab4c9}.family-theme-dark .weather-settings{border-color:#374257}.family-kiosk .family-weather{margin-top:2px}.family-kiosk .family-weather-current b{font-size:32px}
@media(max-width:900px){.family-weather{grid-template-columns:1fr 1.4fr}.family-weather-tomorrow{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}.family-weather-facts{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.family-weather{grid-template-columns:1fr}.family-weather-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.family-weather-current b{font-size:25px}.family-weather-icon{font-size:34px}.family-weather-tomorrow{grid-column:auto}}

/* v0.5.5 · Responsive kiosk layout for 10–13 inch tablets */
body.family-kiosk{overflow-x:hidden}
.family-kiosk .kiosk-shell{width:100%;max-width:none;box-sizing:border-box}
.family-kiosk .family-overview-fullscreen{width:100%;max-width:100%;overflow-x:hidden}
.family-kiosk .family-week{width:100%;min-width:0;grid-template-columns:minmax(88px,112px) repeat(7,minmax(0,1fr));overflow:hidden}
.family-kiosk .family-week-head{min-width:0;padding:9px 5px;font-size:clamp(10px,1.2vw,13px)}
.family-kiosk .family-week-head b{font-size:clamp(11px,1.3vw,14px)}
.family-kiosk .family-person-cell{min-width:0;padding:9px 7px;gap:6px;font-size:clamp(11px,1.35vw,14px);overflow:hidden}
.family-kiosk .family-person-cell span,.family-kiosk .family-person-cell strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.family-kiosk .family-person-cell i{flex:0 0 auto;width:10px;height:10px}
.family-kiosk .family-day-cell{min-width:0;min-height:86px;padding:4px;overflow:hidden}
.family-kiosk .family-day-cell article{min-width:0;padding:6px 5px;border-left-width:4px;border-radius:8px;margin-bottom:4px;gap:2px;font-size:clamp(9px,1.15vw,12px);overflow:hidden}
.family-kiosk .family-day-cell article b,.family-kiosk .family-day-cell article strong,.family-kiosk .family-day-cell article span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.family-kiosk .family-day-cell article small{font-size:clamp(8px,1vw,10px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.family-kiosk .family-cell-add{transform:scale(.88);transform-origin:center}
.family-kiosk .family-overview-toolbar{gap:7px;margin-bottom:10px}
.family-kiosk .family-overview-toolbar .btn,.family-kiosk .family-overview-toolbar .month-nav{padding:7px 9px;font-size:12px}
.family-kiosk .family-overview-toolbar h2{font-size:clamp(16px,2.1vw,24px);margin:0}
.family-kiosk .family-overview-toolbar .eyebrow{font-size:9px;margin-bottom:1px}
.family-kiosk .family-weather{grid-template-columns:minmax(165px,1.1fr) minmax(235px,1.8fr) minmax(155px,.9fr);gap:8px;padding:10px 12px;border-radius:14px;margin-bottom:8px}
.family-kiosk .family-weather-icon{font-size:32px}
.family-kiosk .family-weather-current b{font-size:26px}
.family-kiosk .family-weather-current span{font-size:13px}
.family-kiosk .family-weather-facts{gap:5px}
.family-kiosk .family-weather-facts>div,.family-kiosk .family-weather-tomorrow{padding:6px 8px;border-radius:10px}
.family-kiosk .family-weather-facts span,.family-kiosk .family-weather-tomorrow span{font-size:9px}
.family-kiosk .family-weather-facts b,.family-kiosk .family-weather-tomorrow b{font-size:12px}
.family-kiosk .kiosk-top{gap:8px;margin-bottom:6px;padding-bottom:6px}
.family-kiosk .kiosk-actions{gap:6px}
.family-kiosk .kiosk-actions .btn{padding:7px 9px;font-size:12px}

@media (max-width:1100px){
  .family-kiosk .kiosk-shell{padding:8px 8px 16px}
  .family-kiosk .family-week{grid-template-columns:minmax(78px,96px) repeat(7,minmax(0,1fr))}
  .family-kiosk .family-week-head{padding:7px 3px;font-size:10px}
  .family-kiosk .family-week-head span{font-size:10px}
  .family-kiosk .family-week-head b{font-size:11px}
  .family-kiosk .family-person-cell{padding:7px 5px;font-size:11px}
  .family-kiosk .family-day-cell{padding:3px;min-height:78px}
  .family-kiosk .family-day-cell article{padding:5px 4px;font-size:10px;border-left-width:3px}
  .family-kiosk .family-day-cell article small{font-size:8px}
  .family-kiosk .family-overview-toolbar{gap:5px}
  .family-kiosk .family-overview-toolbar .btn,.family-kiosk .family-overview-toolbar .month-nav{padding:6px 7px;font-size:11px}
  .family-kiosk .family-weather{grid-template-columns:minmax(145px,.95fr) minmax(220px,1.55fr) minmax(135px,.8fr);gap:6px;padding:8px 9px}
  .family-kiosk .family-weather-main{gap:8px}
  .family-kiosk .family-weather-icon{font-size:28px}
  .family-kiosk .family-weather-current b{font-size:23px}
  .family-kiosk .family-weather-current span{font-size:11px}
  .family-kiosk .family-weather-main small{font-size:10px}
}

@media (max-width:900px){
  .family-kiosk .kiosk-top .wordmark span{display:none}
  .family-kiosk .family-week{grid-template-columns:minmax(68px,82px) repeat(7,minmax(0,1fr))}
  .family-kiosk .family-week-head span{font-size:9px;letter-spacing:-.02em}
  .family-kiosk .family-week-head b{font-size:10px}
  .family-kiosk .family-person-cell{font-size:10px;padding:6px 4px}
  .family-kiosk .family-day-cell{min-height:72px;padding:2px}
  .family-kiosk .family-day-cell article{font-size:9px;padding:4px 3px;margin-bottom:3px}
  .family-kiosk .family-weather{grid-template-columns:1fr 1.35fr;gap:5px}
  .family-kiosk .family-weather-tomorrow{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}
  .family-kiosk .family-weather-facts>div{padding:5px 6px}
  .family-kiosk .family-overview-toolbar h2{font-size:16px}
}

@media (orientation:portrait) and (max-width:900px){
  .family-kiosk .family-week{grid-template-columns:minmax(62px,72px) repeat(7,minmax(0,1fr))}
  .family-kiosk .family-week-head span{font-size:8px}
  .family-kiosk .family-week-head b{font-size:9px}
  .family-kiosk .family-person-cell{font-size:9px}
  .family-kiosk .family-day-cell article{font-size:8px}
}

/* v0.5.6 · Kiosk skal altid udnytte den synlige PWA-højde.
   Top, vejr og toolbar bruger kun deres nødvendige plads; ugegrid'et får resten,
   og personrækkerne deles ligeligt, så alle familiemedlemmer kan ses samtidig. */
body.family-kiosk{
  height:100vh;
  height:100dvh;
  overflow:hidden;
}
.family-kiosk .kiosk-shell{
  height:100vh;
  height:100dvh;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  box-sizing:border-box;
}
.family-kiosk .kiosk-top{flex:0 0 auto}
.family-kiosk .family-overview-fullscreen{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.family-kiosk .family-weather,
.family-kiosk .family-overview-toolbar{flex:0 0 auto}
.family-kiosk .family-week{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  grid-template-rows:auto;
  grid-auto-rows:minmax(0,1fr);
  overflow:hidden;
}
.family-kiosk .family-day-cell,
.family-kiosk .family-person-cell{
  min-height:0;
  height:auto;
}

/* Lavere tablets/PWA-viewports: barber lidt ekstra af toppen før kalenderen. */
@media (max-height:760px){
  .family-kiosk .kiosk-shell{padding-top:5px;padding-bottom:6px}
  .family-kiosk .kiosk-top{margin-bottom:3px;padding-bottom:3px}
  .family-kiosk .family-weather{padding-top:6px;padding-bottom:6px;margin-bottom:5px}
  .family-kiosk .family-weather-icon{font-size:25px}
  .family-kiosk .family-weather-current b{font-size:21px}
  .family-kiosk .family-weather-main small{margin-top:1px}
  .family-kiosk .family-weather-facts>div,
  .family-kiosk .family-weather-tomorrow{padding-top:4px;padding-bottom:4px}
  .family-kiosk .family-overview-toolbar{margin-bottom:5px}
  .family-kiosk .family-week-head{padding-top:4px;padding-bottom:4px}
}

/* v0.5.9 · Android/PWA kiosk: use the actually visible viewport height.
   visualViewport is synced from app.js, avoiding theme/system-bar differences. */
body.family-kiosk,
.family-kiosk .kiosk-shell{
  height:var(--tidora-kiosk-height,100dvh);
  max-height:var(--tidora-kiosk-height,100dvh);
}

/* Keep dense days readable on a 10-inch wall tablet: two full cards + compact overflow. */
.family-kiosk .family-event-kiosk-hidden{display:none!important}
.family-more-events{
  width:100%;
  min-height:22px;
  border:1px dashed rgba(79,124,255,.38);
  border-radius:8px;
  background:rgba(79,124,255,.09);
  color:#416fe0;
  font-weight:900;
  font-size:10px;
  padding:3px 5px;
  margin-top:2px;
  line-height:1.1;
}
.family-theme-dark .family-more-events{
  background:rgba(120,153,255,.14);
  border-color:rgba(159,184,255,.32);
  color:#a9c0ff;
}
.family-overflow-popover{
  position:fixed;
  inset:0;
  z-index:10050;
  display:grid;
  place-items:center;
  padding:16px;
  background:rgba(13,20,32,.52);
  backdrop-filter:blur(4px);
}
.family-overflow-card{
  width:min(460px,calc(100vw - 28px));
  max-height:min(78dvh,560px);
  overflow:auto;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  color:var(--ink);
  box-shadow:0 22px 70px rgba(20,28,45,.28);
  padding:14px;
}
.family-theme-dark .family-overflow-card,
body.family-theme-dark .family-overflow-card{
  background:#171e2b;
  color:#edf2ff;
  border-color:#374257;
}
.family-overflow-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.family-overflow-head b{font-size:16px}
.family-overflow-close{border:0;border-radius:10px;background:var(--soft);color:inherit;width:34px;height:34px;font-weight:900}
.family-overflow-events{display:grid;gap:7px}
.family-overflow-events .family-event{margin:0!important;padding:9px 10px!important;font-size:13px!important;display:block!important}
.family-overflow-events .family-event b{display:block;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.family-overflow-events .family-event small{font-size:11px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}

@media (max-height:700px){
  .family-kiosk .family-more-events{min-height:19px;font-size:9px;padding:2px 4px}
}


/* v0.6.0 · Kiosk control strip: remove decorative header and use the freed height for the calendar. */
.family-kiosk .family-kiosk-inline-tools{
  display:flex;
  align-items:center;
  gap:6px;
  margin-left:auto;
}
.family-kiosk .family-kiosk-inline-tools #clock{
  min-width:54px;
  text-align:center;
  font-weight:850;
  font-variant-numeric:tabular-nums;
  color:var(--ink);
}
body.family-kiosk.family-theme-dark .family-kiosk-inline-tools #clock{color:#e8eeff}
.family-kiosk .family-overview-toolbar{
  margin-top:0;
  margin-bottom:6px;
}
.family-kiosk .kiosk-shell{
  padding-top:5px;
}
@media (max-width:1050px){
  .family-kiosk .family-kiosk-inline-tools{gap:4px}
  .family-kiosk .family-kiosk-inline-tools #clock{min-width:48px;font-size:12px}
  .family-kiosk .family-kiosk-inline-tools .btn{padding:6px 7px;font-size:10px}
}
@media (max-height:700px){
  .family-kiosk .kiosk-shell{padding-top:3px}
  .family-kiosk .family-overview-toolbar{margin-bottom:4px}
}

/* v0.6.1 · Month kiosk fills the entire available wall-display area.
   The server supplies the actual number of calendar week rows (normally 5 or 6),
   so each month expands instead of being rendered as a small fixed-height grid. */
.family-kiosk .family-overview-fullscreen[data-family-view="month"]{
  min-height:0;
}
.family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month{
  flex:1 1 auto;
  width:100%;
  max-width:100%;
  min-width:0!important;
  min-height:0;
  height:auto;
  box-sizing:border-box;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  grid-template-rows:auto repeat(var(--tidora-month-weeks,6),minmax(0,1fr));
  overflow:hidden;
}
.family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-weekday{
  min-width:0;
  padding:7px 5px;
  font-size:clamp(10px,1.25vw,13px);
}
.family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-day{
  min-width:0;
  min-height:0!important;
  height:auto;
  padding:5px;
  overflow:hidden;
}
.family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-date{
  min-height:20px;
  margin-bottom:3px;
}
.family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-date b{
  font-size:12px;
}
.family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-date span{
  font-size:8px;
  padding:2px 5px;
}
.family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-events{
  gap:3px;
}
.family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-event{
  padding:4px 5px;
  border-left-width:3px;
  border-radius:7px;
}
.family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-event-title b{
  font-size:10px;
}
.family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-event small{
  margin-top:1px;
  font-size:8px;
}
@media (max-height:700px){
  .family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-weekday{padding:4px 4px;font-size:9px}
  .family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-day{padding:3px}
  .family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-date{min-height:16px;margin-bottom:2px}
  .family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-date b{font-size:10px}
  .family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-event{padding:3px 4px}
}

/* v0.6.2 · Android/PWA month kiosk: JS measures the actual remaining viewport.
   The explicit pixel height avoids flex/dvh differences between standalone PWA themes/system bars. */
.family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month{
  align-self:stretch;
  flex:0 0 auto;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0;
}
.family-kiosk .family-overview-fullscreen[data-family-view="month"] .family-month-day{
  min-height:0!important;
}

/* Alt i Familien visual identity v0.6.3 */
.brand-mark{display:block;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 8px 16px rgba(22,53,58,.10))}
.brand-mark-small{width:48px;height:48px;border-radius:15px}
.brand-mark-large{width:104px;height:104px;border-radius:30px;margin-bottom:4px}
.wordmark{gap:10px}.wordmark span{line-height:1.05}
.brand-panel{position:relative;overflow:hidden}
.brand-panel:after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;right:-145px;bottom:-150px;background:rgba(244,180,61,.18);pointer-events:none}
.brand-panel h1,.brand-panel>p,.login-feature{position:relative;z-index:1}
.hero:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;left:-75px;bottom:-105px;background:rgba(244,180,61,.12)}
.sidebar nav a:hover,.sidebar nav a.active{background:#e8f4f3;color:#0b6670}
.eyebrow{color:#0b6670!important}.btn.primary,.floating-add{background:#0b6670}.panel-head a{color:#0b6670}
@media(max-width:760px){.brand-mark-small{width:44px;height:44px}}
