:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#18212a;background:#f3f6f8}*{box-sizing:border-box}body{margin:0}.shell{min-height:100vh}.topbar{background:#163a2d;color:white;padding:12px 18px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}.brand{font-size:1.2rem;font-weight:700}.topbar nav{display:flex;gap:8px;flex-wrap:wrap}.topbar a{color:white;text-decoration:none;padding:8px 10px;border-radius:8px}.topbar a.active,.topbar a:hover{background:rgba(255,255,255,.16)}.content{max-width:1200px;margin:0 auto;padding:18px}h1{margin-top:0}h2{font-size:1.05rem;margin-top:22px}.panel{background:white;border:1px solid #d9e0e4;border-radius:12px;padding:16px;margin-bottom:16px}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.wrap{flex-wrap:wrap}input,select,button{font:inherit}input,select{border:1px solid #bdc8ce;border-radius:8px;padding:9px 10px;min-height:40px}button{border:1px solid #aab8be;background:#fff;border-radius:8px;padding:9px 13px;cursor:pointer}button.primary{background:#176a4b;color:white;border-color:#176a4b}button.danger{background:#a63838;color:white;border-color:#a63838}button.small{padding:5px 8px;min-height:auto;font-size:.88rem}.notice{background:#fff4cc;border:1px solid #e1c75f;padding:10px 12px;border-radius:8px;margin-bottom:14px}.muted{color:#64727a}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.metric{background:white;border:1px solid #d9e0e4;border-radius:10px;padding:12px}.metric span{display:block;color:#64727a;font-size:.85rem}.metric strong{font-size:1.25rem}.assignment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px}.spot-card{display:flex;gap:12px;align-items:center;border:1px solid #d6dde1;border-radius:10px;padding:10px}.spot-card.good{border-left:5px solid #176a4b}.spot-number{font-size:1.8rem;font-weight:800;min-width:42px;text-align:center}.member-pick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px;margin-bottom:14px}.pick-row{border:1px solid #d9e0e4;border-radius:8px;padding:9px;display:flex;gap:8px;align-items:center}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px 8px;border-bottom:1px solid #e4e9ec;white-space:nowrap}th{font-size:.85rem;color:#52616a}.clickable{cursor:pointer}.clickable:hover{background:#f6f8f9}.two-col{display:grid;grid-template-columns:2fr 1fr;gap:16px}.editor label,.settings-grid label{display:grid;gap:5px;margin-bottom:12px}.check{display:flex!important;align-items:center;gap:8px}.check input{min-height:auto}.spot-pill{display:inline-grid;place-items:center;min-width:32px;height:28px;border-radius:14px;background:#e7ecef;font-weight:700}.spot-pill.good{background:#d7eee5}.bars{display:grid;gap:6px;max-width:760px}.bar-row{display:grid;grid-template-columns:42px 1fr 48px;gap:8px;align-items:center}.bar-track{height:12px;background:#e9eef0;border-radius:6px;overflow:hidden}.bar{height:100%;background:#176a4b}.names .bar-row{grid-template-columns:70px 1fr 52px}.settings-grid{max-width:620px}.info{display:grid;gap:6px;margin-top:12px}code{white-space:normal;word-break:break-all;background:#f1f4f5;padding:8px;border-radius:6px}@media(max-width:720px){.content{padding:10px}.topbar{padding:10px}.topbar nav{width:100%;overflow-x:auto;flex-wrap:nowrap}.topbar a{white-space:nowrap}.metrics{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.toolbar input{max-width:100%}.assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spot-card{padding:8px}.spot-number{font-size:1.5rem}.member-pick-grid{grid-template-columns:1fr}}

.auth-area{display:flex;align-items:center;gap:.6rem;margin-left:auto}.auth-area form{margin:0}.auth-link{white-space:nowrap}.admin-badge{font-size:.9rem;font-weight:600}.login-panel{max-width:460px}.login-panel form{display:grid;gap:1rem}.login-panel label{display:grid;gap:.35rem}

