  :root{
    --forest:#9FB68C;
    --forest-dark:#000000;
    --canvas:#FBF3E7;
    --card:#ffffff;
    --ember:#EB7054;
    --ember-dark:#C6573C;
    --sky:#73ADAC;
    --sky-dark:#4C7F7E;
    --ink:#3A342A;
    --muted:#8C8271;
    --line:#E8DFCE;
    --danger:#c14444;
    --sage:#EFA63C;
  }
  :root[data-theme="dark"]{
    --canvas:#14171A;
    --card:#1E2226;
    --ink:#E7EAEC;
    --muted:#8B9297;
    --line:#2C3136;
    --forest-dark:#6FD8D3;
    --danger:#F0665C;
    --ember:#FF8B63;
    --ember-dark:#E06B45;
    --sky:#4FC4BE;
    --sky-dark:#2E9992;
  }
  :root[data-theme="dark"] header{background:#9FB68C;}
  :root[data-theme="dark"] th{background:rgba(255,255,255,0.06);}
  :root[data-theme="dark"] .leder-side th, :root[data-theme="dark"] .admin-side th{background:rgba(255,255,255,0.06); color:var(--sky);}
  :root[data-theme="dark"] form input, :root[data-theme="dark"] form select,
  :root[data-theme="dark"] .admin-side table input, :root[data-theme="dark"] .admin-side table select{
    background:rgba(255,255,255,0.07);
    color:var(--ink);
  }
  :root[data-theme="dark"] .add-row-btn:hover, :root[data-theme="dark"] #grupper-body tr:hover{
    background:rgba(255,255,255,0.06);
  }
  :root[data-theme="dark"] .admin-intro{
    background:rgba(79,196,190,0.12);
    border-color:rgba(79,196,190,0.35);
    color:var(--sky);
  }
  :root[data-theme="dark"] .import-box{
    background:rgba(255,255,255,0.04);
  }
  :root[data-theme="dark"] .switch-track{background:#3D4247;}
  :root[data-theme="dark"] .tile-card h3{color:var(--sky);}
  :root[data-theme="dark"] .weather-day-temp{color:var(--ember);}
  :root[data-theme="dark"] .weather-day:first-child .weather-day-navn{color:var(--ember);}
  :root[data-theme="dark"] .bracket-round-title{color:#ffffff;}
  :root[data-theme="dark"] .admin-round-header input,
  :root[data-theme="dark"] .admin-soverom-header input,
  :root[data-theme="dark"] .point-row input,
  :root[data-theme="dark"] .rule-row input,
  :root[data-theme="dark"] .admin-kamp-lag-rad input,
  :root[data-theme="dark"] .admin-kamp-bunn-rad input{
    background:rgba(255,255,255,0.07);
    color:var(--ink);
  }
  :root[data-theme="dark"] .admin-kamp-block{background:rgba(255,255,255,0.02);}
  *{box-sizing:border-box;}
  body{
    margin:0;
    font-family:'Karla',sans-serif;
    background:var(--canvas);
    color:var(--ink);
    transition:background-color 0.2s ease, color 0.2s ease;
  }
  section.card, .tile-card, .weather-box, .thumb-card, .soverom-card{
    transition:background-color 0.2s ease, border-color 0.2s ease;
  }
  h1,h2,h3{font-family:'Gochi Hand',sans-serif; font-weight:400;}

  header{
    position:relative;
    background:linear-gradient(180deg, var(--forest), #bccfab);
    color:white;
    padding:clamp(1.5rem, 5vw, 3rem) clamp(1rem, 4vw, 1.5rem) clamp(2rem, 6vw, 3.5rem);
    text-align:center;
    overflow:hidden;
  }
  header .float{
    position:absolute;
    border-radius:50%;
    opacity:0.3;
    animation:floatY 7s ease-in-out infinite;
    pointer-events:none;
  }
  header .float1{width:70px; height:70px; background:var(--sage); top:10%; left:6%; animation-delay:0s;}
  header .float2{width:40px; height:40px; background:#fff; top:22%; right:10%; animation-delay:1.2s;}
  header .float3{width:100px; height:100px; background:var(--sky); bottom:-30px; left:18%; animation-delay:0.6s; opacity:0.22;}
  header .float4{width:46px; height:46px; background:var(--ember); top:50%; right:20%; animation-delay:2s;}
  @keyframes floatY{
    0%,100%{transform:translateY(0px) rotate(0deg);}
    50%{transform:translateY(-18px) rotate(8deg);}
  }
  header h1{
    position:relative; z-index:1;
    margin:0; font-size:clamp(1.8rem, 7vw, 3.2rem); line-height:1.15;
    text-shadow:0 3px 0 rgba(0,0,0,0.1);
    animation:popIn 0.7s cubic-bezier(.2,1.4,.4,1) both;
  }
  header p{
    position:relative; z-index:1;
    margin:0.4rem 0 0; color:#fff8ec; font-size:clamp(0.85rem, 2.5vw, 1rem);
    animation:popIn 0.7s 0.12s cubic-bezier(.2,1.4,.4,1) both;
  }
  @keyframes popIn{
    0%{opacity:0; transform:translateY(16px) scale(0.95);}
    100%{opacity:1; transform:translateY(0) scale(1);}
  }

  .tabs{
    position:relative; z-index:1;
    display:flex;
    justify-content:center;
    gap:0.5rem;
    margin-top:1.3rem;
    flex-wrap:wrap;
    animation:popIn 0.7s 0.24s cubic-bezier(.2,1.4,.4,1) both;
  }
  .tabs button, .pill-link{
    font-family:'Gochi Hand',sans-serif;
    font-size:1.15rem;
    padding:0.55rem 1.4rem;
    border-radius:999px;
    border:1.5px solid rgba(255,255,255,0.55);
    background:transparent;
    color:white;
    cursor:pointer;
    text-decoration:none;
    display:inline-block;
    transition:background 0.15s ease, transform 0.15s ease;
  }
  .tabs .pill-link, .pill-link{
    background:rgba(0,0,0,0.22);
    border-color:rgba(255,255,255,0.8);
    text-shadow:0 1px 2px rgba(0,0,0,0.35);
  }
  .tabs button:hover{background:rgba(255,255,255,0.16); transform:translateY(-2px);}
  .tabs .pill-link:hover, .pill-link:hover{background:rgba(0,0,0,0.32); transform:translateY(-2px);}
  .tabs button.active{background:var(--ember); border-color:var(--ember);}
  .tabs button.admin-btn.active{background:var(--sky); border-color:var(--sky);}

  .bunting-deco{display:flex; justify-content:center; gap:1px; padding:2rem 0 0.5rem;}
  .bunting-deco span{
    width:0; height:0; border-left:9px solid transparent; border-right:9px solid transparent;
    border-top:13px solid var(--sky); margin:0 1px;
    animation:swing 2.6s ease-in-out infinite;
    transform-origin:top center;
  }
  .bunting-deco span:nth-child(3n+2){border-top-color:var(--ember);}
  .bunting-deco span:nth-child(3n){border-top-color:var(--sage);}
  .bunting-deco span:nth-child(even){animation-delay:0.3s;}
  @keyframes swing{0%,100%{transform:rotate(-4deg);} 50%{transform:rotate(4deg);}}

  /* --- Landingsfliser (deltakerside) --- */
  .deltaker-view{display:none;}
  .deltaker-view.active{display:block;}

  .weather-box{
    display:flex;
    flex-direction:column;
    gap:0.7rem;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:18px;
    padding:1.1rem 1.4rem;
    margin-bottom:1.5rem;
    box-shadow:0 8px 20px rgba(60,40,10,0.07);
    opacity:0; transform:translateY(24px);
    animation:cardIn 0.55s ease forwards;
  }
  .weather-place{
    font-size:0.85rem;
    color:var(--muted);
    font-weight:700;
  }
  .weather-days{
    display:flex;
    justify-content:space-between;
    gap:1rem;
    overflow-x:auto;
    padding:0.3rem 1.5rem 0;
  }
  .weather-day{
    text-align:center;
    min-width:74px;
    flex-shrink:0;
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  .weather-day:first-child .weather-day-navn{color:var(--ember-dark);}
  .weather-day-navn{
    font-size:0.85rem;
    color:var(--muted);
    font-weight:700;
    margin-bottom:0.3rem;
  }
  .weather-day-icon{
    font-size:2.4rem;
    animation:bob 3.2s ease-in-out infinite;
  }
  .weather-day-temp{
    font-family:'Gochi Hand',sans-serif;
    font-size:1.6rem;
    color:var(--ember-dark);
    line-height:1.1;
    margin-top:0.2rem;
  }
  .weather-day-min{
    font-size:0.85rem;
    color:var(--muted);
  }
  .weather-source{
    font-size:0.72rem;
    color:var(--muted);
    margin-top:0.15rem;
  }
  .weather-source a{color:var(--sky-dark);}

  .thumb-card{
    border-radius:18px;
    overflow:hidden;
    margin-bottom:1.5rem;
    box-shadow:0 8px 20px rgba(60,40,10,0.07);
    border:1px solid var(--line);
    opacity:0; transform:translateY(24px);
    animation:cardIn 0.55s 0.08s ease forwards;
    cursor:pointer;
    position:relative;
  }
  .thumb-card img{
    display:block;
    width:100%;
    height:150px;
    object-fit:cover;
    object-position:center 30%;
    transition:transform 0.3s ease;
  }
  .thumb-card:hover img{transform:scale(1.04);}
  .thumb-overlay{
    position:absolute;
    inset:0;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    background:linear-gradient(180deg, transparent 30%, rgba(0,0,0,0.6));
  }
  .thumb-overlay span{
    color:white;
    font-family:'Gochi Hand',sans-serif;
    font-size:1.2rem;
    padding:0.45rem 1.1rem;
    background:rgba(0,0,0,0.5);
    border:1.5px solid rgba(255,255,255,0.85);
    border-radius:999px;
    margin-bottom:0.9rem;
    text-shadow:0 1px 2px rgba(0,0,0,0.4);
  }

  .lightbox{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(20,15,10,0.85);
    align-items:center;
    justify-content:center;
    z-index:100;
    padding:1.5rem;
  }
  .lightbox.show{display:flex;}
  .lightbox img{
    max-width:100%;
    max-height:85vh;
    border-radius:12px;
  }
  .lightbox-close{
    position:absolute;
    top:1.2rem;
    right:1.5rem;
    background:white;
    border:none;
    width:2.4rem;
    height:2.4rem;
    border-radius:50%;
    font-size:1.2rem;
    cursor:pointer;
  }

  .tile-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:1.5rem;
    margin-bottom:1.5rem;
  }
  .tile-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:20px;
    padding:1.8rem 1.4rem;
    text-align:center;
    cursor:pointer;
    font-family:'Karla',sans-serif;
    box-shadow:0 10px 24px rgba(60,40,10,0.09);
    opacity:0; transform:translateY(24px);
    animation:cardIn 0.55s ease forwards;
    transition:transform 0.2s ease, box-shadow 0.2s ease;
  }
  .tile-card:nth-child(1){animation-delay:0.08s;}
  .tile-card:nth-child(2){animation-delay:0.18s;}
  .tile-card:nth-child(3){animation-delay:0.28s;}
  .tile-card:hover{transform:translateY(-6px) rotate(-1deg); box-shadow:0 16px 32px rgba(60,40,10,0.15);}
  .tile-card .tile-emoji{
    font-size:2.6rem; display:inline-block;
    animation:bob 2.6s ease-in-out infinite;
  }
  .tile-card:nth-child(2) .tile-emoji{animation-delay:0.4s;}
  .tile-card:nth-child(3) .tile-emoji{animation-delay:0.8s;}
  @keyframes bob{0%,100%{transform:translateY(0);} 50%{transform:translateY(-6px);}}
  .tile-card h3{
    font-family:'Gochi Hand',sans-serif; font-size:1.5rem;
    margin:0.5rem 0 0.4rem; color:var(--ember-dark);
  }
  .tile-card p{margin:0; color:var(--muted); font-size:0.9rem; line-height:1.5;}

  .back-btn{
    display:inline-flex; align-items:center; gap:0.4rem;
    background:transparent; border:1.5px solid var(--sky); color:var(--sky-dark);
    font-family:'Gochi Hand',sans-serif; font-size:1.05rem;
    padding:0.5rem 1.2rem; border-radius:999px; cursor:pointer;
    margin-bottom:1.25rem;
    transition:background 0.15s ease, transform 0.15s ease;
  }
  .back-btn:hover{background:var(--soft-bg,#eaf2f7); transform:translateX(-3px);}

  .subgrid-2col{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.5rem;
    align-items:stretch;
  }
  .subgrid-2col section.card{display:flex; flex-direction:column; margin-bottom:0;}
  .subgrid-2col section.card form{display:flex; flex-direction:column; flex:1;}
  .subgrid-2col section.card.form-card form button{margin-top:auto;}
  @media (max-width:760px){
    .subgrid-2col{grid-template-columns:1fr;}
  }

  main{max-width:1180px; margin:0 auto; padding:1.75rem 1.25rem 3rem;}
  .page{display:none;}
  .page.active{display:block;}
  .page.two-col.active{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.5rem;
    align-items:start;
  }
  #page-deltaker.two-col.active{align-items:stretch;}
  #page-deltaker.two-col.active section.card{display:flex; flex-direction:column;}
  #page-deltaker.two-col.active section.card form{display:flex; flex-direction:column; flex:1;}
  #page-deltaker.two-col.active section.card.form-card form button{margin-top:auto;}
  .page.two-col.active > section.card{margin-bottom:0;}
  .page.two-col .flash{grid-column:1 / -1;}
  .page.two-col .span-2{grid-column:1 / -1;}
  @media (max-width:760px){
    .page.two-col.active{grid-template-columns:1fr;}
    main{padding:1.25rem 1rem 2.5rem;}
    .tabs button{font-size:1rem; padding:0.5rem 1.1rem;}
    section.card{padding:1rem 1.1rem;}
    section.card.form-card{padding:1.1rem 1.1rem 1.3rem; min-height:0;}
    th,td{padding:0.4rem 0.4rem; font-size:0.85rem;}
    .bracket-round{min-width:165px;}
  }

  @keyframes cardIn{
    from{opacity:0; transform:translateY(24px);}
    to{opacity:1; transform:translateY(0);}
  }
  section.card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:18px;
    padding:1.25rem 1.5rem;
    margin-bottom:1.5rem;
    max-width:100%;
    overflow-x:auto;
    box-shadow:0 8px 20px rgba(60,40,10,0.07);
    animation:cardIn 0.55s ease both;
    transition:transform 0.2s ease, box-shadow 0.2s ease;
  }
  section.card:hover{
    transform:translateY(-4px);
    box-shadow:0 14px 28px rgba(60,40,10,0.13);
  }
  .page > section.card:nth-of-type(1){animation-delay:0.05s;}
  .page > section.card:nth-of-type(2){animation-delay:0.12s;}
  .page > section.card:nth-of-type(3){animation-delay:0.19s;}
  .page > section.card:nth-of-type(4){animation-delay:0.26s;}
  .page > section.card:nth-of-type(5){animation-delay:0.33s;}
  .page > section.card:nth-of-type(6){animation-delay:0.4s;}
  section.card.form-card{
    padding:1.75rem 1.75rem 2.1rem;
    min-height:420px;
  }
  section.card h2{
    margin:0 0 0.85rem;
    color:var(--forest-dark);
    font-size:1.25rem;
    display:inline-block;
    border-bottom:3px solid var(--ember);
    padding-bottom:0.2rem;
  }
  .leder-side section.card h2{border-bottom-color:var(--sky);}
  .admin-side section.card h2{border-bottom-color:var(--sky-dark);}

  table{width:100%; border-collapse:collapse; margin-top:0.5rem;}
  th,td{text-align:left; padding:0.5rem 0.55rem; border-bottom:1px solid var(--line); font-size:0.92rem;}
  th{background:#eef4ee; color:var(--forest-dark); font-weight:700;}
  .leder-side th{background:#eaf2f7; color:#1e4a63;}
  .admin-side th{background:#eaf2f7; color:#1e4a63;}

  .day-block{margin-bottom:0.9rem;}
  .day-block h3{margin:0 0 0.3rem; color:var(--forest); font-size:1.02rem;}
  .dagsplan-cols{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 2rem;
  }
  @media (max-width:600px){
    .dagsplan-cols{grid-template-columns:1fr; gap:0;}
  }
  ul.day-list{list-style:none; padding:0; margin:0;}
  ul.day-list li{padding:0.25rem 0; border-bottom:1px dashed var(--line); font-size:0.92rem;}

  ol.rules{padding-left:1.2rem; margin:0;}
  ol.rules li{margin-bottom:0.4rem;}

  form label{display:block; margin:0.7rem 0 0.25rem; font-weight:700; font-size:0.9rem;}
  form input, form select{
    width:100%; padding:0.55rem; border:1px solid var(--line);
    border-radius:6px; font-size:1rem; font-family:'Karla',sans-serif;
    background:#fbfbf8;
    max-width:100%;
  }
  form button{
    margin-top:1rem;
    background:var(--ember);
    color:white; border:none;
    padding:0.7rem 1.5rem;
    border-radius:999px; font-size:1.05rem;
    font-family:'Gochi Hand',sans-serif;
    cursor:pointer;
    box-shadow:0 5px 0 var(--ember-dark);
    transition:transform 0.12s ease, box-shadow 0.12s ease, background 0.15s ease;
  }
  form button:hover{background:var(--ember-dark);}
  form button:active{transform:translateY(5px); box-shadow:0 0 0 var(--ember-dark);}

  .flash{
    background:#e7f5ec; border:1px solid var(--forest);
    color:var(--forest-dark); padding:0.7rem 1rem;
    border-radius:8px; margin-bottom:1.25rem; font-size:0.92rem;
    display:none;
  }
  .flash.show{display:block;}

  .badge{
    display:inline-block; background:var(--sky); color:white;
    border-radius:999px; padding:0.1rem 0.6rem; font-size:0.78rem;
    font-weight:700; margin-left:0.4rem; vertical-align:middle;
  }

  .gruppe-antall-badge{
    margin-left:0; white-space:nowrap;
  }

  .empty{color:var(--muted); font-style:italic; font-size:0.9rem;}

  /* --- Turneringsbrakett --- */
  .bracket{
    display:flex;
    align-items:flex-start;
    gap:2.75rem;
    overflow-x:auto;
    padding:0.5rem 0.25rem 1.25rem;
  }
  .bracket-round{
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    min-width:200px;
  }
  .bracket-round-title{
    font-size:0.85rem;
    color:var(--forest-dark);
    text-align:center;
    margin-bottom:0.7rem;
    text-transform:uppercase;
    letter-spacing:0.06em;
  }
  .bracket-match{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:8px;
    margin:0 0 0.6rem;
    position:relative;
    overflow:hidden;
  }
  .bracket-team{
    display:flex;
    align-items:center;
    gap:0.5rem;
    padding:0.45rem 0.7rem;
    font-size:0.9rem;
  }
  .bracket-team .lag-navn{flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .bracket-team .lag-poeng{font-family:'Gochi Hand',sans-serif; font-size:1.05rem; min-width:1.2rem; text-align:center; color:var(--muted);}
  .bracket-team .lag-emoji{font-size:1rem; min-width:1.2rem; text-align:center;}
  .bracket-team:first-child{border-bottom:1px dashed var(--line);}
  .bracket-meta{
    font-size:0.72rem;
    color:var(--muted);
    text-align:center;
    padding:0.3rem 0.5rem 0.4rem;
    border-top:1px solid var(--line);
  }

  .kamp-na{border-color:var(--danger); box-shadow:0 0 0 1px var(--danger);}
  .kamp-neste{border-color:var(--sky-dark);}
  .kamp-badge{
    text-align:center;
    font-size:0.68rem;
    font-weight:700;
    padding:0.25rem 0.4rem;
    letter-spacing:0.03em;
  }
  .kamp-badge-na{
    background:var(--danger); color:white;
    border-radius:8px 8px 0 0;
    animation:pulseNa 1.8s ease-in-out infinite;
  }
  @keyframes pulseNa{0%,100%{opacity:1;} 50%{opacity:0.7;}}
  .kamp-badge-neste{
    background:var(--sky); color:white;
    border-radius:8px 8px 0 0;
  }
  .bracket-team.lag-vinner{background:rgba(34,139,34,0.16); font-weight:700; color:var(--forest-dark);}
  .bracket-team.lag-taper{background:rgba(193,68,68,0.14); opacity:0.75;}
  .bracket-team.lag-uavgjort{background:rgba(140,130,113,0.15); font-style:italic;}

  /* --- Admin-panel --- */
  .admin-side table input, .admin-side table select{
    width:100%; padding:0.35rem 0.4rem; border:1px solid var(--line);
    border-radius:5px; font-size:0.88rem; font-family:'Karla',sans-serif;
    background:#fbfbf8;
  }
  .admin-side td.action-cell{width:38px; text-align:center;}
  .row-delete{
    background:none; border:none; color:var(--danger);
    cursor:pointer; font-size:1.1rem; line-height:1; padding:0.2rem;
  }
  .row-delete:hover{color:#7d1f1f;}
  .add-row-btn{
    margin-top:0.7rem;
    background:transparent;
    border:1.5px dashed var(--sky);
    color:var(--sky-dark);
    padding:0.4rem 0.9rem;
    border-radius:6px;
    font-family:'Gochi Hand',sans-serif;
    font-size:0.88rem;
    cursor:pointer;
  }
  .add-row-btn:hover{background:#eaf2f7;}
  .add-row-btn.small{padding:0.3rem 0.7rem; font-size:0.8rem; margin-top:0.4rem;}

  .admin-day{margin-bottom:1.2rem; padding-bottom:1rem; border-bottom:1px solid var(--line);}
  .admin-day:last-child{border-bottom:none; padding-bottom:0;}
  .admin-day h3{margin:0 0 0.5rem; color:var(--forest);}
  .point-row{display:flex; gap:0.4rem; margin-bottom:0.4rem; align-items:center;}
  .point-row input{flex:1;}

  .rule-row{display:flex; gap:0.4rem; margin-bottom:0.4rem; align-items:center;}
  .rule-row input{flex:1;}
  .rule-row span.num{width:1.4rem; color:var(--muted); font-size:0.85rem; flex-shrink:0;}

  .admin-round{margin-bottom:1.3rem; padding-bottom:1.1rem; border-bottom:1px solid var(--line);}
  .admin-round:last-child{border-bottom:none;}
  .admin-round-header{display:flex; align-items:center; gap:0.6rem; margin-bottom:0.5rem;}
  .admin-round-header input{
    font-family:'Gochi Hand',sans-serif; font-size:1rem; max-width:220px;
    border:1px solid var(--line); border-radius:6px; padding:0.3rem 0.5rem; background:var(--card);
  }
  .admin-round-header .row-delete{font-size:1.15rem;}
  .round-actions{display:flex; gap:0.5rem; margin-top:0.9rem; flex-wrap:wrap;}

  .admin-kamp-block{
    border:1px solid var(--line);
    border-radius:10px;
    padding:0.7rem 0.8rem;
    margin-bottom:0.7rem;
    background:rgba(0,0,0,0.015);
  }
  .admin-kamp-lag-rad{
    display:flex;
    align-items:center;
    gap:0.5rem;
    margin-bottom:0.4rem;
  }
  .admin-kamp-lag-rad input{
    padding:0.4rem 0.55rem;
    border:1px solid var(--line);
    border-radius:6px;
    font-size:0.9rem;
    font-family:'Karla',sans-serif;
    background:var(--card);
  }
  .admin-kamp-lag-rad input.lag-navn-input{flex:1;}
  .admin-kamp-lag-rad input.lag-poeng-input{
    width:3rem; flex:0 0 auto; text-align:center;
  }
  .lag-status-knapper{display:flex; gap:0.3rem; flex-shrink:0;}
  .lag-status-btn{
    background:transparent;
    border:1.5px solid var(--line);
    border-radius:6px;
    width:2rem; height:2rem;
    font-size:1rem;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    opacity:0.45;
    transition:opacity 0.15s ease, border-color 0.15s ease, background 0.15s ease;
  }
  .lag-status-btn:hover{opacity:0.8;}
  .lag-status-btn.er-vinner{opacity:1; border-color:var(--forest); background:rgba(159,182,140,0.15);}
  .lag-status-btn.er-taper{opacity:1; border-color:var(--danger); background:rgba(193,68,68,0.12);}
  .lag-status-btn.er-uavgjort{opacity:1; border-color:var(--muted); background:rgba(140,130,113,0.18);}

  .admin-kamp-bunn-rad{
    display:flex;
    align-items:center;
    gap:0.5rem;
    flex-wrap:wrap;
    margin-top:0.5rem;
  }
  .admin-kamp-bunn-rad input{
    flex:1 1 100px;
    min-width:90px;
    padding:0.4rem 0.55rem;
    border:1px solid var(--line);
    border-radius:6px;
    font-size:0.9rem;
    font-family:'Karla',sans-serif;
    background:var(--card);
  }
  .kamp-status-knapper{display:flex; gap:0.4rem; flex-wrap:wrap;}
  .kamp-status-btn{
    background:transparent;
    border:1.5px dashed var(--line);
    color:var(--muted);
    padding:0.3rem 0.6rem;
    border-radius:999px;
    font-size:0.78rem;
    font-family:'Karla',sans-serif;
    cursor:pointer;
    white-space:nowrap;
  }
  .kamp-status-btn.aktiv-na{
    background:rgba(193,68,68,0.12); border:1.5px solid var(--danger); color:var(--danger); font-weight:700;
  }
  .kamp-status-btn.aktiv-neste{
    background:rgba(115,173,172,0.15); border:1.5px solid var(--sky-dark); color:var(--sky-dark); font-weight:700;
  }

  .save-toast{
    position:fixed;
    bottom:1.5rem;
    right:1.5rem;
    left:auto;
    max-width:min(360px, calc(100vw - 2rem));
    background:var(--ink);
    color:white;
    padding:0.85rem 1.2rem;
    border-radius:14px;
    box-shadow:0 10px 28px rgba(0,0,0,0.25);
    font-size:0.9rem;
    z-index:200;
    opacity:0;
    transform:translateY(16px);
    pointer-events:none;
    transition:opacity 0.25s ease, transform 0.25s ease;
  }
  .save-toast.show{
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
  }
  .save-toast.lagrer{background:var(--sky-dark);}
  .save-toast.ok{background:var(--forest); color:#1c2a14;}
  .save-toast.feil{background:var(--danger);}
  @media (max-width:600px){
    .save-toast{left:1rem; right:1rem; bottom:1rem; max-width:none;}
  }

  .admin-intro{
    background:#eaf2f7; border:1px solid #cfe0ea; color:#1e4a63;
    border-radius:8px; padding:0.8rem 1rem; margin-bottom:1.5rem; font-size:0.9rem;
  }

  #grupper-body tr{cursor:pointer;}
  #grupper-body tr:hover{background:#eaf2f7;}

  .modal-overlay{
    display:none;
    position:fixed; inset:0;
    background:rgba(21,52,32,0.5);
    align-items:center; justify-content:center;
    z-index:100;
    padding:1rem;
  }
  .modal-overlay.show{display:flex;}
  .modal-box{
    background:var(--card);
    border-radius:12px;
    padding:1.5rem 1.6rem;
    max-width:420px;
    width:100%;
    max-height:80vh;
    overflow-y:auto;
  }
  .modal-box-header{
    display:flex; justify-content:space-between; align-items:center;
    margin-bottom:0.9rem;
  }
  .modal-box-header h3{margin:0; color:var(--forest-dark); font-size:1.2rem;}
  .modal-close{
    background:none; border:none; font-size:1.3rem; line-height:1;
    color:var(--muted); cursor:pointer; padding:0.2rem 0.4rem;
  }
  .modal-close:hover{color:var(--ink);}
  .modal-participant-list{list-style:none; margin:0; padding:0;}
  .modal-participant-list li{
    padding:0.5rem 0; border-bottom:1px solid var(--line); font-size:0.92rem;
  }
  .modal-participant-list li:last-child{border-bottom:none;}

  .soverom-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
    gap:1rem;
  }
  @media (max-width:480px){
    .soverom-grid{grid-template-columns:1fr;}
  }
  .soverom-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:8px;
    padding:0.9rem 1rem;
  }
  .soverom-card h3{
    margin:0 0 0.2rem; color:var(--forest-dark); font-size:1.05rem;
  }
  .soverom-capacity{
    font-size:0.82rem; color:var(--muted); margin-bottom:0.5rem;
  }
  .soverom-card ul{list-style:none; margin:0; padding:0;}
  .soverom-card ul li{
    padding:0.25rem 0; border-bottom:1px dashed var(--line); font-size:0.9rem;
  }
  .soverom-card ul li:last-child{border-bottom:none;}

  .admin-soverom-block{
    margin-bottom:1.3rem; padding-bottom:1.1rem; border-bottom:1px solid var(--line);
  }
  .admin-soverom-block:last-child{border-bottom:none;}
  .admin-soverom-header{
    display:flex; gap:0.6rem; align-items:center; margin-bottom:0.4rem; flex-wrap:wrap;
  }
  .admin-soverom-header input[type="text"]{flex:1 1 160px;}
  .admin-soverom-header input[type="number"]{width:90px; flex:0 0 90px;}
  .soverom-fill-status{
    font-size:0.82rem; color:var(--muted); margin-bottom:0.6rem;
  }
  .soverom-fill-status.full{color:var(--ember-dark); font-weight:700;}
  .soverom-checklist{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(170px, 1fr));
    gap:0.35rem 0.9rem;
  }
  .soverom-checklist label{
    display:flex; align-items:center; gap:0.4rem;
    font-size:0.88rem; font-weight:400;
    margin:0; cursor:pointer;
  }
  .soverom-checklist input[type="checkbox"]{
    width:auto; margin:0; cursor:pointer;
  }
  .soverom-checklist label.disabled-check{
    color:var(--muted); cursor:not-allowed;
  }

  .import-box{
    background:#f4f7f1; border:1px dashed var(--line);
    border-radius:8px; padding:0.9rem 1rem; margin-bottom:1rem;
    display:flex; align-items:center; gap:0.9rem; flex-wrap:wrap;
  }
  .import-hint{
    font-size:0.85rem; color:var(--muted); margin:0; flex:1 1 260px;
  }
  .import-label{margin-top:0; cursor:pointer; white-space:nowrap;}
  .import-status{font-size:0.85rem; color:var(--forest-dark); font-weight:700;}

  .login-gate{
    max-width:360px;
    margin:2.5rem auto;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:10px;
    padding:2rem 1.75rem;
    text-align:center;
  }
  .login-gate .lock-icon{font-size:2rem; margin-bottom:0.5rem;}
  .login-gate h2{margin:0 0 0.4rem; color:var(--forest-dark); font-size:1.3rem;}
  .login-gate p{color:var(--muted); font-size:0.9rem; margin:0 0 1.2rem;}
  .login-gate input{
    width:100%; padding:0.6rem; border:1px solid var(--line);
    border-radius:6px; font-size:1rem; text-align:center;
    font-family:'Karla',sans-serif; background:#fbfbf8;
  }
  .login-gate button{
    margin-top:0.9rem; width:100%;
    background:var(--sky); color:white; border:none;
    padding:0.65rem; border-radius:6px; font-size:1rem;
    font-family:'Gochi Hand',sans-serif; cursor:pointer;
  }
  .login-gate button:hover{background:var(--sky-dark);}
  .login-gate .login-error{
    color:var(--danger); font-size:0.85rem; margin-top:0.7rem; min-height:1.1em;
  }
  .logout-row{
    display:flex; justify-content:flex-end; margin-bottom:1rem;
  }
  .logout-btn{
    background:transparent; border:1px solid var(--line);
    color:var(--muted); padding:0.35rem 0.8rem; border-radius:6px;
    font-size:0.82rem; cursor:pointer; font-family:'Karla',sans-serif;
  }
  .logout-btn:hover{background:#f1f1eb;}

  .card-header-row{
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:0.6rem; margin-bottom:0.85rem;
  }
  .card-header-row h2{margin-bottom:0;}
  .visibility-toggle{
    display:flex; align-items:center; gap:0.5rem;
    font-size:0.85rem; color:var(--muted); user-select:none;
  }
  .switch{
    position:relative; display:inline-block; width:40px; height:22px; flex-shrink:0;
  }
  .switch input{opacity:0; width:0; height:0;}
  .switch-track{
    position:absolute; cursor:pointer; inset:0;
    background:#c7cfc0; border-radius:999px; transition:background 0.15s ease;
  }
  .switch-track::before{
    content:''; position:absolute; height:16px; width:16px; left:3px; bottom:3px;
    background:white; border-radius:50%; transition:transform 0.15s ease;
  }
  .switch input:checked + .switch-track{background:var(--sky);}
  .switch input:checked + .switch-track::before{transform:translateX(18px);}
  .hidden-note{
    font-size:0.78rem; color:var(--muted); font-style:italic;
  }
