:root{--ink:#183b36;--muted:#66736f;--paper:#f5f7f4;--line:#e1e8e3;--white:#fff;--green:#286b57;--shadow:0 12px 35px rgba(20,48,39,.08)}
*{box-sizing:border-box}body{margin:0;background-color:var(--paper);background-image:linear-gradient(rgba(245,247,244,.34),rgba(245,247,244,.34)),url("lysheia_panorama.jpeg");background-position:center center;background-size:cover;background-attachment:fixed;color:#1d2d28;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.top{background:var(--ink);color:white;padding:20px max(22px,calc((100% - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:13px}.mark{width:46px;height:46px;border:1px solid #ffffff70;border-radius:14px;display:grid;place-items:center;font-size:25px;font-weight:700}.brand h1{margin:0;font-size:21px}.brand p{margin:3px 0 0;color:#c4d4ce;font-size:13px}
.top-actions{display:flex;gap:9px}.button{border:0;border-radius:9px;padding:10px 15px;font-weight:650;cursor:pointer;font-size:14px}.button-primary{background:var(--green);color:#fff}.button-outline{background:transparent;border:1px solid #b9cbc3;color:inherit}.top .button-outline{color:#fff}.button-light{background:#fff;color:var(--ink)}.button-danger{background:#fff0ef;color:#a12d27}.button:hover,.icon-button:hover{filter:brightness(.96)}
.wrap{max-width:1180px;margin:0 auto;padding:36px 22px 60px}.intro{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:800;color:var(--green);margin:0 0 8px}.intro h2,.upcoming h2{font-size:clamp(25px,4vw,34px);letter-spacing:-.04em;margin:0 0 7px;color:var(--ink)}.muted{color:var(--muted)}.intro .muted{margin:0}
.year-control{display:flex;align-items:center;gap:17px;background:white;border:1px solid var(--line);padding:7px 10px;border-radius:12px;box-shadow:var(--shadow)}.year-control strong{font-size:21px;min-width:58px;text-align:center}.icon-button{width:34px;height:34px;border:0;border-radius:8px;background:#edf3ef;color:var(--ink);font-size:25px;line-height:1;cursor:pointer}
.notice{background:#fff7df;border:1px solid #f0dfac;border-radius:12px;padding:15px 18px;margin-bottom:20px}.notice p{margin:5px 0 0;color:#655a3b;font-size:14px}
.admin-panel{background:white;border:1px solid var(--line);border-radius:15px;padding:20px;margin:0 0 22px;box-shadow:var(--shadow)}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel-heading h3{margin:0;color:var(--ink);font-size:20px}.login-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.login-row label{flex:1;min-width:190px}.admin-panel label,.event-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:650;color:#344640}.admin-panel input,.event-form input,.event-form select,.event-form textarea{width:100%;border:1px solid #d8e2dc;border-radius:8px;padding:11px 12px;font:inherit;color:#20332c;background:white;outline:none}.admin-panel input:focus,.event-form input:focus,.event-form textarea:focus,.event-form select:focus{border-color:#55937d;box-shadow:0 0 0 3px #55937d20}#loggedInTools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}#loginStatus{margin:0 auto 0 0}.small{font-size:12px}.legend{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 15px;color:#5b6963;font-size:12px}.legend span{display:flex;align-items:center;gap:7px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot-event{background:#43866e}.dot-task{background:#4f83bd}.dot-meeting{background:#c18a3b}.dot-other{background:#9271aa}
.calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.month{background:white;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 5px 18px rgba(20,48,39,.035);min-width:0}.month-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.month-head h3{margin:0;color:var(--ink);font-size:16px}.month-head span{font-size:11px;color:#87938d}.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.weekdays span{text-align:center;color:#89948f;font-size:9px;font-weight:700;padding:4px 0}.day{min-height:55px;background:#fbfcfb;border-radius:6px;padding:4px 3px;min-width:0;cursor:pointer;border:1px solid transparent}.day.empty{background:transparent;cursor:default}.day:not(.empty):hover{border-color:#9dbbad;background:#f4f8f5}.day.today{border-color:#3b8068;background:#f0f7f3}.day-number{font-size:10px;color:#596861;display:block;margin-bottom:3px}.day.today .day-number{font-weight:800;color:var(--green)}.event-chip{display:block;font-size:9px;line-height:1.25;padding:3px 4px;border-radius:4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#205341;background:#e1f0e8}.event-chip.task{background:#e4effb;color:#285987}.event-chip.meeting{background:#fbefd9;color:#805a1d}.event-chip.other{background:#eee8f6;color:#624b7b}.more{font-size:9px;color:#6c7972;margin:2px 2px 0}
.upcoming{margin-top:45px}.section-heading{margin-bottom:14px}.upcoming h2{font-size:25px}.upcoming-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.upcoming-item{display:flex;gap:13px;align-items:flex-start;background:white;border:1px solid var(--line);border-radius:12px;padding:13px}.date-block{background:#edf4ef;border-radius:9px;padding:7px 9px;text-align:center;min-width:48px;color:var(--ink)}.date-block b{display:block;font-size:19px;line-height:1.1}.date-block small{font-size:9px;text-transform:uppercase;font-weight:800}.upcoming-item h4{margin:0 0 4px;font-size:14px}.upcoming-item p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.category-label{font-size:10px;font-weight:750;color:var(--green);margin-top:5px!important}
footer{border-top:1px solid var(--line);padding:20px;text-align:center;color:#89948f;font-size:11px}footer span+span{margin-left:6px}
dialog{border:0;border-radius:16px;padding:0;width:min(540px,calc(100% - 28px));box-shadow:0 25px 80px #10251c55}dialog::backdrop{background:#10251c88;backdrop-filter:blur(3px)}.event-form{padding:23px;display:flex;flex-direction:column;gap:13px}.event-form .panel-heading{margin-bottom:2px}.event-form h3{font-size:21px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.event-form textarea{resize:vertical}.dialog-actions{display:flex;align-items:center;gap:8px;margin-top:5px}.spacer{flex:1}.hidden{display:none!important}
@media(max-width:850px){.calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.day{min-height:49px}.event-chip{font-size:8px}}
@media(max-width:560px){.top{padding:15px;align-items:flex-start}.brand h1{font-size:17px}.brand p{font-size:11px}.mark{width:39px;height:39px}.top-actions{flex-direction:column}.top-actions .button{padding:8px 10px;font-size:12px}.wrap{padding:25px 12px 45px}.intro{align-items:flex-start;flex-direction:column}.year-control{align-self:flex-end}.calendar{grid-template-columns:1fr;gap:11px}.month{padding:13px}.day{min-height:58px}.event-chip{font-size:9px}.upcoming-list{grid-template-columns:1fr}.login-row{align-items:stretch;flex-direction:column}.login-row .button{align-self:flex-start}.form-grid{grid-template-columns:1fr 1fr}}

.submit-invite{display:flex;align-items:center;justify-content:space-between;gap:18px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:15px;padding:20px;margin:0 0 22px;box-shadow:var(--shadow)}.submit-invite h2{margin:0 0 6px;color:var(--ink);font-size:clamp(20px,3vw,26px)}.submit-invite p{margin:0}.submit-invite .eyebrow{margin-bottom:7px}.pending-card{background:#f8fbf9;border:1px solid var(--line);border-radius:10px;padding:14px;margin:10px 0}.pending-card h4{margin:0 0 5px}.pending-card p{margin:4px 0;color:var(--muted);font-size:13px}.pending-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.pending-image{max-width:180px;max-height:130px;object-fit:contain;border-radius:8px;margin-top:8px}@media(max-width:560px){.submit-invite{align-items:flex-start;flex-direction:column}.submit-invite .button{width:100%}}

.upcoming-filters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 9px}.upcoming-filters input,.upcoming-filters select{min-height:43px;border:1px solid #d8e2dc;border-radius:9px;padding:10px 12px;background:rgba(255,255,255,.97);font:inherit;color:#20332c}.filter-search{flex:1;min-width:min(100%,280px)}.filter-search input{width:100%}.filter-category select{min-width:190px;width:100%}.upcoming-count{font-size:12px;color:var(--muted);margin:0 0 10px}.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}

.upcoming-clickable{cursor:pointer;transition:transform .15s,border-color .15s}.upcoming-clickable:hover,.upcoming-clickable:focus{border-color:#8bb19e;transform:translateY(-1px);outline:none}.detail-dialog{width:min(620px,calc(100% - 26px));max-height:90vh;overflow:auto}.detail-content{padding:24px;display:flex;flex-direction:column;gap:10px}.detail-content h3{margin:0;color:var(--ink);font-size:23px}.detail-image{width:100%;max-height:340px;object-fit:contain;background:#f3f5f3;border-radius:10px}.detail-meta{margin:0;color:#53645c;font-size:13px;line-height:1.55}.detail-description{margin:4px 0;color:#263b32;white-space:pre-wrap;line-height:1.6}.detail-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:10px}.detail-content a{color:var(--green);font-weight:700}@media(max-width:560px){.detail-content{padding:18px}.detail-actions .button{flex:1}}


.featured-section{margin:0 0 30px;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:17px;padding:22px;box-shadow:var(--shadow);backdrop-filter:blur(4px)}
.featured-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px}
.featured-heading h2{margin:0 0 5px;color:var(--ink);font-size:clamp(23px,3vw,30px);letter-spacing:-.035em}
.featured-heading .muted{margin:0;font-size:13px}
.featured-all{color:var(--green);font-size:13px;font-weight:750;text-decoration:none;white-space:nowrap}
.featured-all:hover{text-decoration:underline}
.featured-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.featured-card{display:flex;flex-direction:column;overflow:hidden;padding:0;background:#fff;border:1px solid var(--line);border-radius:13px;min-width:0}
.featured-image{display:block;width:100%;height:165px;object-fit:cover;background:#edf2ee}
.featured-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#e4eee8,#d7e5dc);color:#426454;font-weight:750;font-size:13px}
.featured-card-body{padding:14px}
.featured-date{margin:0 0 7px;color:var(--green);font-size:11px;font-weight:800}
.featured-card h3{margin:0 0 5px;color:var(--ink);font-size:17px;line-height:1.25}
.featured-location{margin:0 0 10px;color:var(--muted);font-size:12px}
.featured-category{display:inline-block;padding:4px 8px;border-radius:20px;background:#edf4ef;color:#426454;font-size:10px;font-weight:750}
.featured-empty{grid-column:1/-1;margin:0;padding:18px;background:#f8faf8;border-radius:10px}
@media(max-width:760px){.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.featured-section{padding:15px}.featured-heading{align-items:flex-start;flex-direction:column}.featured-grid{grid-template-columns:1fr}.featured-image{height:190px}}

/* Plakatminiatyr i listen over kommende aktiviteter */
.upcoming-thumb{width:104px;height:78px;object-fit:cover;border-radius:9px;flex:0 0 104px;align-self:center}
@media(max-width:540px){.upcoming-thumb{width:76px;height:68px;flex-basis:76px}}

/* Lesbarhetsforbedring: mørkere naturbakgrunn og tydeligere tekst */
body{
  background-image:
    linear-gradient(rgba(8,25,20,.62),rgba(8,25,20,.62)),
    url("lysheia_panorama.jpeg");
  color:#1d2d28;
}
.intro h2,
.upcoming h2{
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.55);
}
.intro .eyebrow{
  color:#d7eee2;
  text-shadow:0 1px 5px rgba(0,0,0,.55);
}
.intro .muted{
  color:#f0f5f1;
  text-shadow:0 1px 5px rgba(0,0,0,.65);
}
.upcoming-count{
  color:#f0f5f1;
  text-shadow:0 1px 5px rgba(0,0,0,.65);
}
footer{
  color:#e5eee9;
  border-top-color:rgba(255,255,255,.35);
  text-shadow:0 1px 4px rgba(0,0,0,.55);
}
/* Litt tydeligere små tekster inne i de lyse kalenderfeltene */
.month-head span,
.weekdays span,
.day-number,
.more{
  color:#52635b;
}
