@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');



:root{
    --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;
    --font-sans: 'Roboto', 'Segoe UI', Arial, sans-serif;
}
:root{scrollbar-gutter: stable both-edges;--bg:#32333d;--card:#121821;--muted:#8aa0b2;--text:#e7eff7;--accent:#64b5f6;--ok:#36c18a;--warn:#ffb020;--bad:#ef5350;--prob:#64b5f6;--spec:#b39ddb;--border:#4f5b66;--chip:#1a2431;}
*{box-sizing:border-box}
html,body{font-family:var(--font-sans)}
body{margin:0;background:color-mix(in srgb,var(--bg) 100%,transparent);color:var(--text);font-size:15px;line-height:1.55;font-family:var(--font-sans)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:700;line-height:1.2;margin-top:0}
button,input,select,textarea{font:inherit;font-family:var(--font-sans)}
pre,code,kbd,samp{font-family:var(--font-sans)}
.btn,.badge,.form-control,.form-select,.dropdown-menu,.dropdown-item,.table,.nav,.navbar,.pagination,.list-group,.modal,.tooltip,.popover{font-family:var(--font-sans)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1100px;margin:32px auto;padding:0 16px}
header{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.title{font-size:28px;font-weight:700}
.subtitle{color:var(--muted)}
.toc{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin:18px 0 22px}
.toc a{display:block;background:var(--chip);border:1px solid var(--border);padding:10px 12px;border-radius:12px}
.fullscreen-center{display:flex;justify-content:center;align-items:center;min-height:100dvh;padding:24px;}
.card-panel{background:color-mix(in srgb,var(--card) 85%,transparent);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:0 10px 28px rgba(0,0,0,.40);max-width:380px;width:100%;color:var(--text);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);}
.card-panel.large{max-width:600px;}
.card { border-color: var(--card-border); }
.card.card-inactive{background:color-mix(in srgb,var(--card) 90%,white 10%);opacity:.95}
:root { --card-border: color-mix(in srgb, var(--border) 30%, white 70%); }
.login{position:fixed;inset:0;display:grid;place-items:center;padding:24px;}
.login>.card-panel,.login>.card{width:100%;max-width:400px;}
.login .card-title,.login .subtitle{text-align:center;}
.login form{width:80%;margin:0 auto;}
.login .field-input{flex:1 1 100%;max-width:100%;width:100%;margin-bottom:12px;}
.login .card-actions{display:flex;justify-content:center;margin-top:8px;}
.login-heading{text-align:center;color:orange;}
.btn{color:#fff;padding-block:10px;padding-inline:18px;}
.btn-pill{display:inline-flex;align-items:center;justify-content:center;padding-block:4px;padding-inline:18px;border-radius:999px;font-size:12px;line-height:1;}
.btn:hover{color:#fff;}
.btn-primary{background:color-mix(in srgb,var(--accent) 25%,var(--chip) 75%);border:1px solid color-mix(in srgb,var(--accent) 55%,var(--border) 45%);}
.btn-primary:hover{background:color-mix(in srgb,var(--accent) 40%,var(--chip) 60%);}
.btn[disabled]{opacity:.6;cursor:not-allowed;filter:grayscale(20%);}
.btn-status{width:92px;justify-content:center;padding-top:6px; padding-bottom:6px;}
button.btn-status.b-warn:hover{border-color:rgba(255,176,32,.8)!important;background:linear-gradient(180deg,rgba(255,176,32,.22),rgba(255,176,32,.18));}
section{margin:4px 0}
button.btn-status.b-ok:hover,
button.btn-status.b-ok[aria-pressed="true"]{border-color:rgba(54,193,138,.8)!important;background:linear-gradient(180deg,rgba(54,193,138,.22),rgba(54,193,138,.18));}
button.btn-status.b-warn:hover,
button.btn-status.b-warn[aria-pressed="true"]{border-color:rgba(255,176,32,.8)!important;background:linear-gradient(180deg,rgba(255,176,32,.22),rgba(255,176,32,.18));}
button.btn-status.b-bad:hover,
button.btn-status.b-bad[aria-pressed="true"]{border-color:rgba(239,83,80,.8)!important;background:linear-gradient(180deg,rgba(239,83,80,.22),rgba(239,83,80,.18));}
h2{font-size:20px;margin:0 0 10px}
h3{font-size:16px;margin:18px 0 8px}
p{margin:8px 0}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px}
.pillbox--attachments { background: var(--card); box-shadow: none; }
.pillbox{background:color-mix(in srgb,var(--card) 88%,transparent);border:1px solid var(--border);border-radius:18px;padding:16px;box-shadow:0 10px 22px rgba(0,0,0,.30)}
.pillbox-selected{margin-top:12px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.02);display:flex;flex-direction:column;gap:4px;}
.pillbox-selected-value{font-weight:600;font-size:1rem;color:var(--text);}
.pillbox-row{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.pillbox-row-info{display:flex;flex-direction:column;gap:4px;}
.pillbox-row-actions{display:flex;gap:8px;}
.pillbox-row-actions .btn-compact{padding:6px 12px;font-size:12px;}
.pillbox-meta{opacity:.8;margin-left:6px;}
.edit-header {display: flex;justify-content: space-between;align-items: center;margin-bottom: 16px;}
.edit-stack {display: flex;flex-direction: column;gap: 1px;}
.edit-block {padding: 16px;border-radius: 4px;}
.flex{display:flex}
.flex-col{display:flex;flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.ai-center{align-items:center}
.ai-end{align-items:flex-end}
.jc-between{justify-content:space-between}
.jc-end{justify-content:flex-end}
.gap-6{gap:6px}
.gap-8{gap:8px}
.gap-12{gap:12px}
.gap-16{gap:16px}
.my-6{margin-top:6px;margin-bottom:6px}
.mx-2{margin-left:2px;margin-right:2px}
.mt-0{margin-top:0}
.mt-4{margin-top:4px}
.mt-6{margin-top:6px}
.mt-8{margin-top:8px}
.mt-16{margin-top:16px}
.mb-4{margin-bottom:4px}
.mb-8{margin-bottom:8px}
.w-50{width:50%}
.minw-220{min-width:220px}
.minw-260{min-width:260px}
.fx-1-1-50{flex:1 1 50%}
.fx-0-1-50{flex:0 1 50%}
.fx-center {align-items:center}
.mw-50{max-width:50%}
.nowrap{white-space:nowrap}
.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pillbox-head{padding:0}
.form-stack{margin:0}
.divider{border-top:1px solid rgba(255,255,255,.06);margin:8px 0}
.card-ghost{padding:12px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.06);border-radius:14px}
.btn-compact{padding:6px 12px;font-size:12px}
.text-warn{color:var(--warn)}
.text-success{color:var(--ok)}
.opacity-70{opacity:.7}
.minh-96{min-height:96px}
.self-start{align-self:flex-start}
.list-unstyled{list-style:none;margin:0;padding:0}
.border-soft{border:1px solid rgba(255,255,255,.08)}
.bg-translucent{background:rgba(255,255,255,.02)}
.round-10{border-radius:10px}
.px-12{padding-left:12px;padding-right:12px}
.py-8{padding-top:8px;padding-bottom:8px}
.ml-8{margin-left:8px}
.fw-600{font-weight:600}
.pillbox-title{font-size:16px;font-weight:700;margin:0}
.grid{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:900px){.grid-2{grid-template-columns:1.2fr .8fr}}
.breadcrumb{font-family:var(--font-mono);font-size:.95rem;letter-spacing:.01em;display:flex;align-items:center;gap:6px;color:var(--muted);overflow:hidden;min-width:0;}
.breadcrumb .item{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:clamp(120px,22vw,260px);min-width:0;}
.breadcrumb .item.is-current{color:var(--text);}
.breadcrumb .item + .item::before{content:"/";opacity:.6;margin:0 4px;}
.breadcrumb a.item{color:var(--accent);text-decoration:none;}
.breadcrumb a.item:hover{text-decoration:underline;}
.kvs{display:grid;grid-template-columns:100px minmax(0,1fr);column-gap:8px;row-gap:10px;align-items:center;}
.kvs .card-label{margin:0;align-self:center;text-align:center;font-size:16px;line-height:1.2;}
.kvs .field-input{width:560px;}
@media (max-width:640px){.kvs{grid-template-columns:1fr;}}
.edit-col .kvs + .kvs { margin-top: 14px; } 
@media (min-width: 992px){ .edit-col .kvs + .kvs { margin-top: 14px; } }
.kvs .field-input { width: 100%; max-width: 100%; }
.badge,button{display:inline-flex;align-items:center;gap:6px;padding:2px 14px;border-radius:999px;border:1px solid var(--border);background:var(--chip);font-size:12px;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;}
.badge:hover,button:hover{background-color:color-mix(in srgb,var(--accent) 20%,var(--chip) 40%);border-color:color-mix(in srgb,var(--accent) 70%,var(--chip) 30%);color:#fff;}
.btn.b-bad:hover,button.b-bad:hover{border-color:rgba(239,83,80,.8)!important;background:linear-gradient(180deg,rgba(239,83,80,.22),rgba(239,83,80,.18));}
.badge:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.badge:active,button:active{transform:translateY(1px);}
.badge[disabled],button[disabled]{opacity:.55;pointer-events:none;}
.b-ok{border-color:rgba(54,193,138,.35);box-shadow:inset 0 0 0 9999px rgba(54,193,138,.08)}
.b-warn{border-color:rgba(255,176,32,.35);box-shadow:inset 0 0 0 9999px rgba(255,176,32,.08)}
.b-bad{border-color:rgba(239,83,80,.35);box-shadow:inset 0 0 0 9999px rgba(239,83,80,.08)}
.b-prob{border-color:rgba(100,181,246,.35);box-shadow:inset 0 0 0 9999px rgba(100,181,246,.08)}
.b-spec{border-color:rgba(179,157,219,.35);box-shadow:inset 0 0 0 9999px rgba(179,157,219,.08)}
.badge--field,button.badge--field{display:flex;align-items:center;padding-block:10px;padding-inline:22px;line-height:1}
table{width:100%;border-collapse:separate;border-spacing:0 8px}
th,td{padding:10px 12px;vertical-align:top}
thead th{color:var(--muted);font-weight:600}
tbody tr{background:var(--card);border:1px solid var(--border)}
tbody td{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
tbody td:first-child{border-left:1px solid var(--border);border-radius:10px 0 0 10px}
tbody td:last-child{border-right:1px solid var(--border);border-radius:0 10px 10px 0}
.edit-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.edit-stack { display: flex; flex-direction: column; gap: 24px; }
.user-edit-card .edit-block { padding: 4px; }
.user-edit-card .edit-block:not(.edit-block-wide) { border-radius: 12px; }
.chips{display:flex;flex-wrap:wrap;gap:6px}
.small{font-size:12px;color:var(--muted)}
.note{border-left:0;padding:0;background:transparent;border-radius:0;color:rgb(255, 165, 0)}
footer{margin:28px 0 40px;color:var(--muted)}
code.inline{background:var(--chip);border:1px solid var(--border);padding:0 6px;border-radius:6px}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px}
.gallery figure{margin:0;background:var(--chip);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.gallery a{display:block}
.gallery img{display:block;width:100%;height:100%;object-fit:cover}
.gallery figcaption{padding:6px 8px;font-size:12px;color:var(--muted)}
.traffic-light{display:inline-flex;gap:4px;align-items:center;vertical-align:middle;margin-left:8px}
.traffic-light .dot{width:10px;height:10px;border-radius:50%;background:#0f1620;border:1px solid var(--border)}
.traffic-light.tl-green .dot.low{background:var(--ok);box-shadow:0 0 0 2px rgba(54,193,138,.25) inset}
.traffic-light.tl-yellow .dot.med{background:var(--warn);box-shadow:0 0 0 2px rgba(255,176,32,.25) inset}
.traffic-light.tl-red .dot.high{background:var(--bad);box-shadow:0 0 0 2px rgba(239,83,80,.25) inset}
.mermaid-wrap{margin-top:12px}
.mermaid{background:var(--chip);border:1px solid var(--border);border-radius:12px;padding:8px}
@media print{.gallery,.mermaid-wrap{display:none!important}}
.card-label{display:block;margin-bottom:6px;font-weight:600;font-size:14px;letter-spacing:.2px;color:var(--text);opacity:.92;}
.field-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
@media (max-width:640px){.field-row{flex-wrap:wrap;}.field-row .field-input{flex:1 1 100%;max-width:100%;}.field-row select.field-input.dropdown{flex:1 1 100%;max-width:100%;width:100%;}.field-row select.field-input.dropdown.dropdown--md{flex:1 1 100%;max-width:100%;width:100%;}}
.field-row .btn{flex:0 0 auto;}
.field-input{flex:0 1 60%;max-width:60%;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--chip);color:var(--text);}
.field-input300{flex:0 1 60%;width:300;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--chip);color:var(--text);}
.userbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px;padding:8px 12px;background:color-mix(in srgb,var(--card) 85%,transparent);border:1px solid var(--border);border-radius:12px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);position:sticky;top:0;z-index:1000;}
.userbar .muted.small{color:var(--muted);opacity:1;}
.userbar .badge{color:#fff;padding-block:8px;}
.userbar-actions{display:flex;align-items:center;gap:5px;}
@media (max-width:640px){.userbar{flex-wrap:wrap;gap:6px;}.userbar .muted.small{flex:1 1 100%;order:1;}.userbar .badge{width:100%;justify-content:center;order:2;margin-left:0;}}
.card table thead th{position:sticky;top:0;background:var(--card);z-index:1}
.card table tbody tr:hover{box-shadow:none;background:var(--card)}
.card table tbody tr.userlist-edit-row td{padding:8px 12px 12px;background:color-mix(in srgb,var(--card) 92%,var(--chip) 8%);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.user-edit-card{display:flex;flex-direction:column;gap:14px;}
.user-edit-card .field-row{margin-bottom:4px;}
.card table tbody tr, .card table tbody td{color:var(--text);} /* ensure readable text on dark rows */
.card table td:nth-child(2){word-break:break-word}
.card table th:last-child,.card table td:last-child{text-align:right;white-space:nowrap}
.card table{margin-top:4px}
.card table td.person{display:flex;flex-direction:column;gap:2px}
.card table td .person-name{font-weight:600}
.card table td .person-email{word-break:break-word}
.card table tr.userlist-edit-row td {text-align: left !important;white-space: normal; /* nappien & inputtien ei tarvitse ahtautua */}
.user-edit-card {align-items: flex-start;   /* varmistus – ei keskity pystysarakkeessa */}
.card table td:last-child .user-edit-card {text-align: left;}
select.field-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:0 1 600px;max-width:600px;width:100%;padding:10px 40px 10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--chip);color:var(--text);line-height:1.35;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease;}
select.field-input:hover{background:color-mix(in srgb,var(--chip) 85%,var(--accent) 15%);border-color:color-mix(in srgb,var(--border) 40%,var(--accent) 60%);}
select.field-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent);}
select.field-input:disabled{opacity:.55;cursor:not-allowed;}
.form-stack input.field-input--fixed-300 {flex: 0 0 300px !important;width: 300px !important;max-width: 300px !important;}
.select-wrap{position:relative;display:inline-flex;align-items:center;width:400px;}
.select-wrap::after{content:"";position:absolute;right:12px;width:48px;height:48px;pointer-events:none;opacity:.8;background-repeat:no-repeat;background-position:center;background-size:48px 48px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23e7eff7' d='M7 10l5 5 5-5z'/></svg>");}
select[multiple],select[size]:not([size="0"]):not([size="1"]){padding-right:12px;background-image:none;height:auto;}
select option{background:var(--chip);color:var(--text);}
select option:checked{background:color-mix(in srgb,var(--accent) 25%,var(--chip) 75%);}
@-moz-document url-prefix(){select{background-image:none!important;}}
.hanke-select{min-width:400px;}
.form-stack{display:flex;flex-direction:column;gap:10px;max-width:520px}
.form-stack--wide{max-width:none;width:100%;}
.form-stack .field-block{display:flex;flex-direction:column;gap:6px}
.form-stack .field-block .card-label{margin-bottom:0}
.form-stack .field-input,.form-stack select.field-input{flex:1 1 100%;max-width:100%;width:100%}
:root{--shell:#0C1B2A;}
:root{--paper:#F5F6F6;}
:root{--ink:#0E1722;}
:root{--ink-muted:#5C6A7A;}
:root{--brand:#0F4C81;}
:root{--brand-200:#D6E4F2;}
:root{--brand-600:#135D9F;}
.paper-elev{background:var(--paper);color:var(--ink);border:1px solid var(--brand-200);border-radius:14px;box-shadow:0 10px 20px rgba(15,30,45,.06);}
.ws-grid{display:grid;grid-template:"header header" auto "nav main" 1fr "panel panel" auto/280px 1fr;min-height:100dvh;background:var(--shell);gap:16px;padding:16px;}
.ws-header{grid-area:header;position:sticky;top:0;z-index:50;margin:-16px -16px 0 -16px;padding:12px 16px;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,0)),var(--shell);backdrop-filter:blur(2px);border-bottom:1px solid rgba(255,255,255,.06);}
.ws-userbar{display:flex;align-items:center;justify-content:space-between;color:var(--text);font-weight:600;}
.ws-userbar-left{display:flex;align-items:center;gap:8px;}
.ws-userbar-right{display:flex;align-items:center;gap:8px;}
.userbar .muted.small .userbar-value{color: rgba(255,255,255,0.82);}
.ws-kirj{opacity:.8;}
.ws-sep{opacity:.5;margin:0 8px;}
.ws-nav{grid-area:nav;padding:14px;}
.ws-nav-title{font-weight:700;color:var(--ink);margin-bottom:10px;}
.ws-navwide{width:100%;border-radius:12px;padding:12px 14px;background:var(--paper);color:var(--ink);border:1px solid var(--brand-200);font-weight:600;text-align:left;margin-bottom:8px;transition:border-color .12s ease,background-color .12s ease,color .12s ease,transform .05s ease;}
.ws-navwide:hover{background:color-mix(in srgb,var(--brand-200) 18%,white);border-color:var(--brand-600);color:var(--brand-600);}
.ws-navwide.is-active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 6px 14px rgba(15,76,129,.25);}
.ws-main{grid-area:main;padding:18px 18px 22px;}
.ws-main h1{margin:0 0 6px 0;color:var(--ink);}
.ws-main .muted{color:var(--ink-muted);}
.ws-panel{grid-area:panel;display:flex;flex-direction:column;padding:10px;}
.ws-panel-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--brand-200);padding:6px 6px 8px 6px;}
.ws-panel-title{font-weight:700;color:var(--ink);}
.ws-panel-actions{display:flex;align-items:center;gap:8px;}
.ws-log{margin:0;padding:12px 6px 6px 6px;min-height:80px;max-height:220px;overflow:auto;font-family:var(--font-mono);font-size:13px;line-height:1.45;color:var(--ink);background:var(--paper);}
.ws-btn{border:1px solid rgba(255,255,255,.25);background:transparent;color:var(--text);border-radius:10px;padding:8px 12px;font-weight:700;cursor:pointer;}
.ws-btn:hover{border-color:rgba(255,255,255,.55);}
.ws-btn-ghost{opacity:.9;}
.ws-btn-danger{border-color:rgba(239,83,80,.35);color:#fff;background:linear-gradient(180deg,rgba(239,83,80,.22),rgba(239,83,80,.18));}
.ws-btn-danger:hover{border-color:rgba(239,83,80,.8);} 
.badge-status{min-width:92px;justify-content:center;/* status pill is non-interactive */cursor:default;pointer-events:none;transition:none;}
.badge-status:hover,
.badge-status:focus,
.badge-status:focus-visible,
.badge-status:active{background:inherit!important;border-color:inherit!important;color:inherit!important;box-shadow:inherit!important;transform:none!important;outline:0!important;}
.b-pending{border-color:rgba(170,190,205,.55);box-shadow:inset 0 0 0 9999px rgba(170,190,205,.16);}
.badge-status.b-ok{border-color:rgba(54,193,138,.55);box-shadow:inset 0 0 0 9999px rgba(54,193,138,.16);} 
.badge-status.b-warn{border-color:rgba(255,176,32,.55);box-shadow:inset 0 0 0 9999px rgba(255,176,32,.16);} 
.badge-status.b-bad{border-color:rgba(239,83,80,.55);box-shadow:inset 0 0 0 9999px rgba(239,83,80,.16);} 
.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;}
.edit-grid .edit-col{min-width:0;}
.edit-grid section.edit-col{margin:0;}
.edit-grid aside.edit-col { padding-left: 108px; }
@media (max-width: 920px){.edit-grid aside.edit-col { padding-left: 0; }}
.section-title{margin:0 0 8px;color:var(--muted);font-size:14px;}
.edit-details{gap:12px;row-gap:14px;}
.edit-details .field-input{flex:1 1 100%;max-width:100%;width:100%;}
.edit-role{gap:12px;}
.edit-role-controls{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.edit-status{gap:12px;}
.edit-actions{display:flex;gap:12px;flex-wrap:wrap;}
.edit-footer{margin-top:12px;gap:8px;}
@media (max-width:920px){.edit-grid{grid-template-columns:1fr;}}
select.field-input.dropdown{flex:0 0 auto;max-width:none;width:auto;padding-right:1.8em;-webkit-appearance:menulist;}
select.field-input.dropdown.dropdown--sm  { flex:0 0 100px; width:100px; max-width:100px; }
select.field-input.dropdown.dropdown--md  { flex:0 0 160px; width:160px; max-width:160px; }
select.field-input.dropdown.dropdown--lg  { flex:0 0 220px; width:220px; max-width:220px; }
select.field-input.dropdown.dropdown--full{ flex:1 1 100%;  width:100%;  max-width:100%; }
.users-head { align-items: center; gap: 12px; flex-wrap: nowrap; }
.users-title { margin: 0; white-space: nowrap; }
.users-head .users-search { flex: 0 0 70%; max-width: 70%; }
@media (max-width: 640px){.users-head { flex-wrap: wrap; }.users-head .users-search { flex-basis: 100%; max-width: 100%; }}
.pager-row { justify-content: flex-end; margin-top: 8px; gap: 8px; align-items: center; }
.pager-info { color: var(--muted); }
.users-head .users-title{color: var(--muted);font-weight: 600;font-size: 16px;}
.users-add { flex: 0 0 auto; margin-left: auto;}
.tools-row th { padding-top: 8px; padding-bottom: 8px; vertical-align: middle; }
.tools-all { text-align: left; }
.tools-title { font-weight: 600; margin-right: 12px; }
.users-search { width: 100%; max-width: none; display: inline-block; margin-right: 0; }
.tools-add { vertical-align: middle; }
.mt-12{margin-top:12px}
.mb-12{margin-bottom:12px}
.fx-1-1-40{flex:1 1 40%}
.fx-1-1-30{flex:1 1 30%}
.minw-200{min-width:200px}
.tenant-edit-card .field-input {flex: 1 1 100%;max-width: 100%;width: 100%;}
.user-edit-card .edit-stack { gap: 2px;  width: 100%; }
.user-edit-card .edit-block {margin: 2px 0;padding-top: 2px;padding-bottom: 2px;}
.user-edit-card .edit-block:not(.edit-block-wide) {width: 50%;padding: 15px;}
tr.centered-row {text-align: center;vertical-align: middle;}
/* Keskitä kaikki datasolut raporttitaulukossa */
.report-table td {text-align: center;vertical-align: middle;}

/* UUDET ALLE .adv-etuliite jokaiseen */ 
.adv-phase-select .select-wrap{position:relative;display:inline-flex;align-items:center;width:350px;min-width:350px;flex:0 0 350px;overflow:visible;}
.adv-phase-select select.field-input.hanke-select{width:100%;min-width:350px;max-width:350px;flex:0 0 350px;padding-right:48px;}
.adv-phase-select .select-wrap::after{content:"";position:absolute;right:12px;top:50%;transform:translateY(-50%);width:24px;height:24px;pointer-events:none;opacity:.8;background-repeat:no-repeat;background-position:center;background-size:24px 24px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23e7eff7' d='M7 10l5 5 5-5z'/></svg>");}
.adv-create-row{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;width:100%;}
.adv-create-label{white-space:nowrap;margin:0;}
.adv-phase-create .field-input.adv-create-input{width:400px;min-width:400px;max-width:400px;flex:0 0 400px;}
.adv-create-actions{display:flex;align-items:center;gap:8px;margin-left:auto;}
.adv-form-warn{color:#ffb020;}
.adv-form-ok{color:#36c18a;}
.adv-project-table{width:100%;border-collapse:collapse;}
.adv-project-table thead th{padding:6px 12px;line-height:1.1;vertical-align:middle;}
.adv-project-table tbody td{padding:6px 12px;line-height:1.1;vertical-align:middle;}
.adv-project-table tbody tr{border-bottom:1px solid rgba(255,255,255,0.06);background:transparent;box-shadow:none;border-radius:0;}
.adv-project-table tbody tr:last-child{border-bottom:none;}
.adv-project-table tbody tr:hover{background:rgba(255,255,255,0.03);}
.btn.adv-btn-compact{height:28px;min-height:28px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;}
.adv-targets-table { width: 100%; table-layout: fixed; }
.adv-targets-table thead th{ text-align:left; }
.adv-targets-table tbody td{ text-align:left; }
.adv-gs-container{display:flex;align-items:center;gap:10px;width:100%;}
.adv-gs-label{white-space:nowrap;flex:0 0 auto;}
.adv-gs-select-field{position:relative;flex:0 0 auto;display:inline-block;min-width:0;}
.adv-gs-select{width:100%;min-width:0;padding-right:44px;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;}
.adv-gs-caret{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.85;font-size:40px;line-height:1;}
.adv-gs-btn-clear{flex:0 0 auto;white-space:nowrap;}
.adv-row{display:flex;align-items:center;gap:12px;width:100%;}
.adv-select{flex:0 0 auto;}
.adv-actions{margin-left:auto;flex:0 0 auto;}
.adv-card-h{display:flex;align-items:center;}
.adv-row h2{margin:0;}
.adv-field350{flex:0 0 350px;max-width:350px;min-width:350px;width:350px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--chip);color:var(--text);}
/* S1.1 kebab-menu (fix: details/summary + correct CSS vars) */
.kebab-wrapper{position:relative;display:inline-block;}
summary.kebab-toggle{cursor:pointer;}
.kebab-menu{position:absolute;right:0;top:100%;z-index:200;background:var(--card,#121821);border:1px solid var(--border,#4f5b66);border-radius:4px;min-width:180px;box-shadow:0 2px 8px rgba(0,0,0,.12);padding:4px 0;}
.kebab-item{display:block;width:100%;text-align:left;padding:6px 16px;background:none;border:none;cursor:pointer;color:var(--text,#e7eff7);font-size:inherit;}
.kebab-item:hover:not(:disabled){background:var(--chip,#1a2431);}
.kebab-item:disabled{opacity:.45;cursor:default;}
.kebab-item.danger{color:var(--bad,#ef5350);}
.kebab-separator{margin:4px 0;border:none;border-top:1px solid var(--border,#4f5b66);}
.confirm-strip{display:inline-flex;gap:8px;align-items:center;padding:4px 0;}

/* Riskikommentti-modaali */
.risk-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:1000;display:flex;align-items:center;justify-content:center;}
.risk-modal{background:#F5F5F5;border:1px solid #d0d0d0;border-radius:8px;width:840px;max-width:95vw;display:flex;flex-direction:column;max-height:90vh;color:#1a1a1a;box-shadow:0 8px 32px rgba(0,0,0,0.25);}
.risk-modal-header{padding:16px 20px;border-bottom:1px solid #e0e0e0;background:#F5F5F5;border-radius:8px 8px 0 0;}
.risk-modal-meta{display:flex;flex-direction:column;gap:7px;font-size:0.95rem;color:#1a1a1a;}
.risk-modal-row{display:flex;align-items:center;}
.risk-modal-label{width:90px;color:#555;flex-shrink:0;}
.risk-modal-value{font-weight:600;}
.risk-modal-body{padding:16px 20px;flex:1;overflow-y:auto;background:#F5F5F5;}
.risk-modal-textarea{width:100%;resize:vertical;border:1px solid #ccc;border-radius:4px;padding:8px;font-size:0.95rem;color:#1a1a1a;background:#fff;box-sizing:border-box;}
.risk-modal-char-count{margin-top:4px;font-size:0.75rem;color:#888;}
.risk-modal-history{max-height:240px;overflow-y:auto;border:1px solid #e0e0e0;border-radius:4px;padding:4px 10px;background:#F5F5F5;margin-bottom:12px;}
.risk-modal-history-entry{padding:6px 0;border-bottom:1px solid #ebebeb;}
.risk-modal-history-entry:last-child{border-bottom:none;}
.risk-modal-history-meta{font-size:0.75rem;color:#777;margin-bottom:3px;}
.risk-modal-history-msg{font-size:0.9rem;color:#1a1a1a;white-space:pre-wrap;word-break:break-word;}
.risk-modal-footer{padding:12px 20px;border-top:1px solid #e0e0e0;background:#f5f5f5;border-radius:0 0 8px 8px;display:flex;gap:8px;justify-content:flex-end;}
.risk-modal-btn-tray{display:inline-flex;gap:8px;background:#1b1f28;padding:6px 10px;border-radius:999px;}
