/* Grundkøb Koh Samui — enkel, lys, overskuelig stil */
:root{
  --bg:#f6f7f8; --surface:#ffffff; --line:#e6e7ea; --line-2:#d4d6db;
  --text:#1d1f23; --muted:#6b7077; --hint:#9aa0a8;
  --accent:#1d6fa5; --accent-bg:#e8f1fa;
  --grey-bg:#eef0f2; --grey-tx:#5f636a;
  --amber-bg:#fbeed3; --amber-tx:#8a5a08;
  --green-bg:#e2f3e4; --green-tx:#1f6b2e;
  --red-bg:#fbe4e4; --red-tx:#9a2c2c;
  --radius:10px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg); color:var(--text); font-size:15px; line-height:1.55;
}
a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}

/* ---- Layout ---- */
.app{display:flex; min-height:100vh}
.sidebar{
  width:220px; flex-shrink:0; background:var(--surface);
  border-right:1px solid var(--line); padding:18px 12px; position:sticky; top:0; height:100vh; overflow:auto;
}
.brand{font-weight:600; font-size:15px; padding:4px 10px 16px; display:flex; align-items:center; gap:8px; color:var(--text)}
.langsel{display:flex; gap:6px; padding:0 6px 10px}
.langsel a{flex:1; text-align:center; padding:5px 0; font-size:12px; font-weight:500; border:1px solid var(--line-2); border-radius:7px; color:var(--muted)}
.langsel a:hover{background:var(--grey-bg); text-decoration:none}
.langsel a.on{background:var(--accent); border-color:var(--accent); color:#fff}
.propsel{padding:0 6px 14px; margin-bottom:8px; border-bottom:1px solid var(--line)}
.propsel label{display:block; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--hint); margin:0 4px 5px}
.propsel select{width:100%; padding:7px 8px; font-size:12.5px; border:1px solid var(--line-2); border-radius:8px; background:#fff}
.nav{display:flex; flex-direction:column; gap:2px}
.nav a{
  display:flex; align-items:center; gap:10px; padding:9px 11px; border-radius:8px;
  color:var(--text); font-size:14px;
}
.nav a:hover{background:var(--grey-bg); text-decoration:none}
.nav a.active{background:var(--accent-bg); color:var(--accent); font-weight:500}
.nav .ico{width:18px; text-align:center; flex-shrink:0}
.sidebar .who{margin-top:auto; padding:14px 10px 0; border-top:1px solid var(--line); font-size:13px; color:var(--muted)}
.sidebar .who a{font-size:13px}

.main{flex:1; min-width:0; padding:26px 32px 60px}
.page-head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:6px; flex-wrap:wrap}
.page-head h1{font-size:23px; font-weight:600; margin:0}
.lead{color:var(--muted); margin:2px 0 22px; max-width:680px}

/* ---- Cards & sections ---- */
.card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; margin-bottom:18px}
.card h2{font-size:16px; font-weight:600; margin:0 0 12px}
.grid{display:grid; gap:14px}
.cols-2{grid-template-columns:1fr 1fr}
.cols-4{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}

.metric{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:14px 16px}
.metric .label{font-size:13px; color:var(--muted)}
.metric .value{font-size:26px; font-weight:600; margin-top:2px}

/* ---- Pills ---- */
.pill{display:inline-block; font-size:12px; padding:3px 10px; border-radius:20px; white-space:nowrap; font-weight:500}
.pill-grey{background:var(--grey-bg); color:var(--grey-tx)}
.pill-amber{background:var(--amber-bg); color:var(--amber-tx)}
.pill-green{background:var(--green-bg); color:var(--green-tx)}
.pill-red{background:var(--red-bg); color:var(--red-tx)}

/* ---- Tables ---- */
table.data{width:100%; border-collapse:collapse; font-size:14px}
table.data th{text-align:left; font-weight:500; color:var(--muted); font-size:12.5px; padding:8px 10px; border-bottom:1px solid var(--line)}
table.data td{padding:11px 10px; border-bottom:1px solid var(--line); vertical-align:top}
table.data tr:last-child td{border-bottom:none}
table.data td .desc{color:var(--muted); font-size:13px; margin-top:3px}
.right{text-align:right}
.nowrap{white-space:nowrap}

