/* =========================================================
   RH Anbudsportal – stil enligt Rights Hand grafisk profil v3
   Tall #034A46 · Aprikos #F89572 · Linne #F3EDE9 · Poppins
   ========================================================= */

@font-face{font-family:'Poppins';src:url('../fonts/poppins-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Poppins';src:url('../fonts/poppins-medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Poppins';src:url('../fonts/poppins-bold.woff2') format('woff2');font-weight:700;font-display:swap}

:root{
  --tall:#034A46; --tall-light:#356E6B; --tall-dark:#023431;
  --apricot:#F89572; --apricot-dark:#EA6D41; --apricot-light:#F4C7B7;
  --linne:#F3EDE9; --sand:#D3CECA; --white:#fff;
  --brown:#3E3C3B; --anthracite:#1D1C1C;
  --ok:#2E7D5B; --warn:#B8860B; --err:#C0392B; --grey:#8A8A8A;
  --radius:10px; --shadow:0 1px 3px rgba(29,28,28,.08),0 4px 14px rgba(29,28,28,.05);
  --font:'Poppins',Verdana,-apple-system,Segoe UI,sans-serif;
}

*{box-sizing:border-box}
body{margin:0;font-family:var(--font);font-weight:400;color:var(--brown);background:var(--linne);line-height:1.55;font-size:15px}
h1,h2,h3,h4{font-weight:700;color:var(--anthracite);margin:0 0 .5rem;line-height:1.25}
h1{font-size:1.6rem} h2{font-size:1.2rem} h3{font-size:1rem}
a{color:var(--tall);text-decoration:none} a:hover{color:var(--apricot-dark)}
p{margin:0 0 .75rem}

/* --- Topbård ------------------------------------------------------------ */
.topbar{display:flex;align-items:center;gap:2rem;background:var(--tall);color:#fff;padding:.7rem 1.5rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.7rem;min-width:0}
.logo{height:30px;width:auto;display:block}
.brand-sub{font-weight:500;opacity:.85;font-size:.9rem;border-left:1px solid rgba(255,255,255,.3);padding-left:.7rem;white-space:nowrap}
.mainnav{display:flex;gap:.25rem;flex:1;flex-wrap:wrap}
.mainnav a{color:rgba(255,255,255,.85);padding:.45rem .8rem;border-radius:var(--radius);font-size:.9rem;font-weight:500;display:inline-flex;align-items:center;gap:.4rem;position:relative}
.mainnav a:hover{background:rgba(255,255,255,.1);color:#fff}
.mainnav a.active{background:var(--apricot);color:var(--anthracite)}
.nav-ic{font-size:.95em}
.badge{background:var(--apricot);color:var(--anthracite);border-radius:999px;padding:0 .4rem;font-size:.72rem;font-weight:700;margin-left:.2rem}
.mainnav a.active .badge{background:var(--tall);color:#fff}
.userbox{display:flex;align-items:center;gap:.7rem;font-size:.85rem;color:rgba(255,255,255,.85)}

/* --- Layout ------------------------------------------------------------- */
.wrap{max-width:1280px;margin:1.5rem auto;padding:0 1.5rem}
.foot{max-width:1280px;margin:2rem auto;padding:1rem 1.5rem;border-top:1px solid var(--sand);display:flex;justify-content:space-between;gap:1rem;font-size:.8rem;color:var(--grey);flex-wrap:wrap}
.grid{display:grid;gap:1.1rem}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.spread{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.muted{color:var(--grey);font-size:.85rem}
.stack{display:flex;flex-direction:column;gap:.4rem}

/* --- Dashboard-rutnät: bred vänsterspalt + smal högerspalt --------------- */
.dash{display:grid;grid-template-columns:minmax(0,1fr) 21rem;gap:1.1rem;align-items:start}
.dash-main{min-width:0}
.dash-side{display:flex;flex-direction:column;gap:1.1rem;position:sticky;top:1rem}

/* Kompakt lista i sidospalten */
.minilist{list-style:none;margin:0;padding:0}
.minilist li{padding:.6rem 1.1rem;border-bottom:1px solid #EFEAE6}
.minilist li:last-child{border-bottom:none}
.minilist li:hover{background:#FBF8F6}
.minilist a{font-size:.87rem;font-weight:500;line-height:1.35;display:block}
.mini-top{display:flex;gap:.45rem;align-items:flex-start}
.mini-top .score{flex:0 0 auto;min-width:1.35rem;height:1.35rem;font-size:.72rem;padding:0 .3rem}
.mini-foot{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.4rem;font-size:.75rem;flex-wrap:wrap}
.mini-foot .btn{padding:.2rem .45rem;font-size:.74rem}

/* Tidslinje för statushistorik */
.timeline{list-style:none;margin:0;padding:0}
.timeline li{padding:.55rem 1.1rem;border-bottom:1px solid #EFEAE6;display:flex;gap:.55rem;
             align-items:center;flex-wrap:wrap;font-size:.83rem}
.timeline li:last-child{border-bottom:none}

/* --- Möjlighetsrader med snabbbetyg ------------------------------------- */
.opps td{vertical-align:middle}
.rowmeta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.25rem;font-size:.78rem;color:var(--grey)}
.rowmeta .score{font-size:.7rem;min-width:auto;height:1.25rem;padding:0 .4rem}

/* Statistik ---------------------------------------------------------------- */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
@media(max-width:760px){.grid-4{grid-template-columns:repeat(2,1fr)}}
.stat-big{font-size:1.6rem;font-weight:600;color:var(--anthracite);line-height:1.2}

/* Träffsäkerhetsmatris: diagonalen är överensstämmelse */
table.matrix{width:auto;min-width:22rem}
table.matrix th{font-weight:600;color:var(--grey);text-align:center}
table.matrix td{text-align:center;font-variant-numeric:tabular-nums}
table.matrix td.diag{background:var(--sand);font-weight:600}
table.matrix td.off{color:var(--apricot-dark)}
td.off{color:var(--apricot-dark);font-weight:600}

/* Tratten – grönt = föll bort utan att kosta något */
td.gratis,.help .gratis{color:var(--tall);font-weight:600}

/* Sökning på möjligheter */
.sokform{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.9rem 0 .2rem}
.sokform input[type=search]{flex:1 1 26rem;min-width:14rem;margin:0}
.sokform .help{flex:1 0 100%;margin:.1rem 0 0}
.sokform code{background:var(--sand);padding:.05rem .3rem;border-radius:3px}
.btn.tom{opacity:.45}
.valda{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:0 0 .9rem;font-size:.9rem}
.chip{display:inline-flex;align-items:center;gap:.4rem;background:var(--sand);
      border-radius:999px;padding:.15rem .3rem .15rem .65rem}
.chip a{color:var(--grey);font-weight:600;padding:0 .35rem;text-decoration:none}
.chip a:hover{color:var(--apricot-dark)}
.merfilter{flex:1 0 100%;margin-top:.2rem}
.merfilter summary{cursor:pointer;color:var(--tall);font-size:.9rem;padding:.2rem 0}
.merfilter .row{gap:1rem;margin-top:.4rem}
mark{background:#FDF0C8;color:inherit;padding:0 .1rem;border-radius:2px}
.traff{font-size:.82rem;color:var(--grey);margin-top:.25rem;
       border-left:2px solid var(--sand);padding-left:.55rem}
.traff-falt{font-weight:600}

/* Kostnad per dygn */
.sparkline{display:flex;align-items:flex-end;gap:.35rem;height:5rem;padding-top:.4rem}
.spark-col{display:flex;flex-direction:column;align-items:center;gap:.2rem}
.spark-bar{width:1.1rem;background:var(--tall);border-radius:2px 2px 0 0}
.spark-lbl{font-size:.68rem;color:var(--grey)}

/* Logg */
.loglist{display:flex;flex-direction:column;gap:.3rem;max-height:26rem;overflow-y:auto}
.logrow{display:grid;grid-template-columns:5.5rem 5.5rem 1fr;gap:.6rem;font-size:.82rem;
        padding:.3rem .1rem;border-bottom:1px solid var(--sand);line-height:1.4}
.logtime{font-variant-numeric:tabular-nums;white-space:nowrap}
.logch{color:var(--grey);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.logmsg{word-break:break-word}
.log-error .logmsg{color:var(--apricot-dark)}
@media(max-width:620px){.logrow{grid-template-columns:1fr}}

/* Sortering och filter på Möjligheter */
.listctl{display:flex;gap:.7rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:1rem}
.listctl .field{margin:0}
.listctl label{font-size:.78rem;color:var(--grey);display:block;margin-bottom:.15rem}
.datum-in{white-space:nowrap}
.datum-ny{color:var(--tall);font-weight:600}

/* AI-bedömningen: vad det är, och skälen för och emot */
.ai-vad{font-size:1rem;line-height:1.5;margin:0 0 1rem;color:var(--anthracite)}
.ai-skal{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;
         border-top:1px solid var(--sand);padding-top:.9rem}
.ai-skal h4{margin:0 0 .4rem;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;
            color:var(--grey);font-weight:600}
.ai-skal ul{margin:0;padding-left:1.05rem;font-size:.88rem;line-height:1.5}
.ai-skal li{margin-bottom:.25rem}
.ai-skal li::marker{color:var(--tall)}
.ai-skal ul.emot li::marker{color:var(--apricot-dark)}
.ai-skal p{margin:0;font-size:.88rem}
@media(max-width:620px){.ai-skal{grid-template-columns:1fr;gap:.8rem}}

/* Var möjligheten kom ifrån – TED, ReliefWeb, Mercell, e-avrop.com … */
.kalla{display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.02em;
       background:var(--linen);border:1px solid var(--sand);border-radius:4px;
       padding:.05rem .35rem;color:var(--tall)}

.ratecell{white-space:nowrap}
.rate-inline{display:flex;flex-direction:column;gap:.3rem}
.rate-nums{display:flex;gap:.2rem}
.rn{width:1.9rem;height:1.9rem;border:1px solid var(--sand);background:#fff;border-radius:6px;
    font-family:var(--font);font-size:.82rem;font-weight:600;color:var(--brown);cursor:pointer;
    transition:background .12s,border-color .12s}
.rn:hover{border-color:var(--apricot);background:#FFF3ED}
.rn:focus-visible{outline:2px solid var(--apricot);outline-offset:1px}
.rn.sel{background:var(--apricot);border-color:var(--apricot-dark);color:var(--anthracite)}
.rn.sel:hover{background:var(--apricot-dark);color:#fff}
.rate-note{font-size:.78rem;padding:.25rem .45rem;border-radius:6px;width:14.5rem}
.rate-note::placeholder{color:#B6AFA9}

.actcell{white-space:nowrap}
.actcell .btn{padding:.28rem .45rem;font-size:.9rem}

.card-foot{padding:.6rem 1.1rem;border-top:1px solid var(--sand);font-size:.85rem}

/* Leveransstatistik per källa */
.yield-main{font-size:.88rem}
.yield-main strong{font-variant-numeric:tabular-nums;font-size:1rem;color:var(--tall)}
.yield .muted{font-variant-numeric:tabular-nums}
.yield-note{margin-top:.25rem;font-size:.74rem;color:var(--warn);font-weight:500}

/* Varningstriangel i menyn */
.warn-tri{margin-left:.3rem;color:#FFD37A;font-size:.95em;line-height:1}
.mainnav a.active .warn-tri{color:var(--tall-dark)}

/* --- Kort/moduler ------------------------------------------------------- */
.card{background:var(--white);border:1px solid var(--sand);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--sand);background:#fff}
.card-head h2{margin:0;font-size:1rem;display:flex;align-items:center;gap:.5rem}
.card-body{padding:1.1rem}
.card-body.tight{padding:.5rem 0}
.sortval{display:inline-flex;gap:.15rem;background:var(--linne);border:1px solid var(--sand);
  border-radius:999px;padding:.12rem;font-size:.74rem;font-weight:500;letter-spacing:0}
.sortval a{padding:.1rem .55rem;border-radius:999px;color:var(--grey);text-decoration:none;white-space:nowrap}
.sortval a:hover{color:var(--apricot-dark)}
.sortval a[aria-current]{background:#fff;color:var(--brown);box-shadow:0 1px 2px rgba(0,0,0,.06)}

/* Betygsfiltret. Länkar som ser ut som kryssrutor – innehållet ligger redan
   i ett formulär, och formulär går inte att lägga i varandra. */
.betygsval{display:inline-flex;gap:.25rem;align-items:center;font-size:1rem;font-weight:400;line-height:1}
/* Varje val är en egen ruta med luft runt tecknet – utfyllnaden är därför
   tilltagen i förhållande till texten, inte tvärtom. */
.betygsval a{display:inline-flex;align-items:center;gap:.25rem;padding:.3rem .5rem;
  border:1px solid var(--sand);border-radius:.4rem;background:#fff;
  text-decoration:none;white-space:nowrap}
.betygsval a.i{color:var(--brown)}
.betygsval a.ur{color:var(--grey);opacity:.6}
.betygsval a:hover{background:var(--linne);color:var(--apricot-dark);opacity:1;border-color:var(--grey)}
/* Etiketten ska inte växa med rutorna – den är en förklaring, inte en knapp. */
.betygsval .muted{margin-left:.4rem;font-size:.8rem}

.count-pill{background:var(--linne);border:1px solid var(--sand);border-radius:999px;padding:.1rem .6rem;font-size:.78rem;font-weight:500;color:var(--brown)}

/* --- Knappar ------------------------------------------------------------ */
.btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid transparent;border-radius:var(--radius);padding:.45rem .85rem;font-family:var(--font);font-size:.85rem;font-weight:500;cursor:pointer;background:var(--apricot);color:var(--anthracite);transition:background .15s}
.btn:hover{background:var(--apricot-dark);color:#fff}
.btn-primary{background:var(--tall);color:#fff}
.btn-primary:hover{background:var(--tall-light);color:#fff}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.35);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.btn-out{background:transparent;border-color:var(--sand);color:var(--brown)}
.btn-out:hover{background:var(--linne);color:var(--anthracite)}
.btn-sm{padding:.25rem .55rem;font-size:.78rem}
.btn-danger{background:transparent;border-color:var(--sand);color:var(--err)}
.btn-danger:hover{background:#fdf0ee}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* --- Formulär ----------------------------------------------------------- */
label{font-size:.85rem;font-weight:500;color:var(--anthracite);display:block;margin-bottom:.25rem}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],select,textarea{
  width:100%;padding:.5rem .65rem;border:1px solid var(--sand);border-radius:var(--radius);
  font-family:var(--font);font-size:.9rem;color:var(--brown);background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--apricot-light);border-color:var(--apricot);outline-offset:-1px}
textarea{resize:vertical;min-height:90px;line-height:1.5}
.field{margin-bottom:.9rem}
.checkline{display:flex;align-items:center;gap:.45rem;font-weight:400;font-size:.83rem;
           color:var(--brown);margin-bottom:.8rem;cursor:pointer}
.checkline input{width:auto;margin:0}
.help{font-size:.78rem;color:var(--grey);margin-top:.2rem}

/* --- Tabeller/listor ---------------------------------------------------- */
table{width:100%;border-collapse:collapse;font-size:.88rem}
th{text-align:left;font-weight:600;color:var(--anthracite);padding:.55rem 1.1rem;border-bottom:1px solid var(--sand);background:var(--linne);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
td{padding:.6rem 1.1rem;border-bottom:1px solid #EFEAE6;vertical-align:top}
tr:last-child td{border-bottom:none}
tr:hover td{background:#FBF8F6}
.table-wrap{overflow-x:auto}

/* --- Betyg/status ------------------------------------------------------- */
.score{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;height:1.6rem;border-radius:var(--radius);font-weight:700;font-size:.8rem;padding:0 .35rem}
.score-4{background:var(--apricot);color:var(--anthracite)}
.score-3{background:var(--apricot-light);color:var(--anthracite)}
.score-2{background:var(--linne);color:var(--brown);border:1px solid var(--sand)}
.score-1{background:#EFEFEF;color:var(--grey)}
.score-none{background:#F4F4F4;color:var(--grey);font-weight:400}

.tag{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.74rem;font-weight:500;background:var(--linne);border:1px solid var(--sand);color:var(--brown);white-space:nowrap}
.tag-new{background:var(--tall);color:#fff;border-color:var(--tall)}
.tag-interesting{background:var(--apricot-light);color:var(--anthracite);border-color:var(--apricot)}
.tag-to_bid{background:var(--apricot);color:var(--anthracite);border-color:var(--apricot)}
.tag-submitted{background:var(--tall-light);color:#fff;border-color:var(--tall-light)}
.tag-won{background:var(--ok);color:#fff;border-color:var(--ok)}
.tag-lost{background:#EFEFEF;color:var(--grey)}
.tag-dismissed{background:#F4F4F4;color:var(--grey)}

.dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin-right:.35rem;vertical-align:middle}
.dot-green{background:var(--ok)} .dot-amber{background:var(--warn)} .dot-red{background:var(--err)} .dot-grey{background:var(--grey)}

.deadline-soon{color:var(--err);font-weight:600}
.deadline-near{color:var(--warn);font-weight:500}

/* --- Flash & tomtillstånd ---------------------------------------------- */
.flash{padding:.7rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem;border:1px solid}
.flash-ok{background:#EAF5EF;border-color:#BEE0CE;color:#1E5B41}
.flash-info{background:#fff;border-color:var(--sand);color:var(--brown)}
.flash-err{background:#FDF0EE;border-color:#F3C4BC;color:#8E2C1E}
.flash-warn{background:#FDF6E8;border-color:#EBD6A8;color:#7A5A15}

/* Deadline satt för hand, i detaljvyn */
.dl-red{display:inline-block;margin-left:.4rem}
.dl-red summary{cursor:pointer;color:var(--tall);font-size:.85rem;font-weight:600}
.dl-form{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.5rem}
.dl-form input[type=date]{margin:0;width:auto}
.dl-form input.varde-falt{margin:0;flex:1 1 20rem;min-width:12rem}

/* Loggbok */
.logg-form{margin-bottom:1rem}
.logg-form textarea{margin-bottom:.4rem}
.logg{list-style:none;margin:0;padding:0}
.logg li{padding:.55rem 0;border-top:1px solid var(--sand)}
.logg li:first-child{border-top:0}
.logg-topp{display:flex;align-items:baseline;gap:.5rem;font-size:.82rem}
.logg-topp strong{font-size:.86rem}
.logg-text{margin-top:.15rem;white-space:pre-wrap}
.logg-bort{margin-left:auto}
.logg-bort button{background:none;border:0;color:var(--grey);cursor:pointer;
                  font-size:.85rem;line-height:1;padding:.1rem .25rem}
.logg-bort button:hover{color:var(--apricot-dark)}
/* Händelser och statusflyttar är portalens egen bokföring – tonade, så att
   det som människor skrivit är det som syns först. */
.logg-handelse .logg-text,.logg-status .logg-text{color:var(--grey);font-size:.88rem}
.logg-handelse .logg-topp strong,.logg-status .logg-topp strong{font-weight:500;color:var(--grey)}
.notrakn{color:var(--grey);font-size:.8rem;white-space:nowrap}

/* ---- Anbudets arbetsyta ---- */

/* Ska söka på dashboarden – rikare än de andra modulerna, för här pågår
   arbetet och man behöver se ansvarig och deadline utan att öppna. */
/* Anbudsöversikten i två spalter. Ska söka är den tunga och får mer plats;
   i Väntar svar väntar man bara. Under 900 px staplas de. */
.anbudsgrid{display:grid;grid-template-columns:1.35fr 1fr;gap:1.4rem;margin-top:1rem;
            align-items:start}
@media(max-width:900px){.anbudsgrid{grid-template-columns:1fr;gap:1rem}}
.anbudsgrid .card.vantar{background:#FBFAF9}
.anbudsgrid .card.vantar .card-head{background:transparent}

/* Anbudsöversikten – egen sida, mer luft än sidospaltens kort */
.anbudskort{list-style:none;margin:0;padding:0}
.anbudskort li{padding:.9rem 1.1rem;border-top:1px solid var(--sand)}
.anbudskort li:first-child{border-top:0}
.anbudskort .anbud-topp{display:flex;justify-content:space-between;gap:1rem;
                        align-items:baseline;margin-bottom:.25rem}
.anbudskort .anbud-topp strong{font-size:1rem}
.statusval{margin-top:.9rem;gap:.4rem}
.anbud-till{font-size:.82rem;color:var(--grey)}
.anbud-till:hover{color:var(--tall)}

.anbudslist{list-style:none;margin:0;padding:0}
.anbudslist li{padding:.7rem 1.1rem;border-top:1px solid var(--sand)}
.anbudslist li:first-child{border-top:0}
.anbudslist .btn{margin-top:.4rem}

/* Underlag: filer och länkar */
.underlag{list-style:none;margin:0;padding:0}
.underlag li{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;
             border-top:1px solid var(--sand)}
.underlag li:first-child{border-top:0}

/* Team – roll överst, person under. Rollen är beställningen ur underlaget och
   kan bli lång; personen kan saknas. */
/* Team – roll, person och läge på samma rad. Blocken ska inte bli djupa. */
.team{list-style:none;margin:0 0 .5rem;padding:0}
.team li{display:flex;align-items:center;gap:.35rem;
         padding:.3rem 0;border-top:1px solid var(--sand)}
.team li:first-child{border-top:0}
.team-rad{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;flex:1 1 auto}
.team-rad input[type=text]{flex:1 1 5rem;min-width:3.5rem;margin:0}
.team-rad select{margin:0;flex:0 1 auto;width:auto;max-width:8.5rem}
.team-rad button{flex:0 0 auto}

/* Personen är radens huvudsak – det är den man läser efter. Rollen är
   beställningen ur underlaget och tonas ned. */
input.team-person{font-weight:600}
.team li.lage-klar input.team-person{color:var(--tall)}
.team li.lage-tillfragad input.team-person{color:var(--brown)}
.team-rad input.team-roll{color:var(--grey)}
/* Saknas person är raden ett hål – låt platshållaren säga det tydligt. */
.team li.lage-soks input.team-person::placeholder{color:var(--apricot-dark);opacity:1}
.team-ny{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;
         padding-top:.5rem;border-top:1px dashed var(--sand)}
.team-ny input{flex:1 1 5rem;min-width:3.5rem;margin:0}
.team-ny select{margin:0;flex:0 1 auto;width:auto;max-width:8.5rem}
.team-ny button{flex:0 0 auto}

/* Formulärfälten är avsiktligt hopträngda. Blocken ligger i en spalt och
   varje extra rad gör sidan djupare utan att tillföra något. */

/* Punktlistorna – "Ska skickas in" och "Att göra" ritas likadant */
.punkter{list-style:none;margin:0 0 .8rem;padding:0}
.punkter li{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;
            padding:.4rem 0;border-top:1px solid var(--sand)}
.punkter li:first-child{border-top:0}
.punkter li.klar .punkt-text{text-decoration:line-through;color:var(--grey)}
.punkt-bock button{background:none;border:0;cursor:pointer;font-size:1.15rem;
                   line-height:1;padding:0;color:var(--tall)}
.punkt-text{flex:1 1 8rem}
.punkt-vem{font-size:.8rem;color:var(--grey);background:var(--sand);
           border-radius:999px;padding:.05rem .5rem;white-space:nowrap}
.punkt-datum{font-size:.8rem;color:var(--grey);white-space:nowrap}
.punkt-datum.sen{color:var(--apricot-dark);font-weight:600}
.punkt-ny{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;
          padding-top:.6rem;border-top:1px dashed var(--sand)}
.punkt-ny input[type=text]{flex:1 1 5rem;min-width:3.5rem;margin:0}
.punkt-ny input[type=date]{width:auto;margin:0;flex:0 0 auto}
.punkt-ny button{flex:0 0 auto}
span.off{color:var(--apricot-dark)}
/* Hela fältet öppnar kalendern (se app.js) – visa det med pekaren. */
input[type=date]{cursor:pointer}
input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer}
.dl-form .help{flex:1 0 100%;margin:.15rem 0 0}
.empty{padding:2rem 1.1rem;text-align:center;color:var(--grey);font-size:.9rem}

/* --- Login -------------------------------------------------------------- */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--tall);padding:1.5rem}
.login-card{background:#fff;border-radius:var(--radius);padding:2rem;width:100%;max-width:380px;box-shadow:0 10px 40px rgba(2,52,49,.3)}
.login-card .logo-dark{height:34px;margin-bottom:1.4rem}

/* --- Profil-chatt ------------------------------------------------------- */
.chat{display:flex;flex-direction:column;height:460px}
.chat-log{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.7rem;background:#FDFCFB}
.msg{max-width:85%;padding:.55rem .8rem;border-radius:var(--radius);font-size:.88rem;white-space:pre-wrap;word-wrap:break-word}
.msg-user{align-self:flex-end;background:var(--tall);color:#fff}
.msg-assistant{align-self:flex-start;background:#fff;border:1px solid var(--sand)}
.chat-form{display:flex;gap:.5rem;padding:.7rem;border-top:1px solid var(--sand);background:#fff}
.chat-form textarea{min-height:44px;max-height:120px}

.suggestion{border:1px solid var(--apricot);background:#FFF8F5;border-radius:var(--radius);padding:.8rem 1rem;margin-bottom:.8rem}
.suggestion h4{margin:0 0 .3rem;font-size:.88rem;color:var(--apricot-dark)}
.suggestion pre{background:#fff;border:1px solid var(--sand);border-radius:6px;padding:.6rem;font-size:.82rem;white-space:pre-wrap;margin:.5rem 0;font-family:var(--font)}

/* --- Profilsektioner ---------------------------------------------------- */
.psec{border-bottom:1px solid #EFEAE6;padding:.9rem 1.1rem}
.psec:last-child{border-bottom:none}
.psec h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--tall);margin-bottom:.35rem}
.psec .body{white-space:pre-wrap;font-size:.89rem}
.psec .body.empty-text{color:var(--grey);font-style:italic}

/* --- Detaljvy ----------------------------------------------------------- */
.kv{display:grid;grid-template-columns:130px 1fr;gap:.35rem 1rem;font-size:.88rem;margin-bottom:1rem}
.kv dt{color:var(--grey)} .kv dd{margin:0}
.rate-group{display:flex;gap:.4rem;flex-wrap:wrap}
.rate-btn{border:1px solid var(--sand);background:#fff;border-radius:var(--radius);padding:.4rem .7rem;cursor:pointer;font-family:var(--font);font-size:.83rem}
.rate-btn:hover{border-color:var(--apricot);background:#FFF8F5}
.rate-btn.sel{background:var(--apricot);border-color:var(--apricot);color:var(--anthracite);font-weight:600}

@media(max-width:1100px){
  .dash{grid-template-columns:1fr}
  .dash-side{position:static;flex-direction:row;flex-wrap:wrap}
  .dash-side > .card{flex:1 1 20rem}
}
@media(max-width:820px){
  .topbar{gap:.8rem} .wrap{padding:0 1rem} .grid-2{grid-template-columns:1fr}
  .kv{grid-template-columns:1fr}
  .dash-side{flex-direction:column}
  .rate-note{width:100%}
}

/* Lägesraden bredvid statusknapparna. Fri text, ingen funktion i systemet. */
.lagesrad{display:flex;align-items:center;gap:.4rem;flex:1 1 18rem;min-width:12rem}
.lagesrad label{color:var(--grey);font-size:.85rem;white-space:nowrap}
.lagesrad input{margin:0;flex:1 1 auto;min-width:6rem}

/* Lägesraden i anbudsöversikten – längst ut till höger på samma rad som
   ansvarig. Den är handskriven och säger mest om var arbetet står. */
.lagesnotis{margin-left:auto;text-align:right;color:var(--tall);font-weight:500;
            background:#EAF2F1;border-radius:999px;padding:.1rem .6rem;
            max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:600px){.lagesnotis{margin-left:0;max-width:100%}}
