/* ============================================================
   SVANSTUL LØYPELAG — member portal shell (loads after styles.css)
   ============================================================ */

.pt-app{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh;background:var(--paper)}

/* ---------------- sidebar ---------------- */
.pt-side{background:var(--green-900);color:var(--cream);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:20px 14px 16px;z-index:60}
.pt-brand{display:flex;align-items:center;gap:11px;padding:2px 10px 16px;border-bottom:1px solid #ffffff12;margin-bottom:12px}
.pt-brand img{width:44px;height:44px}
.pt-brand .brand__name{font-size:1rem}
.pt-brand .brand__sub{font-size:.54rem;display:block;margin-top:2px}
.pt-burger{display:none;margin-left:auto;background:none;border:0;color:var(--cream);cursor:pointer;padding:6px}
.pt-burger svg{width:26px;height:26px;display:block}
.pt-menu{display:flex;flex-direction:column;flex:1;min-height:0}
.pt-nav{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:4px 0}
.pt-nav__label{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--sage-400);padding:16px 10px 7px;font-weight:500}
.pt-nav a{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:8px;color:#e7dfc2bb;font-weight:600;font-size:.91rem;transition:.14s}
.pt-nav a svg{width:17px;height:17px;flex-shrink:0;opacity:.75}
.pt-nav a:hover{background:#ffffff10;color:var(--cream)}
.pt-nav a.is-active{background:var(--cream);color:var(--green-800)}
.pt-nav a.is-active svg{opacity:1}
.pt-side__foot{border-top:1px solid #ffffff12;padding-top:12px;display:flex;flex-direction:column;gap:10px}
.pt-back{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--sage-400);padding:6px 10px}
.pt-back:hover{color:var(--cream)}
.pt-back svg{width:14px;height:14px}
.pt-user{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#ffffff0a;border:1px solid #ffffff12;border-radius:10px}
.pt-user__av{width:34px;height:34px;border-radius:50%;background:var(--cream);color:var(--green-800);display:grid;place-items:center;font-family:var(--font-mono);font-size:.72rem;font-weight:600;flex-shrink:0}
.pt-user__txt{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.pt-user__txt strong{font-size:.84rem;color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-user__txt a{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sage-400)}
.pt-user__txt a:hover{color:var(--cream)}

/* ---------------- main column ---------------- */
.pt-main{padding:clamp(26px,4vw,52px) clamp(20px,4vw,56px);max-width:1160px;width:100%}
.pt-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:30px}
.pt-head .eyebrow{color:var(--sage);display:block;margin-bottom:8px}
.pt-head h1{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:clamp(2rem,3.4vw,2.8rem);color:var(--green-800);line-height:1.04;padding-bottom:.1em}
.pt-head__actions{display:flex;gap:10px;flex-wrap:wrap}

/* ---------------- cards ---------------- */
.card{background:#fff;border:1px solid #23412f1c;border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-bottom:1px solid #23412f12}
.card__title{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);font-weight:500}
.card__body{padding:22px}

/* ---------------- stats ---------------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}
.stat{background:#fff;border:1px solid #23412f1c;border-radius:12px;padding:18px 20px 16px;box-shadow:var(--shadow)}
.stat__num{font-family:var(--font-display);font-size:2.1rem;color:var(--green-800);line-height:1}
.stat__lbl{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);margin-top:7px}
@media(max-width:760px){.stats{grid-template-columns:1fr 1fr}}

/* ---------------- toolbar / search ---------------- */
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.search{position:relative;flex:1;min-width:190px;max-width:340px}
.search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--sage);pointer-events:none}
.search input{width:100%;padding:11px 14px 11px 38px;border:1.5px solid #23412f22;border-radius:100px;font-family:var(--font-sans);font-size:.92rem;color:var(--ink);background:#fff}
.search input:focus{outline:none;border-color:var(--green-700);box-shadow:0 0 0 3px #2f544022}
.toolbar select{padding:11px 34px 11px 14px;border:1.5px solid #23412f22;border-radius:100px;font-family:var(--font-sans);font-size:.9rem;font-weight:600;color:var(--ink);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23687f66' stroke-width='2.6'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 13px center;appearance:none;cursor:pointer}
.toolbar select:focus{outline:none;border-color:var(--green-700)}
.toolbar__spacer{flex:1}

/* ---------------- buttons ---------------- */
.btn--sm{padding:10px 18px;font-size:.88rem;gap:8px}
.btn--sm svg{width:15px;height:15px}

/* ---------------- table ---------------- */
.tblwrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:.92rem}
.tbl th{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);font-weight:500;text-align:left;padding:13px 18px;border-bottom:1px solid #23412f14;white-space:nowrap}
.tbl td{padding:13px 18px;border-bottom:1px solid #23412f0d;vertical-align:middle}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl tbody tr:hover{background:#23412f06}
.tbl .num{font-family:var(--font-mono);font-size:.84rem}
.cell-main{font-weight:700;color:var(--ink);white-space:nowrap}
.cell-sub{font-size:.8rem;color:var(--sage);margin-top:1px}
.tbl__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-top:1px solid #23412f12;font-family:var(--font-mono);font-size:.72rem;color:var(--sage);flex-wrap:wrap}

/* row action buttons */
.rowact{display:flex;gap:6px;justify-content:flex-end}
.iconbtn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;border:1px solid #23412f1f;background:#fff;color:var(--green-700);cursor:pointer;transition:.14s}
.iconbtn svg{width:15px;height:15px}
.iconbtn:hover{background:var(--green-800);border-color:var(--green-800);color:var(--cream)}
.iconbtn--danger:hover{background:var(--st-closed);border-color:var(--st-closed)}

/* ---------------- forms ---------------- */
.field{margin-bottom:16px}
.field label{display:block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:#5a6a5d;margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1.5px solid #23412f22;border-radius:8px;font-family:var(--font-sans);font-size:.96rem;color:var(--ink);background:#fff}
.field textarea{resize:vertical;min-height:96px;line-height:1.55}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--green-700);box-shadow:0 0 0 3px #2f544022}
.field select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23687f66' stroke-width='2.6'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 13px center;cursor:pointer}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.fgrid--3{grid-template-columns:1fr 1fr 1fr}
@media(max-width:680px){.fgrid,.fgrid--3{grid-template-columns:1fr}}
.checkrow{display:flex;align-items:flex-start;gap:10px;font-size:.93rem;color:#46554a;cursor:pointer;padding:6px 0}
.checkrow input{width:18px;height:18px;accent-color:var(--green-700);margin-top:2px;flex-shrink:0}

/* ---------------- segmented status control ---------------- */
.seg{display:inline-flex;background:var(--cream-100);border:1px solid #23412f1f;border-radius:100px;padding:3px;gap:2px}
.seg button{border:0;background:none;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;padding:7px 12px;border-radius:100px;cursor:pointer;color:#5a6a5d;white-space:nowrap;transition:.14s}
.seg button:hover{color:var(--ink)}
.seg button.on[data-st="open"]{background:var(--st-open);color:#fff}
.seg button.on[data-st="partial"]{background:var(--st-partial);color:#fff}
.seg button.on[data-st="closed"]{background:var(--st-closed);color:#fff}

/* ---------------- misc ---------------- */
.pt-note{background:var(--cream-100);border:1px dashed #23412f33;border-radius:8px;padding:12px 15px;font-family:var(--font-mono);font-size:.7rem;line-height:1.55;color:#5a6a5d}
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px);background:var(--green-800);color:var(--cream);font-weight:600;font-size:.92rem;padding:13px 22px;border-radius:100px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:.25s;z-index:100;display:flex;align-items:center;gap:9px}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast svg{width:16px;height:16px}

/* role badges */
.badge{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;padding:3px 8px;border-radius:100px;vertical-align:2px;margin-left:4px}
.badge--driver{background:#e4eee2;color:#2c5a36}

/* category tags (news) */
.cat{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;padding:4px 10px;border-radius:100px;font-weight:500;white-space:nowrap}
.cat--utstyr{background:#dde8f0;color:#2a5578}
.cat--okonomi{background:var(--st-partial-bg);color:#7a5512}
.cat--dugnad{background:#e4eee2;color:#2c5a36}
.cat--rennet{background:#f0e4ec;color:#6b2860}
.cat--loypelag{background:var(--cream-200);color:#4a5a3e}

/* ---------------- mobile ---------------- */
@media(max-width:920px){
  .pt-app{grid-template-columns:1fr}
  .pt-side{flex-direction:row;align-items:center;height:auto;padding:10px 16px}
  .pt-brand{padding:0;border:0;margin:0}
  .pt-burger{display:block}
  .pt-menu{display:none;position:fixed;top:65px;left:0;right:0;background:var(--green-900);flex-direction:column;padding:8px 16px 18px;border-bottom:1px solid #ffffff1a;max-height:calc(100vh - 65px);overflow-y:auto;box-shadow:0 30px 60px -20px rgba(0,0,0,.5)}
  .pt-side.open .pt-menu{display:flex}
  .pt-nav a{padding:13px 12px;font-size:1rem}
  .pt-head{margin-bottom:22px}
}