/* ---- Forms ---- */
.field{margin-bottom:12px}
.field label{display:block; font-size:13px; color:var(--muted); margin-bottom:4px}
input[type=text],input[type=password],input[type=date],input[type=number],input[type=email],select,textarea{
  width:100%; padding:9px 11px; border:1px solid var(--line-2); border-radius:8px;
  font:inherit; background:#fff; color:var(--text);
}
input:focus,select:focus,textarea:focus{outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-bg)}
textarea{min-height:80px; resize:vertical}
.form-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px}

.btn{
  display:inline-flex; align-items:center; gap:6px; padding:9px 16px; border-radius:8px;
  border:1px solid var(--line-2); background:#fff; color:var(--text); font:inherit; font-size:14px; cursor:pointer;
}
.btn:hover{background:var(--grey-bg); text-decoration:none}
.btn-primary{background:var(--accent); border-color:var(--accent); color:#fff}
.btn-primary:hover{background:#175b87}
.btn-sm{padding:5px 10px; font-size:13px}
.btn-danger{color:var(--red-tx); border-color:var(--red-bg)}
.btn-danger:hover{background:var(--red-bg)}
.actions{display:flex; gap:8px; flex-wrap:wrap; align-items:center}

details.add{margin-bottom:18px}
details.add summary{
  display:inline-flex; align-items:center; gap:6px; cursor:pointer; list-style:none;
  padding:9px 16px; border-radius:8px; background:var(--accent); color:#fff; font-size:14px; font-weight:500;
}
details.add summary::-webkit-details-marker{display:none}
details.add[open] summary{background:var(--accent); border-radius:8px 8px 0 0}
details.add .panel{border:1px solid var(--line); border-radius:0 8px 8px 8px; padding:18px; background:var(--surface)}

.flash{background:var(--green-bg); color:var(--green-tx); padding:11px 16px; border-radius:8px; margin-bottom:16px; font-size:14px}
.empty{color:var(--hint); padding:18px 0; text-align:center}
.timeline-item{position:relative; padding:4px 0 18px 22px; border-left:2px solid var(--line)}
.timeline-item:last-child{border-left-color:transparent}
.timeline-item::before{content:""; position:absolute; left:-7px; top:7px; width:12px; height:12px; border-radius:50%; background:var(--accent)}
.timeline-item .date{color:var(--hint); font-size:12.5px}
.gallery{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px}
.gallery .galitem{border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#fff}
.gallery a{display:block}
.gallery img{width:100%; height:120px; object-fit:cover; display:block}
.gallery video{width:100%; height:120px; object-fit:cover; display:block; background:#000}
.gallery .vid{position:relative}
.gallery .vid .play{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); color:#fff; font-size:26px; text-shadow:0 1px 4px rgba(0,0,0,.6); pointer-events:none}
.gallery .cap{padding:6px 8px 2px; font-size:12px; color:var(--muted)}
.galactions{display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:2px 8px 9px; font-size:12px}
.galactions form{display:inline; margin:0}
.linklike{background:none; border:none; padding:0; font:inherit; font-size:12px; color:var(--accent); cursor:pointer}
.linklike:hover{text-decoration:underline}
.linklike.danger{color:var(--red-tx)}
.fileicon{display:inline-flex; align-items:center; gap:6px}

/* ---- Login ---- */
.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px}
.login-box{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:30px; width:100%; max-width:360px}
.login-box h1{font-size:20px; margin:0 0 4px}
.login-box p{color:var(--muted); margin:0 0 20px; font-size:14px}
.error{background:var(--red-bg); color:var(--red-tx); padding:10px 14px; border-radius:8px; font-size:14px; margin-bottom:14px}

/* ---- Responsiv ---- */
@media (max-width:760px){
  .app{flex-direction:column}
  .sidebar{width:100%; height:auto; position:static; border-right:none; border-bottom:1px solid var(--line)}
  .nav{flex-direction:row; flex-wrap:wrap}
  .nav a{padding:7px 10px}
  .nav a .label{display:none}
  .nav a .ico{width:auto}
  .nav a.active .label{display:inline}
  .main{padding:20px 16px 50px}
  .cols-2{grid-template-columns:1fr}
}