.capacity-input{width:90px}.spot-group{display:grid;gap:8px}.spot-card .occupancy{font-size:.8rem;color:#64727a}

.qr-box{background:white;border:1px solid #d9e0e4;border-radius:12px;padding:12px;max-width:320px;margin:12px 0}.qr-box svg{width:100%;height:auto;display:block}.editor hr{border:0;border-top:1px solid #e4e9ec;margin:20px 0}


.qr-modal-backdrop{
    position:fixed;
    inset:0;
    z-index:2000;
    background:rgba(0,0,0,.58);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:16px;
    overflow:auto;
}
.qr-modal{
    width:min(460px,100%);
    max-height:calc(100vh - 32px);
    overflow:auto;
    background:#fff;
    border-radius:14px;
    padding:18px;
    box-shadow:0 18px 60px rgba(0,0,0,.35);
}
.qr-modal-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}
.qr-modal-header h2{
    margin:0 0 4px;
}
.qr-close{
    font-size:1.35rem;
    line-height:1;
    padding:7px 10px;
}
.qr-box-modal{
    width:min(340px,100%);
    max-width:none;
    margin:16px auto;
}
.qr-url{
    display:block;
    width:100%;
    margin-bottom:12px;
}
@media(max-width:720px){
    .qr-modal-backdrop{padding:8px;align-items:flex-start;}
    .qr-modal{
        width:100%;
        max-height:calc(100vh - 16px);
        margin-top:8px;
        padding:14px;
    }
    .qr-box-modal{
        width:min(82vw,340px);
    }
}


textarea{font:inherit;border:1px solid #bdc8ce;border-radius:8px;padding:9px 10px;width:100%;resize:vertical}.member-layout{grid-template-columns:minmax(0,1.45fr) minmax(360px,1fr)}.member-editor{min-width:0}.member-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.member-form-grid .span-2{grid-column:1/-1}.member-photo-row{display:flex;align-items:center;gap:16px;margin-bottom:18px}.member-photo{width:118px;height:118px;object-fit:cover;border-radius:12px;border:1px solid #d5dde1;background:#f1f4f5}.member-photo-empty{display:grid;place-items:center;font-size:2.2rem;color:#829099}.file-label{display:grid;gap:6px;margin-bottom:8px}.file-label input[type=file]{max-width:260px;padding:6px}.comment-count{display:block;text-align:right;font-size:.82rem;margin-top:3px}@media(max-width:900px){.member-layout{grid-template-columns:1fr}.member-form-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.member-form-grid{grid-template-columns:1fr}.member-form-grid .span-2{grid-column:auto}.member-photo-row{align-items:flex-start}.member-photo{width:96px;height:96px}}

.photo-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:8px 0 12px}
.file-button{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid #bbb;border-radius:8px;cursor:pointer;background:#f5f5f5}
.file-button input[type=file]{display:none}
.camera-panel{margin-top:12px;padding:12px;border:1px solid #ddd;border-radius:10px;background:#fafafa}
.camera-preview{display:block;width:min(100%,640px);max-height:70vh;object-fit:contain;border-radius:8px;background:#111;margin-bottom:10px}

/* ===== Modern Fiskeklub UI ===== */
:root{--navy:#0b1f33;--sea:#0f766e;--line:#e3e9ee;--muted:#6b7785;--shadow:0 10px 30px rgba(11,31,51,.08)}
body{margin:0;background:#f4f7f9;color:#17202a}.app-shell{min-height:100vh;display:flex}.sidebar{width:248px;position:fixed;inset:0 auto 0 0;z-index:40;background:linear-gradient(180deg,var(--navy),#071725);color:white;padding:24px 16px;display:flex;flex-direction:column}.brand-block{display:flex;align-items:center;gap:12px;padding:5px 8px 26px;color:#fff;text-decoration:none}.brand-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:23px;background:rgba(255,255,255,.1)}.brand-copy{display:flex;flex-direction:column}.brand-copy span{font-size:11px;color:#8fa9be;text-transform:uppercase;letter-spacing:.13em}.side-nav{display:flex;flex-direction:column;gap:6px}.side-nav a{display:flex;align-items:center;gap:12px;color:#a9bdcc;text-decoration:none;padding:11px 12px;border-radius:12px;font-weight:650}.side-nav a.active,.side-nav a:hover{background:#0f766e;color:#fff}.nav-icon{width:24px;text-align:center;font-size:18px}.sidebar-auth{margin-top:auto;border-top:1px solid rgba(255,255,255,.09);padding-top:16px}.admin-profile{display:flex;align-items:center;gap:10px;margin-bottom:12px}.avatar-small{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#d9f4ef;color:#075e57;font-weight:800}.admin-profile div:last-child{display:flex;flex-direction:column}.admin-profile span{font-size:11px;color:#8fa9be}.ghost{background:transparent!important;color:#c5d4df!important}.full{width:100%}.modern-auth{color:white}.app-main{margin-left:248px;width:calc(100% - 248px)}.modern-content{max-width:1480px;margin:auto;padding:34px 36px 60px}.mobile-header,.bottom-nav{display:none}
.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin:0 0 24px}.page-heading h1{font-size:32px;letter-spacing:-.035em;margin:2px 0 4px;color:#10263b}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--sea)}.page-subtitle{margin:0;color:var(--muted);font-size:14px}.live-pill{background:white;border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800}.live-pill span{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22a06b;margin-right:6px}.panel{background:#fff!important;border:1px solid var(--line)!important;border-radius:18px!important;box-shadow:var(--shadow)!important;padding:22px!important;margin-bottom:20px!important}.metric{border-radius:16px!important;box-shadow:0 5px 18px rgba(11,31,51,.055)!important}.assignment-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))!important;gap:13px!important}.spot-card{background:#fff!important;border:1px solid var(--line)!important;border-radius:16px!important;padding:15px!important;box-shadow:0 4px 14px rgba(11,31,51,.05)!important}.spot-card.good{border-color:#a8ddd4!important;background:linear-gradient(145deg,#fff,#f1fbf8)!important}
.membership-card-editor{padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8fafb;margin:14px 0}.section-title{font-weight:800;color:#17324a;margin-bottom:10px}.card-choice{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.card-option{background:white}.card-option.selected{background:#0f766e!important;color:white!important;border-color:#0f766e!important}.card-status{display:inline-block;margin-top:10px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.card-status.valid{background:#e5f7ef;color:#08724c}.card-status.expired{background:#fff0f0;color:#b42d2d}.card-status.none{background:#eef1f4;color:#65717d}
.fisher-identity{display:flex;align-items:center;gap:10px;margin:9px 0}.fisher-photo{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid white;box-shadow:0 2px 9px rgba(11,31,51,.16);flex:none}.fisher-placeholder{display:grid;place-items:center;background:#dcece9;color:#0c6b63;font-weight:850}.fisher-copy{display:flex;flex-direction:column;gap:5px;min-width:0}.fisher-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.permit-badge{display:inline-block;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800;margin-left:4px}.permit-badge.annual{background:#e6f6ee;color:#08724c}.permit-badge.day{background:#e8f2ff;color:#245e9a}.permit-badge.expired{background:#fff0f0;color:#b42d2d}.table-person{display:flex;align-items:center;gap:8px}.table-person img{width:34px;height:34px;border-radius:50%;object-fit:cover}
input,select,textarea{border-radius:10px!important;border:1px solid #d7dee6!important}button{border-radius:10px!important}
@media(max-width:850px){body{padding-bottom:74px}.sidebar{display:none}.app-main{margin-left:0;width:100%}.mobile-header{display:flex;position:sticky;top:0;z-index:35;height:58px;align-items:center;justify-content:space-between;padding:0 16px;background:rgba(255,255,255,.95);border-bottom:1px solid var(--line)}.mobile-header a{text-decoration:none;color:#10263b}.modern-content{padding:20px 14px 28px}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;z-index:60;left:0;right:0;bottom:0;height:68px;background:rgba(255,255,255,.97);border-top:1px solid var(--line)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:#778491}.bottom-nav a.active{color:var(--sea)}.bottom-nav small{font-size:9px}.assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.fisher-photo{width:46px;height:46px}.page-heading h1{font-size:27px}}

/* ===== MudBlazor Fiskeklub V1 ===== */
.fisk-appbar{background:linear-gradient(90deg,#0b1f33,#12314a)!important}
.fisk-brand{font-weight:800!important;letter-spacing:-.02em}
.fisk-drawer{background:linear-gradient(180deg,#0b1f33,#071725)!important}
.fisk-drawer .mud-nav-link{border-radius:12px;margin:3px 0;color:#b8cad7!important}
.fisk-drawer .mud-nav-link.active{background:#0f766e!important;color:white!important}
.fisk-drawer .mud-nav-link:hover{background:rgba(255,255,255,.08)!important;color:white!important}
.mud-brand-panel{display:flex;gap:12px;align-items:center;padding:22px 18px 16px;color:white}
.mud-brand-panel>div:last-child{display:flex;flex-direction:column}.mud-brand-panel small{color:#8fa9be;text-transform:uppercase;font-size:10px;letter-spacing:.12em}
.mud-brand-logo{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:rgba(255,255,255,.1);font-size:23px}
.mud-drawer-bottom{position:absolute;left:14px;right:14px;bottom:18px}.admin-card{background:rgba(255,255,255,.06)!important;color:white!important;border-color:rgba(255,255,255,.12)!important;border-radius:14px!important}
.mud-main{background:#f4f7f9;min-height:100vh}
.mud-main .panel{border-radius:18px!important;border:1px solid #e3e9ee!important;box-shadow:0 8px 28px rgba(11,31,51,.07)!important}
.mud-main .spot-card{border-radius:16px!important;transition:transform .15s ease,box-shadow .15s ease}
.mud-main .spot-card:hover{transform:translateY(-2px);box-shadow:0 9px 25px rgba(11,31,51,.10)!important}
.mud-main button{font-weight:650}
@media(max-width:960px){.mud-drawer-bottom{position:static;margin:30px 14px 18px}.mud-main{padding-bottom:18px}}

/* ===== MudBlazor V2 - visibly redesigned pages ===== */
.mud-fish-symbol{font-size:25px;margin-right:10px;line-height:1}
.mud-page-title{font-weight:850!important;letter-spacing:-.045em!important;color:#102a43}
.mud-dashboard-panel{border:1px solid #e2e8ee!important;border-radius:20px!important;background:#fff!important;box-shadow:0 12px 35px rgba(11,31,51,.07)!important}
.mud-kpi{height:100%;border:1px solid #e2e8ee!important;border-radius:18px!important;background:linear-gradient(145deg,#fff,#f9fbfc)!important;display:flex;flex-direction:column;gap:5px}.mud-kpi .mud-typography-h4{font-weight:850;color:#102a43}
.mud-search{min-width:240px;max-width:380px}.mud-filter{min-width:145px}.mud-wrap{flex-wrap:wrap!important}
.mud-select-member{padding:13px;border:1px solid #e2e8ee;border-radius:16px;cursor:pointer;transition:.15s;background:#fff}.mud-select-member:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(11,31,51,.08)}.mud-select-member.selected{border-color:#0f766e;background:#edf9f6;box-shadow:0 0 0 2px rgba(15,118,110,.10)}.mud-member-select-copy{min-width:0}.mud-member-select-copy .mud-typography-subtitle2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mud-spot-card{height:100%;border:1px solid #e2e8ee!important;border-radius:18px!important;background:#fff!important;overflow:hidden}.mud-spot-card.premium{border-color:#8fd0c7!important;background:linear-gradient(150deg,#fff,#f1fbf8)!important}.mud-spot-card .mud-card-header{padding-bottom:8px}.mud-fisher-row{border-radius:13px!important;background:#f7f9fb!important;border:1px solid #edf0f3}.mud-fisher-copy{min-width:0}.mud-fisher-copy .mud-typography-subtitle2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mud-chipline{display:flex;flex-wrap:wrap;align-items:center;gap:3px}
.mud-member-row-click{cursor:pointer}.mud-sticky-editor{position:sticky;top:84px}.mud-editor-avatar{width:76px!important;height:76px!important}.mud-photo-stage{min-height:220px;border:1px dashed #cbd5df;border-radius:18px;background:#f7f9fb;display:grid;place-items:center;overflow:hidden}.mud-photo-stage img{max-height:320px;max-width:100%;object-fit:contain;border-radius:14px}.mud-file-button{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:10px;background:#fff;border:1px solid #cbd5df;font-weight:650;cursor:pointer}.mud-file-button input{display:none}
.mud-tabs-panels{background:transparent!important}
@media(max-width:959px){.mud-sticky-editor{position:static}.mud-search{min-width:100%;max-width:none}}


/* ===== Reliable member photo rendering ===== */
.mud-person-photo{
    display:block;
    flex:0 0 auto;
    object-fit:cover;
    object-position:center;
    border-radius:50%;
    background:#e8eef2;
    border:2px solid #fff;
    box-shadow:0 3px 12px rgba(11,31,51,.16);
}
.mud-person-photo-sm{
    width:34px;
    height:34px;
}
.mud-person-photo-md{
    width:44px;
    height:44px;
}
.mud-person-photo-lg{
    width:56px;
    height:56px;
}
.mud-editor-photo{
    width:76px;
    height:76px;
}
.mud-photo-stage img{
    display:block;
    width:auto;
    max-width:100%;
    max-height:320px;
    object-fit:contain;
}
@media(max-width:600px){
    .mud-person-photo-lg{
        width:48px;
        height:48px;
    }
}


/* ===== Manual add angler dialog ===== */
.manual-angler-list{
    max-height:55vh;
    overflow:auto;
    display:flex;
    flex-direction:column;
    gap:8px;
}
.manual-angler-row{
    border:1px solid #e2e8ee!important;
    border-radius:14px!important;
    background:#fff!important;
}
.manual-angler-row:hover{
    background:#f8fbfc!important;
}
.manual-angler-copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:2px;
}


/* ===== Deterministic manual angler modal ===== */
.manual-modal-overlay{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:18px!important;
    z-index:1400!important;
}
.manual-modal-card{
    width:min(680px, 96vw);
    max-height:88vh;
    overflow:hidden;
    border-radius:20px!important;
    display:flex;
    flex-direction:column;
}
.manual-modal-card .manual-angler-list{
    flex:1 1 auto;
    min-height:120px;
    max-height:55vh;
    overflow-y:auto;
}
@media(max-width:600px){
    .manual-modal-overlay{
        align-items:flex-start!important;
        padding:8px!important;
    }
    .manual-modal-card{
        width:100%;
        max-height:94vh;
        margin-top:8px;
        border-radius:16px!important;
    }
}

.fisk-language-select {
    background: rgba(255,255,255,.12);
    color: #fff;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 8px;
    padding: 6px 8px;
    margin-right: 6px;
    font-size: .9rem;
}
.fisk-language-select option { color: #111; background: #fff; }
@media (max-width: 600px) {
    .fisk-language-select { max-width: 118px; font-size: .78rem; padding: 5px 4px; }
}
