:root{
  --primary:#0B73BF; --primary-dark:#0A3D66; --primary-light:#5FA8DC; --steel:#7B838C;
  --navy:#0D2438; --white:#FAFAF9; --ink:#222222; --border:#E1E5E9; --bg:#F4F6F8; --card:#FFFFFF;
  --danger:#C0392B; --danger-bg:#FBE3E0; --warn:#B8860B; --warn-bg:#FCF0D6;
  --ok:#1E7A46; --ok-bg:#DCF0E3; --muted-bg:#E9ECEF; --muted:#5A6570; --radius:10px; --heading:#0D2438;
  --accent-strong:#0A3D66;
}
:root[data-theme="dark"]{
  --primary-light:#7CB8E4; --steel:#9AACBD;
  --ink:#E7EDF3; --border:#324458; --bg:#0B1420; --card:#16212C;
  --danger:#FF8A7B; --danger-bg:#452019; --warn:#F0C34E; --warn-bg:#453510;
  --ok:#5FE39A; --ok-bg:#123B27; --muted-bg:#293C4D; --muted:#A8BBCC; --heading:#EAF2FA;
  --accent-strong:#7CB8E4;
}
*{box-sizing:border-box;}
body{margin:0; font-family:'IBM Plex Sans', Arial, sans-serif; background:var(--bg); color:var(--ink); transition:background .15s ease, color .15s ease;}

@keyframes fadeIn{ from{opacity:0;} to{opacity:1;} }
@keyframes fadeInUp{ from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);} }
@keyframes overlayFade{ from{opacity:0;} to{opacity:1;} }
@keyframes modalIn{ from{opacity:0; transform:scale(.94) translateY(10px);} to{opacity:1; transform:scale(1) translateY(0);} }
@keyframes iconSpin{ from{transform:rotate(0deg);} to{transform:rotate(180deg);} }
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}
header{
  background:linear-gradient(135deg, var(--primary-dark), var(--navy)); color:var(--white);
  padding:24px 32px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
}
header h1{font-family:'Space Grotesk', sans-serif; font-size:22px; margin:0 0 4px 0; font-weight:700;}
header p{margin:0; font-size:13px; color:var(--primary-light);}
.header-brand{display:flex; align-items:center; gap:16px;}
.logo-chip{background:var(--white); border-radius:10px; padding:6px 10px; display:flex; align-items:center; flex-shrink:0;}
.logo-chip img{height:36px; width:auto; display:block;}
.header-actions{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
.btn-icon-round{background:rgba(255,255,255,0.12); color:var(--white); width:34px; height:34px; border-radius:50%; font-size:15px; display:flex; align-items:center; justify-content:center; padding:0; transition:background .15s ease, transform .3s ease;}
.btn-icon-round:hover{background:rgba(255,255,255,0.22);}
.btn-icon-round.spin{animation:iconSpin .4s ease;}
.lang-toggle{display:flex; background:rgba(255,255,255,0.12); border-radius:999px; padding:3px;}
.lang-toggle button{border:none; background:transparent; color:var(--white); padding:6px 14px; border-radius:999px; font-size:12px; font-weight:600; cursor:pointer; font-family:inherit;}
.lang-toggle button.active{background:var(--white); color:var(--primary-dark);}
.whoami{font-size:12px; color:var(--primary-light); padding:0 6px;}
main{max-width:1200px; margin:0 auto; padding:24px 20px 60px;}
.dashboard{display:grid; grid-template-columns:repeat(auto-fit, minmax(150px,1fr)); gap:14px; margin-bottom:24px;}
.stat-card{background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:16px; animation:fadeInUp .3s ease backwards; transition:transform .15s ease, box-shadow .15s ease;}
.stat-card:hover{transform:translateY(-3px); box-shadow:0 8px 20px rgba(13,36,56,0.1);}
.stat-card .num{font-family:'IBM Plex Mono', monospace; font-size:26px; font-weight:500; color:var(--accent-strong); transition:color .15s ease;}
.stat-card .label{font-size:12px; color:var(--muted); margin-top:4px;}
.stat-card.overdue .num{color:var(--danger);}
.stat-card:nth-child(1){animation-delay:.02s;} .stat-card:nth-child(2){animation-delay:.06s;} .stat-card:nth-child(3){animation-delay:.1s;}
.stat-card:nth-child(4){animation-delay:.14s;} .stat-card:nth-child(5){animation-delay:.18s;} .stat-card:nth-child(6){animation-delay:.22s;}
.panel{background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:20px; margin-bottom:20px; animation:fadeInUp .35s ease backwards; animation-delay:.05s;}
.panel h2{font-family:'Space Grotesk', sans-serif; font-size:16px; margin:0 0 14px 0; color:var(--heading);}
.panel h3{font-family:'Space Grotesk', sans-serif; font-size:14px; margin:0 0 14px 0; color:var(--heading);}
.eng-summary{display:grid; grid-template-columns:1fr 1fr; gap:10px 24px;}
@media (max-width:720px){ .eng-summary{grid-template-columns:1fr;} }
.eng-row{display:grid; grid-template-columns:130px 1fr 46px; align-items:center; gap:10px; font-size:13px;}
.eng-row .bar-bg{background:var(--muted-bg); border-radius:6px; height:14px; overflow:hidden;}
.eng-row .bar-fill{background:var(--primary); height:100%; border-radius:6px; transition:width .5s ease;}
.eng-row{animation:fadeIn .3s ease backwards;}

.avatar-circle{width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:16px; color:#fff; font-family:'Space Grotesk', sans-serif; overflow:hidden; flex-shrink:0;}
.avatar-circle img{width:100%; height:100%; object-fit:cover; display:block;}
.avatar-circle.lg{width:72px; height:72px; font-size:24px;}
.avatar-circle.clickable{cursor:pointer; transition:transform .15s ease, box-shadow .15s ease;}
.avatar-circle.clickable:hover{transform:scale(1.06); box-shadow:0 4px 14px rgba(0,0,0,0.25);}
.avatar-row{display:flex; align-items:center; gap:16px;}
.eng-cards{display:grid; grid-template-columns:repeat(auto-fill, minmax(200px,1fr)); gap:14px;}
.panel-subsection{margin-top:20px; padding-top:20px; border-top:1px solid var(--border);}
.table-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch;}
.week-nav{display:flex; align-items:center; gap:10px; margin-bottom:14px; flex-wrap:wrap;}
.week-nav-btn{background:var(--muted-bg); color:var(--ink); width:30px; height:30px; border-radius:50%; font-size:14px; display:flex; align-items:center; justify-content:center; padding:0; border:1px solid var(--border); transition:background .15s ease;}
.week-nav-btn:hover{background:var(--border);}
#week-range-label{font-weight:600; color:var(--heading); font-size:13px; min-width:150px; text-align:center;}
.long-term-divider td{padding-top:20px; padding-bottom:6px; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); border-top:1px solid var(--border);}
.eng-card{background:var(--bg); border:1px solid var(--border); border-radius:10px; padding:16px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px; animation:fadeInUp .3s ease backwards;}
.eng-card-name{font-weight:700; color:var(--heading); margin-top:8px;}
.eng-card-title{font-size:12px; color:var(--muted);}
.eng-card-stats{display:grid; grid-template-columns:1fr 1fr; gap:8px; width:100%; margin-top:10px;}
.eng-card-stat{background:var(--card); border-radius:8px; padding:8px 4px;}
.eng-card-stat .num{font-family:'IBM Plex Mono', monospace; font-weight:600; font-size:16px; color:var(--accent-strong);}
.eng-card-stat .label{font-size:9px; color:var(--muted); text-transform:uppercase; letter-spacing:.03em;}
.avatar-menu{position:fixed; background:var(--card); border:1px solid var(--border); border-radius:8px; padding:6px; box-shadow:0 10px 24px rgba(0,0,0,0.25); z-index:60; display:flex; flex-direction:column; gap:2px; min-width:140px;}
.avatar-menu button{background:transparent; color:var(--ink); text-align:left; padding:8px 10px; border-radius:6px; font-weight:400; font-size:13px;}
.avatar-menu button:hover{background:var(--muted-bg);}
.avatar-menu button#avatar-menu-delete:hover{background:var(--danger-bg); color:var(--danger);}
.toolbar{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; flex-wrap:wrap;}
.filters{display:flex; gap:8px; flex-wrap:wrap;}
select, input, textarea{font-family:inherit; font-size:13px; padding:7px 10px; border:1px solid var(--border); border-radius:6px; background:var(--card); color:var(--ink); transition:border-color .15s ease, box-shadow .15s ease;}
select:focus, input:focus, textarea:focus{outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(11,115,191,0.15);}
button{font-family:inherit; cursor:pointer; border:none; border-radius:6px; font-weight:600; font-size:13px; transition:background .15s ease, color .15s ease, transform .08s ease, box-shadow .15s ease;}
button:active{transform:scale(0.96);}
.btn-primary{background:var(--primary); color:#fff; padding:9px 16px;}
.btn-primary:hover{background:var(--primary-dark); box-shadow:0 2px 10px rgba(11,115,191,0.3);}
.btn-secondary{background:var(--muted-bg); color:var(--ink); padding:9px 14px; display:inline-flex; align-items:center; gap:6px;}
.icon-inline{flex-shrink:0;}
.btn-secondary:hover{background:var(--border);}
#logout-btn{display:inline-flex; align-items:center; gap:6px;}
#logout-btn:hover{color:var(--danger);}
.icon-power{flex-shrink:0;}
.btn-icon{background:transparent; color:var(--steel); padding:4px 6px; font-size:14px;}
.btn-icon:hover{color:var(--danger); transform:scale(1.15);}
#table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch;}
table{width:100%; min-width:680px; border-collapse:collapse; font-size:13px;}
table.resizable{width:auto; table-layout:fixed;}
th{text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); padding:8px 10px; border-bottom:2px solid var(--border);}
table.resizable th{position:relative; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-right:20px;}
.col-resize-handle{position:absolute; top:0; right:0; width:14px; height:100%; cursor:col-resize; touch-action:none; z-index:2;}
.col-resize-handle::after{content:''; position:absolute; top:15%; right:5px; width:2px; height:70%; background:var(--border); border-radius:1px;}
.col-resize-handle:hover::after, .col-resize-handle.active::after{background:var(--primary); width:3px;}
td{padding:10px; border-bottom:1px solid var(--border); vertical-align:top; overflow-wrap:break-word;}
tbody tr{animation:fadeIn .25s ease backwards; transition:background .12s ease;}
tr:hover td{background:var(--muted-bg);}
.badge{display:inline-block; padding:3px 10px; border-radius:999px; font-size:11px; font-weight:600; transition:background .15s ease, color .15s ease;}
.badge.not-started{background:var(--muted-bg); color:var(--muted);}
.badge.in-progress{background:var(--warn-bg); color:var(--warn);}
.badge.blocked{background:var(--danger-bg); color:var(--danger);}
.badge.done{background:var(--ok-bg); color:var(--ok);}
.badge.overdue-flag{background:var(--danger-bg); color:var(--danger); margin-left:6px;}
.pct-cell{white-space:nowrap;}
.pct-track{background:var(--muted-bg); border-radius:6px; height:8px; width:70px; display:inline-block; overflow:hidden; vertical-align:middle; margin-right:6px;}
.pct-track div{background:var(--ok); height:100%; transition:width .4s ease;}
.comment-text{color:var(--muted); font-size:12px; display:block;}
.empty-state, .loading-state{text-align:center; padding:40px; color:var(--muted); font-size:14px; animation:fadeIn .3s ease;}
.modal-overlay{position:fixed; inset:0; background:rgba(13,36,56,0.55); display:none; align-items:center; justify-content:center; z-index:50; padding:20px;}
.modal-overlay.open{display:flex; animation:overlayFade .15s ease;}
.modal-overlay.open .modal{animation:modalIn .2s cubic-bezier(.2,.9,.3,1.2);}
.modal{background:var(--card); border-radius:var(--radius); padding:26px; width:100%; max-width:520px; max-height:90vh; overflow-y:auto;}
.modal h3{font-family:'Space Grotesk', sans-serif; margin:0 0 16px 0; color:var(--heading);}
.field{margin-bottom:14px; display:flex; flex-direction:column; gap:5px;}
.field label{font-size:12px; font-weight:600; color:var(--muted);}
.field input, .field select, .field textarea{width:100%;}
.field textarea{resize:vertical; min-height:60px;}
.field-hint{font-size:11px; color:var(--muted);}
.modal-actions{display:flex; justify-content:flex-end; gap:10px; margin-top:18px;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.chip{background:var(--muted-bg); border-radius:999px; padding:5px 10px 5px 12px; font-size:12px; display:flex; align-items:center; gap:6px;}
.chip button{background:none; color:var(--steel); font-size:13px; padding:0 2px;}
.chip.protected{padding:5px 12px; opacity:.8;}
.checkbox-field{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink); margin:2px 0 14px; cursor:pointer;}
.checkbox-field input{width:auto; accent-color:var(--primary); cursor:pointer;}
#columns-panel{right:auto; min-width:200px;}
.multiselect{position:relative;}
.multiselect-toggle{width:100%; text-align:left; background:var(--card); border:1px solid var(--border); border-radius:6px; padding:7px 10px; font-size:13px; color:var(--ink); display:flex; justify-content:space-between; align-items:center; font-weight:400;}
.multiselect-toggle::after{content:'\25BE'; color:var(--muted); font-size:11px; margin-left:8px; flex-shrink:0;}
.multiselect-panel{position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--card); border:1px solid var(--border); border-radius:6px; padding:8px 10px; max-height:170px; overflow-y:auto; z-index:30; box-shadow:0 10px 24px rgba(0,0,0,0.18); display:flex; flex-direction:column; gap:6px;}
.multiselect-panel label{display:flex; align-items:center; gap:7px; font-size:13px; font-weight:400; color:var(--ink); cursor:pointer;}
.multiselect-panel label.disabled{cursor:default; opacity:.7;}
.multiselect-panel input{width:auto; accent-color:var(--primary); cursor:pointer;}
.multiselect-panel .empty-hint{font-size:12px; color:var(--muted);}
.manage-list{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px;}
.add-inline{display:flex; gap:8px;}
.modal-section h4{font-size:12px; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); margin:0 0 12px 0;}
.modal-divider{border-top:1px solid var(--border); margin:20px 0;}
.save-hint{font-size:12px; color:var(--ok); margin-right:auto; opacity:0; transition:opacity .2s ease;}
.save-hint.show{opacity:1;}

.manage-tabs{display:flex; flex-wrap:wrap; gap:4px; background:var(--muted-bg); border-radius:8px; padding:4px; margin-bottom:20px;}
.manage-tab-btn{flex:1 1 auto; min-width:110px; background:transparent; color:var(--muted); padding:8px 12px; border-radius:6px; font-size:13px; white-space:nowrap;}
.manage-tab-btn.active{background:var(--card); color:var(--heading); box-shadow:0 1px 2px rgba(0,0,0,0.08);}
.manage-panel{animation:fadeIn .18s ease;}
.manage-panel h4{font-size:12px; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); margin:0 0 12px 0;}

.user-list{display:flex; flex-direction:column; gap:8px; margin-bottom:4px; max-height:280px; overflow-y:auto;}
.user-row{display:flex; align-items:center; justify-content:space-between; gap:10px; background:var(--bg); border:1px solid var(--border); border-radius:8px; padding:10px 12px;}
.user-row-name{font-size:13px; font-weight:600; display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.user-row-meta{font-size:12px; color:var(--muted); margin-top:2px;}
.no-title-hint{font-style:italic; opacity:.75;}
.user-row.inactive{opacity:.55;}
.user-row-actions{display:flex; align-items:center; gap:4px; flex-shrink:0;}
.btn-icon.edit-user:hover{color:var(--primary);}
.btn-icon.toggle-active:hover{color:var(--warn);}
.btn-icon.delete-user:hover{color:var(--danger);}
footer{text-align:center; font-size:11px; color:var(--muted); padding:20px;}
.hint{font-size:11px; color:var(--muted);}
.error-text{color:var(--danger); font-size:12px; min-height:16px;}
.hidden{display:none !important;}

#login-screen{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--primary-dark), var(--navy)); padding:20px;
}
.login-card{position:relative; background:var(--card); border-radius:14px; padding:36px; width:100%; max-width:380px; box-shadow:0 20px 60px rgba(0,0,0,0.3);}
.login-lang-toggle{position:absolute; top:14px; right:14px; background:var(--muted-bg);}
.login-lang-toggle button{width:auto; padding:5px 12px; font-size:11px; color:var(--muted);}
.login-lang-toggle button.active{background:var(--primary); color:var(--white);}
.login-logo-chip{background:var(--white); border-radius:12px; padding:12px 20px; display:inline-flex; margin:0 auto 20px; box-shadow:0 1px 3px rgba(0,0,0,0.15);}
.login-logo-wrap{display:flex; justify-content:center;}
.login-logo{display:block; height:48px; width:auto;}
.login-card h1{font-family:'Space Grotesk', sans-serif; font-size:19px; color:var(--heading); margin:0 0 4px 0; text-align:center;}
.login-card p{font-size:13px; color:var(--muted); margin:0 0 22px 0; text-align:center;}
.login-card .field{margin-bottom:16px;}
.login-card button{width:100%; padding:11px; font-size:14px;}

.role-tag{font-size:10px; padding:2px 8px; border-radius:999px; background:var(--muted-bg); font-weight:600; text-transform:uppercase; letter-spacing:.02em;}
.role-tag.admin{background:var(--primary-light); color:var(--primary-dark);}

@media (max-width: 640px){
  header{padding:14px 16px; flex-direction:column; align-items:flex-start; gap:14px;}
  .header-brand{width:100%;}
  .logo-chip{padding:5px 8px;}
  .logo-chip img{height:28px;}
  header h1{font-size:17px;}
  header p{font-size:11px;}
  .header-actions{width:100%; justify-content:flex-start; gap:6px;}
  .header-actions button{font-size:11px; padding:7px 10px;}
  .btn-icon-round{width:30px; height:30px; font-size:13px;}
  .whoami{width:100%; padding:0; order:99;}
  main{padding:16px 12px 40px;}
  .dashboard{grid-template-columns:repeat(2, 1fr); gap:8px; margin-bottom:16px;}
  .stat-card{padding:12px;}
  .stat-card .num{font-size:20px;}
  .stat-card .label{font-size:11px;}
  .panel{padding:14px; margin-bottom:14px;}
  .eng-row{grid-template-columns:88px 1fr 34px; gap:6px; font-size:12px;}
  .toolbar{flex-direction:column; align-items:stretch; gap:10px;}
  .filters{width:100%;}
  .filters select{flex:1 1 0; min-width:0;}
  .modal{padding:18px; border-radius:12px;}
  .row2{grid-template-columns:1fr; gap:0;}
  .modal-actions{flex-wrap:wrap;}
  .add-inline{flex-wrap:wrap;}
  .login-card{padding:26px 22px;}
  .user-row{flex-direction:column; align-items:flex-start; gap:10px;}
  .user-row-actions{align-self:flex-end;}
  .manage-tab-btn{font-size:12px; padding:7px 8px;}
}

@media (max-width: 420px){
  .dashboard{grid-template-columns:repeat(2, 1fr);}
  header h1{font-size:16px;}
  .btn-primary#add-task-btn{padding:9px 12px; font-size:12px;}
}

/* ---------------- Module hub (shown after login) ---------------- */
.hub-main{max-width:960px;}
.hub-greeting{font-family:'Space Grotesk', sans-serif; font-size:20px; color:var(--heading); margin:12px 0 4px;}
.hub-greeting-sub{font-size:13px; color:var(--muted); margin:0 0 22px;}
.hub-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:18px;}
.hub-card{display:flex; flex-direction:column; gap:10px; background:var(--card); border:1px solid var(--border); border-radius:14px; padding:26px; text-decoration:none; color:var(--ink); animation:fadeInUp .3s ease backwards; transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;}
.hub-card:nth-child(2){animation-delay:.06s;}
.hub-card:hover, .hub-card:focus-visible{transform:translateY(-3px); box-shadow:0 12px 28px rgba(13,36,56,0.14); border-color:var(--primary); outline:none;}
.hub-card h3{font-family:'Space Grotesk', sans-serif; font-size:18px; margin:6px 0 0; color:var(--heading);}
.hub-card p{font-size:13px; color:var(--muted); margin:0; line-height:1.5; flex:1;}
.hub-card-icon{width:64px; height:64px; border-radius:14px; display:flex; align-items:center; justify-content:center;}
.hub-card-icon.perf{background:var(--primary); color:#fff;}
.hub-card-icon.fives{background:#fff; border:1px solid var(--border);}
.hub-card-icon.fives img{width:52px; height:52px; object-fit:contain;}
.hub-card-go{font-size:13px; font-weight:600; color:var(--accent-strong);}
/* "Modules" pill in the dark header: outlined like the EN/TR switch, so it reads as
   navigation back to the module picker rather than another action button. */
.btn-modules{display:inline-flex; align-items:center; gap:7px; padding:7px 14px; border-radius:999px; background:rgba(255,255,255,0.10); border:1px solid rgba(255,255,255,0.30); color:var(--white); font-size:12px; font-weight:600; text-decoration:none; transition:background .15s ease, border-color .15s ease;}
.btn-modules:hover{background:rgba(255,255,255,0.20); border-color:rgba(255,255,255,0.55);}
.btn-modules:focus-visible{outline:2px solid var(--white); outline-offset:2px;}

.hub-section-title{font-family:'Space Grotesk', sans-serif; font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin:34px 0 12px;}
.hub-admin-card{display:flex; align-items:center; gap:16px; flex-wrap:wrap; background:var(--card); border:1px solid var(--border); border-radius:14px; padding:18px 22px; animation:fadeInUp .3s ease backwards; animation-delay:.12s;}
.hub-admin-icon{width:48px; height:48px; border-radius:12px; background:var(--muted-bg); color:var(--accent-strong); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.hub-admin-text{flex:1; min-width:180px; display:flex; flex-direction:column; gap:3px;}
.hub-admin-text strong{font-family:'Space Grotesk', sans-serif; font-size:16px; color:var(--heading);}
.hub-admin-text span{font-size:13px; color:var(--muted);}
.hub-admin-actions{display:flex; gap:8px; flex-wrap:wrap;}
@media (max-width: 640px){
  .hub-admin-actions{width:100%;}
  .hub-admin-actions button{flex:1;}
}

/* ---------------- 5S module ---------------- */
.fs-tabs{display:flex; gap:4px; background:var(--muted-bg); border-radius:10px; padding:4px; margin-bottom:20px; flex-wrap:wrap;}
.fs-tab{flex:1 1 auto; background:transparent; color:var(--muted); padding:9px 14px; border-radius:7px; font-size:13px; white-space:nowrap;}
.fs-tab.active{background:var(--card); color:var(--heading); box-shadow:0 1px 2px rgba(0,0,0,0.08);}
.fs-tour-list{display:flex; flex-direction:column; gap:10px;}
.fs-tour-row{display:grid; grid-template-columns:90px 1fr 190px 90px 90px; gap:14px; align-items:center; background:var(--bg); border:1px solid var(--border); border-radius:10px; padding:14px 16px; cursor:pointer; transition:border-color .15s ease, transform .15s ease; animation:fadeIn .25s ease backwards; text-align:left; color:var(--ink); font-weight:400; width:100%;}
.fs-tour-row:hover{border-color:var(--primary); transform:translateY(-1px);}
.fs-week{font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:18px; color:var(--accent-strong); line-height:1.1;}
.fs-week small{display:block; font-family:'IBM Plex Sans', sans-serif; font-size:11px; font-weight:500; color:var(--muted);}
.fs-tour-meta{font-size:13px; min-width:0;}
.fs-tour-meta strong{color:var(--heading); display:block;}
.fs-tour-meta span{color:var(--muted); font-size:12px;}
.fs-progress{font-size:11px; color:var(--muted);}
.fs-progress-track{display:flex; height:8px; border-radius:6px; overflow:hidden; background:var(--muted-bg); margin-bottom:5px;}
.fs-progress-track .done{background:var(--ok);}
.fs-progress-track .prog{background:var(--warn);}
.fs-kpi{text-align:center;}
.fs-kpi .num{font-family:'IBM Plex Mono', monospace; font-size:17px; color:var(--accent-strong);}
.fs-kpi .label{font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.03em;}
.fs-kpi.bad .num{color:var(--danger);}
.badge.fs-not_done{background:var(--danger-bg); color:var(--danger);}
.badge.fs-in_progress{background:var(--warn-bg); color:var(--warn);}
.badge.fs-done{background:var(--ok-bg); color:var(--ok);}
.pillar-tag{display:inline-block; font-size:11px; font-weight:600; padding:3px 9px; border-radius:999px; color:#fff; white-space:nowrap;}
.pillar-1{background:#0A5A8C;}
.pillar-2{background:#B85A06;}
.pillar-3{background:#C76A0E;}
.pillar-4{background:#2F7DBF;}
.pillar-5{background:#2A6594;}
.fs-back{background:transparent; color:var(--accent-strong); padding:4px 0; margin-bottom:12px; display:inline-flex; align-items:center; gap:6px;}
.fs-tour-head{display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; align-items:flex-start;}
.fs-tour-head h2{font-size:20px !important; margin:0 0 6px !important;}
.fs-tour-facts{display:flex; gap:18px; flex-wrap:wrap; font-size:13px; color:var(--muted);}
.fs-tour-facts b{color:var(--ink); font-weight:600;}
.fs-tour-notes{font-size:13px; color:var(--muted); margin:10px 0 0; white-space:pre-wrap;}
.fs-actions{display:flex; gap:8px; flex-wrap:wrap;}
.fs-section{border:1px solid var(--border); border-radius:12px; margin-bottom:18px; overflow:hidden; background:var(--card); animation:fadeInUp .3s ease backwards;}
.fs-section-head{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:14px 18px; background:var(--bg); border-bottom:1px solid var(--border);}
.fs-section-head h3{font-family:'Space Grotesk', sans-serif; font-size:16px; margin:0; color:var(--heading);}
.fs-section-head .sub{font-size:12px; color:var(--muted); margin-top:2px;}
.fs-section-stats{display:flex; gap:14px; align-items:center; flex-wrap:wrap;}
.fs-score{font-family:'IBM Plex Mono', monospace; font-size:18px; font-weight:600; color:var(--accent-strong);}
.fs-score.empty{color:var(--muted); font-size:14px;}
.fs-score-label{font-size:10px; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); display:block; text-align:right;}
.fs-report-flag{font-size:11px; font-weight:700; padding:3px 9px; border-radius:999px; background:var(--muted-bg); color:var(--muted);}
.fs-report-flag.yes{background:var(--danger-bg); color:var(--danger);}
.fs-finding{display:grid; grid-template-columns:36px minmax(150px,1fr) minmax(150px,1fr) minmax(200px,1.4fr) 160px; gap:14px; padding:16px 18px; border-bottom:1px solid var(--border); align-items:start;}
.fs-num{font-family:'IBM Plex Mono', monospace; font-weight:600; color:var(--muted); font-size:14px; padding-top:2px;}
.fs-col-label{font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); font-weight:700; margin-bottom:6px;}
.fs-photos{display:flex; gap:6px; flex-wrap:wrap;}
.fs-thumb{width:72px; height:72px; border-radius:8px; overflow:hidden; background:var(--muted-bg); border:1px solid var(--border); cursor:zoom-in; padding:0; position:relative; flex-shrink:0;}
.fs-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.fs-thumb-add{width:72px; height:72px; border-radius:8px; border:1.5px dashed var(--border); background:transparent; color:var(--muted); font-size:22px; font-weight:400; display:flex; align-items:center; justify-content:center; flex-shrink:0; padding:0;}
.fs-thumb-add:hover{border-color:var(--primary); color:var(--primary);}
.fs-thumb-remove{position:absolute; top:3px; right:3px; width:20px; height:20px; border-radius:50%; background:rgba(0,0,0,0.65); color:#fff; font-size:12px; line-height:20px; padding:0; cursor:pointer;}
.fs-text{font-size:13px; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere;}
.fs-explain{font-size:12px; color:var(--muted); margin-top:8px; white-space:pre-wrap; overflow-wrap:anywhere;}
.fs-explain b{color:var(--ink); font-weight:600;}
.fs-finding-side{display:flex; flex-direction:column; gap:8px; align-items:stretch;}
.fs-finding-side select{width:100%;}
.fs-finding-tools{display:flex; gap:4px; justify-content:flex-end;}
.btn-icon.fs-edit:hover{color:var(--primary);}
.fs-section-foot{padding:12px 18px; display:flex; gap:8px; flex-wrap:wrap; border-top:1px solid var(--border);}
.fs-empty-section{padding:18px; font-size:13px; color:var(--muted);}
.fs-matrix{width:100%; min-width:520px; border-collapse:collapse; font-size:13px;}
.fs-matrix th, .fs-matrix td{padding:8px 10px; border-bottom:1px solid var(--border); text-align:center; white-space:nowrap;}
.fs-matrix th:first-child, .fs-matrix td:first-child{text-align:left;}
.fs-cell-score{font-family:'IBM Plex Mono', monospace; font-weight:600; border-radius:6px; padding:3px 8px; display:inline-block; min-width:48px;}
.fs-cell-score.hi{background:var(--ok-bg); color:var(--ok);}
.fs-cell-score.mid{background:var(--warn-bg); color:var(--warn);}
.fs-cell-score.lo{background:var(--danger-bg); color:var(--danger);}
.fs-open-table td{vertical-align:middle;}
.fs-open-table .fs-thumb{width:56px; height:56px;}
.fs-open-table select{min-width:130px;}
.fs-dept-list{display:flex; flex-direction:column; gap:8px; margin-bottom:16px; max-height:340px; overflow-y:auto;}
.fs-check-grid{display:grid; grid-template-columns:1fr 1fr; gap:6px 14px; background:var(--bg); border:1px solid var(--border); border-radius:8px; padding:10px 12px; max-height:200px; overflow-y:auto;}
.fs-check-grid label{display:flex; gap:7px; align-items:center; font-size:13px; cursor:pointer; font-weight:400; color:var(--ink);}
.fs-check-grid input{width:auto; accent-color:var(--primary);}
.fs-photo-edit{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:14px;}
.fs-lightbox{position:fixed; inset:0; background:rgba(5,12,20,0.88); display:none; align-items:center; justify-content:center; z-index:80; padding:20px; flex-direction:column; gap:12px;}
.fs-lightbox.open{display:flex; animation:overlayFade .15s ease;}
.fs-lightbox img{max-width:100%; max-height:82vh; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,0.5);}
.fs-lightbox-bar{display:flex; gap:10px; align-items:center; color:#DDE6EE; font-size:13px;}
.fs-lightbox-bar button{background:rgba(255,255,255,0.15); color:#fff; padding:8px 14px;}
.fs-busy{opacity:.55; pointer-events:none;}
@media (max-width: 900px){
  .fs-finding{grid-template-columns:30px 1fr 1fr;}
  .fs-finding .fs-action-col, .fs-finding .fs-finding-side{grid-column:2 / 4;}
  .fs-finding .fs-finding-side{flex-direction:row; flex-wrap:wrap; align-items:center;}
  .fs-finding .fs-finding-side select{width:auto; flex:1 1 140px;}
  .fs-tour-row{grid-template-columns:70px 1fr 80px;}
  .fs-tour-row .fs-progress-col, .fs-tour-row .fs-kpi.rep{display:none;}
}
@media (max-width: 640px){
  .fs-finding{grid-template-columns:1fr 1fr; padding:14px;}
  .fs-finding .fs-num, .fs-finding .fs-action-col, .fs-finding .fs-finding-side{grid-column:1 / 3;}
  .fs-thumb, .fs-thumb-add{width:60px; height:60px;}
  .fs-section-head{padding:12px 14px;}
  .fs-check-grid, .fs-photo-edit{grid-template-columns:1fr;}
}

.view-only-tag{background:rgba(255,255,255,0.16); color:var(--white);}
.fs-import-table{width:100%; min-width:0; border-collapse:collapse; font-size:13px; margin-top:6px;}
.fs-import-table td, .fs-import-table th{padding:8px; border-bottom:1px solid var(--border); text-align:left;}
.fs-import-result{font-weight:600; white-space:nowrap;}
.fs-import-result.ok{color:var(--ok);}
.fs-import-result.skip{color:var(--muted);}
.fs-import-result.bad{color:var(--danger);}

/* A select with its action button on one line (Edit User > Forward Tasks). */
.inline-action{align-items:end;}
.inline-action .field{margin-bottom:0;}
.inline-action select, .inline-action > button{height:36px;}
.inline-action > button{justify-self:start; padding:0 18px;}

/* 5S two-week tour phases */
.fs-phase{display:inline-block; vertical-align:middle; font-family:'IBM Plex Sans', sans-serif; font-size:11px; font-weight:600; padding:2px 9px; border-radius:999px; margin-left:6px; background:var(--muted-bg); color:var(--muted); white-space:nowrap;}
.fs-phase-observation{background:#DCEBF7; color:#0A5A8C;}
.fs-phase-monitoring{background:var(--warn-bg); color:var(--warn);}
.fs-phase-closed{background:var(--ok-bg); color:var(--ok);}
:root[data-theme="dark"] .fs-phase-observation{background:#15324B; color:#7CB8E4;}
.fs-tour-head h2 .fs-phase{font-size:12px;}
.fs-mine{display:inline-block; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; padding:1px 7px; border-radius:999px; background:var(--primary); color:#fff;}
.fs-period-hint{margin:-6px 0 14px;}
.fs-tour-row .fs-tour-meta strong{display:flex; align-items:center; flex-wrap:wrap; gap:2px;}

.fs-recorded{font-size:11px; color:var(--muted); margin-top:6px;}

/* 5S evaluation meeting */
.fs-phase-evaluation{background:var(--danger-bg); color:var(--danger);}
.fs-evaluated{margin:10px 0 0; font-size:13px; font-weight:600; color:var(--ok);}
.fs-eval-total{display:flex; flex-direction:column; gap:6px; margin-top:16px;}
.fs-eval-total .fs-progress-track{height:10px; margin:0;}
.fs-eval-total strong{font-size:13px; color:var(--heading);}
.fs-eval-rate{display:flex; flex-direction:column; align-items:flex-end; gap:4px; min-width:190px; font-size:12px; color:var(--muted);}
.fs-eval-rate .fs-progress-track{width:100%; margin:0;}
.fs-eval-row{display:grid; grid-template-columns:30px 124px 1fr 170px; gap:12px; align-items:center; padding:10px 18px; border-bottom:1px solid var(--border);}
.fs-eval-photos{display:flex; gap:6px;}
.fs-eval-photos .fs-thumb, .fs-eval-nophoto{width:56px; height:56px;}
.fs-eval-nophoto{display:inline-block; border-radius:8px; background:var(--muted-bg);}
.fs-eval-text{font-size:13px; line-height:1.45;}
.fs-eval-text .comment-text{margin-top:3px;}
.fs-eval-status select{width:100%;}
.fs-eval-decision{display:flex; flex-wrap:wrap; align-items:center; gap:18px; padding:14px 18px; background:var(--bg);}
.fs-eval-field{display:flex; align-items:center; gap:8px; font-size:12px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; margin:0;}
.fs-eval-score-input{display:inline-flex; align-items:center; gap:4px; font-size:14px; color:var(--ink); text-transform:none;}
.fs-eval-score-input input{width:78px; font-family:'IBM Plex Mono', monospace; font-size:15px; font-weight:600; text-align:right;}
.fs-eval-use{padding:6px 10px; font-size:12px; text-transform:none; letter-spacing:0;}
.fs-segmented{display:inline-flex; background:var(--muted-bg); border-radius:999px; padding:3px;}
.fs-segmented button{background:transparent; color:var(--muted); padding:6px 16px; border-radius:999px; font-size:12px; text-transform:none; letter-spacing:0;}
.fs-segmented button.active{background:var(--card); color:var(--ok); box-shadow:0 1px 2px rgba(0,0,0,0.12);}
.fs-segmented button.active.yes{color:var(--danger);}
.fs-segmented button:disabled{cursor:default;}
.fs-eval-footer{display:flex; align-items:center; gap:14px; flex-wrap:wrap;}
.fs-eval-footer .fs-evaluated{margin:0;}
@media (max-width: 720px){
  .fs-eval-row{grid-template-columns:26px 1fr; }
  .fs-eval-row .fs-eval-photos{grid-column:2;}
  .fs-eval-row .fs-eval-text, .fs-eval-row .fs-eval-status{grid-column:1 / 3;}
  .fs-eval-rate{align-items:flex-start; min-width:0; width:100%;}
}
.fs-tour-meta .fs-mine{color:#fff;}

/* 5S responsible performance */
.fs-perf-table{width:100%; min-width:900px; border-collapse:collapse; font-size:13px;}
.fs-perf-table th{white-space:nowrap;}
.fs-perf-table td{vertical-align:middle;}
.fs-perf-table td.num{text-align:center; white-space:nowrap;}
.fs-perf-row{cursor:pointer;}
.fs-perf-row.open td{background:var(--muted-bg);}
.fs-perf-caret{display:inline-block; width:12px; color:var(--muted);}
.fs-perf-rate{display:flex; align-items:center; gap:8px; min-width:120px;}
.fs-perf-rate .fs-progress-track{flex:1; margin:0;}
.fs-perf-rate span{font-family:'IBM Plex Mono', monospace; font-size:12px; min-width:36px; text-align:right;}
.fs-dept-chip{display:inline-block; font-size:11px; padding:2px 8px; border-radius:999px; background:var(--muted-bg); color:var(--ink); margin:1px 0; white-space:nowrap;}
.fs-recent{display:inline-flex; gap:4px; flex-wrap:wrap;}
.fs-recent .fs-cell-score{min-width:40px; font-size:11px; padding:2px 6px;}
.fs-trend{font-size:11px; margin-left:4px; color:var(--muted);}
.fs-trend.up{color:var(--ok);}
.fs-trend.down{color:var(--danger);}
.fs-muted{color:var(--muted);}
.fs-perf-detail > td{background:var(--bg); padding:10px 16px 16px;}
.fs-perf-detail .fs-matrix td, .fs-perf-detail .fs-matrix th{text-align:left;}

/* 5S layout: dashboard sub lines, tab counters, bonus section */
#fs-dashboard{grid-template-columns:repeat(6, minmax(0, 1fr));}
@media (max-width: 1100px){ #fs-dashboard{grid-template-columns:repeat(3, minmax(0, 1fr));} }
@media (max-width: 560px){ #fs-dashboard{grid-template-columns:repeat(2, minmax(0, 1fr));} }
#fs-dashboard .stat-card .sub{font-size:11px; color:var(--muted); margin-top:2px; opacity:.85;}
#fs-dashboard .stat-card.bonus .num{color:var(--ok);}
.fs-tab{display:inline-flex; align-items:center; justify-content:center; gap:7px;}
.fs-tab-count{font-family:'IBM Plex Mono', monospace; font-size:11px; font-weight:600; background:var(--muted-bg); color:var(--muted); border-radius:999px; padding:1px 7px; min-width:20px;}
.fs-tab-count:empty{display:none;}
.fs-tab.active .fs-tab-count{background:var(--primary); color:#fff;}
.fs-tab-count.warn{background:var(--warn-bg); color:var(--warn);}
.fs-tab-count.ok{background:var(--ok-bg); color:var(--ok);}
.fs-threshold{font-size:12px; font-weight:600; color:var(--muted); background:var(--muted-bg); border-radius:999px; padding:6px 12px; white-space:nowrap;}
.fs-bonus-table{min-width:820px;}
.fs-bonus-row td{background:color-mix(in srgb, var(--ok-bg) 45%, transparent);}
.fs-bonus-yes{display:inline-block; font-size:12px; font-weight:700; color:var(--ok); background:var(--ok-bg); border-radius:999px; padding:3px 10px; white-space:nowrap;}
.fs-bonus-approved{display:inline-block; font-size:12px; font-weight:600; color:var(--ok);}
.fs-bonus-action{white-space:nowrap;}
.fs-bonus-action .comment-text{white-space:normal;}
.fs-bonus-btn{padding:6px 12px; font-size:12px;}
.fs-star{color:#E0A100; font-size:13px;}

/* 5S photo quality (Normal / HD) */
.fs-quality{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:12px 0 4px;}
.fs-quality-label{font-size:12px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.03em;}
.fs-quality .fs-segmented button.active{color:var(--accent-strong);}
.fs-quality-hint{font-size:12px; color:var(--muted);}
.modal .fs-quality{margin:0 0 14px;}

/* 5S tour list: whole row opens the tour, the eye button opens the review */
.fs-tour-row{grid-template-columns:90px 1fr 190px 90px 90px 40px;}
.fs-tour-row:focus-visible{outline:2px solid var(--primary); outline-offset:2px;}
.fs-row-review{width:36px; height:36px; border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--accent-strong); background:var(--card); border:1px solid var(--border);}
.fs-row-review:hover{border-color:var(--primary); color:var(--primary);}
.fs-eng-pill{display:inline-block; font-size:10px; font-weight:700; padding:1px 7px; border-radius:999px; background:var(--danger-bg); color:var(--danger); white-space:nowrap;}
@media (max-width: 900px){ .fs-tour-row{grid-template-columns:70px 1fr 80px 40px;} }
@media (max-width: 640px){
  .fs-tour-row{grid-template-columns:48px 1fr 38px; gap:10px; padding:12px;}
  .fs-tour-row .fs-kpi{display:none;}
  .fs-tour-row .fs-week{font-size:16px;}
}

/* 5S department groups */
.fs-group-head{display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin:22px 0 10px; padding-bottom:6px; border-bottom:2px solid var(--border);}
.fs-group-head:first-child{margin-top:4px;}
.fs-group-name{font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:15px; color:var(--accent-strong); text-transform:uppercase; letter-spacing:.04em;}
.fs-group-eng{font-size:12px; color:var(--muted);}
.fs-group-eng b{color:var(--ink);}
.fs-dept-group-label{font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin:6px 0 -2px;}
.fs-chip-row{display:flex; flex-wrap:wrap; gap:4px; margin-top:6px;}
.fs-chip-link{text-decoration:none; color:var(--accent-strong);}
.fs-chip-link:hover{background:var(--primary); color:#fff;}
.fs-tg-list{display:flex; flex-direction:column; gap:10px; max-height:340px; overflow-y:auto;}
.fs-tg{border:1px solid var(--border); border-radius:8px; padding:8px 10px; background:var(--bg);}
.fs-tg-head{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:6px;}
.fs-tg-head strong{font-size:13px; color:var(--heading);}
.fs-tg-head select{max-width:230px;}
.fs-tg .fs-check-grid{border:0; padding:2px 0; background:transparent; max-height:none;}
.fs-tg-hint{margin:-2px 0 8px;}
#tour-engineers{max-height:150px; margin-bottom:6px;}
#tour-engineers + .fs-tg-hint{margin:0;}

/* Engineer visit / tutanak flags */
.fs-eng-flag{display:inline-block; margin-top:6px; font-size:11px; font-weight:700; padding:3px 9px; border-radius:999px;}
.fs-eng-flag.due{background:var(--danger-bg); color:var(--danger);}
.fs-eng-flag.ok{background:var(--ok-bg); color:var(--ok);}
.fs-eng-flag.wait{background:var(--warn-bg); color:var(--warn);}
.fs-small-btn{padding:6px 10px; font-size:12px;}
.fs-auto-tag{font-size:10px; font-weight:600; text-transform:none; letter-spacing:0; color:var(--muted); background:var(--muted-bg); border-radius:999px; padding:2px 8px;}
.fs-eng-count{font-family:'IBM Plex Mono', monospace; font-weight:700; color:var(--danger); background:var(--danger-bg); border-radius:999px; padding:2px 10px;}
.fs-eng-table{min-width:640px;}

/* 5S tour review */
.fs-rv-filters{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:14px;}
.fs-rv-check{margin:0;}
.fs-rv-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(340px, 1fr)); gap:14px; padding:16px;}
.fs-rv-card{border:1px solid var(--border); border-radius:10px; overflow:hidden; background:var(--card); display:flex; flex-direction:column;}
.fs-rv-photos{display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--border);}
.fs-rv-photos figure{margin:0; background:var(--card); position:relative;}
.fs-rv-photos figcaption{position:absolute; top:6px; left:6px; z-index:1; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; background:rgba(13,36,56,0.78); color:#fff; padding:2px 8px; border-radius:999px;}
.fs-rv-photo{display:flex; flex-direction:column;}
.fs-rv-main{display:block; width:100%; aspect-ratio:4 / 3; padding:0; border:0; border-radius:0; background:var(--muted-bg); cursor:zoom-in;}
.fs-rv-main img{width:100%; height:100%; object-fit:cover; display:block;}
.fs-rv-photo.empty{aspect-ratio:4 / 3; align-items:center; justify-content:center; background:var(--muted-bg); color:var(--muted); font-size:12px;}
.fs-rv-more{display:flex; gap:4px; padding:4px; flex-wrap:wrap;}
.fs-rv-more .fs-thumb{width:44px; height:44px; border-radius:6px;}
.fs-rv-body{padding:12px 14px; display:flex; flex-direction:column; gap:6px;}
.fs-rv-top{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.fs-rv-top .fs-num{padding:0;}
.fs-review-section .fs-section-head{border-bottom:0;}
@media (max-width: 640px){ .fs-rv-grid{grid-template-columns:1fr; padding:10px;} }

/* 5S department grades */
#grades-controls{align-items:center;}
#grades-controls .fs-segmented button.active{color:var(--accent-strong);}
.fs-grade-legend{display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin:0 0 6px;}
.fs-grade-legend .fs-cell-score{min-width:0; font-size:11px; padding:1px 7px;}
.fs-grade-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:12px;}
.fs-grade-card{border:1px solid var(--border); border-radius:12px; padding:14px 16px; background:var(--bg); display:flex; flex-direction:column; gap:12px; animation:fadeIn .25s ease backwards;}
.fs-grade-top{display:flex; justify-content:space-between; gap:10px; align-items:flex-start;}
.fs-grade-id{min-width:0;}
.fs-grade-name{font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:15px; color:var(--heading); overflow-wrap:anywhere;}
.fs-grade-resp{font-size:11px; color:var(--muted); margin-top:2px;}
.fs-grade-big{font-family:'IBM Plex Mono', monospace; font-weight:600; font-size:24px; line-height:1; text-align:right; border-radius:10px; padding:8px 10px; flex-shrink:0;}
.fs-grade-big small{display:block; font-family:'IBM Plex Sans', sans-serif; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; margin-top:4px; opacity:.8;}
.fs-grade-big.hi{background:var(--ok-bg); color:var(--ok);}
.fs-grade-big.mid{background:var(--warn-bg); color:var(--warn);}
.fs-grade-big.lo{background:var(--danger-bg); color:var(--danger);}
.fs-grade-big.none{background:var(--muted-bg); color:var(--muted);}
.fs-grade-bars{display:flex; align-items:flex-end; gap:4px; height:46px; padding:0 2px; border-bottom:1px solid var(--border);}
.fs-gbar{flex:1; border-radius:3px 3px 0 0; min-width:6px;}
.fs-gbar.hi{background:var(--ok);}
.fs-gbar.mid{background:var(--warn);}
.fs-gbar.lo{background:var(--danger);}
.fs-gbar.none{height:3px; background:var(--muted-bg);}
.fs-grade-foot{display:flex; flex-wrap:wrap; gap:6px 14px; font-size:12px; color:var(--muted); align-items:center;}
.fs-grade-foot b{color:var(--ink); font-family:'IBM Plex Mono', monospace;}
.fs-grade-foot .fs-trend{margin-left:0; font-weight:700;}
.fs-grade-bad{color:var(--danger); font-weight:600;}
.fs-grade-warn{color:var(--warn); font-weight:600;}
.fs-grade-table td:first-child, .fs-grade-table th:first-child{position:sticky; left:0; background:var(--card); z-index:1;}
.fs-grade-group td{background:var(--muted-bg) !important; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--accent-strong); text-align:left !important;}
.fs-grade-dot{display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--danger); margin-left:4px; vertical-align:middle;}

/* Paper layout (PDF report / tutanak): only visible while printing */
#print-root{display:none;}
@page landscape{size:A4 landscape; margin:9mm;}
@page portrait{size:A4 portrait; margin:16mm;}
/* Only while a 5S printout is in #print-root: other pages (e.g. Performance) print as before. */
@media print{
  body:has(#print-root:not(:empty)){background:#fff !important;}
  body:has(#print-root:not(:empty)) > *:not(#print-root){display:none !important;}
  #print-root{display:block; color:#111; font-family:'IBM Plex Sans', Arial, sans-serif; -webkit-print-color-adjust:exact; print-color-adjust:exact;}
}
.pr-landscape{page:landscape;}
.pr-portrait{page:portrait;}
.pr-doc{font-size:10.5px; line-height:1.35;}
.pr-head{display:flex; align-items:center; gap:16px; border-bottom:2.5px solid #0A3D66; padding-bottom:8px; margin-bottom:8px;}
.pr-logo{height:40px; width:auto;}
.pr-title{flex:1;}
.pr-title h1{font-family:'Space Grotesk', Arial, sans-serif; font-size:19px; color:#0A3D66; margin:0 0 2px; letter-spacing:.03em;}
.pr-title div{font-size:12px; color:#333;}
/* No fade-in on paper: a row caught mid-animation would print blank. */
.pr-doc, .pr-doc *{animation:none !important; transition:none !important;}
.pr-doc table{width:auto; min-width:0;}
.pr-doc th, .pr-doc td{text-transform:none; letter-spacing:0; background:none; border-bottom:0;}
.pr-title{min-width:0;}
.pr-title h1{white-space:nowrap;}
.pr-facts{border-collapse:collapse; font-size:10px; flex-shrink:0; max-width:48%;}
.pr-facts th{text-align:left; color:#5A6570; font-weight:600; padding:1px 10px 1px 0; white-space:nowrap;}
.pr-facts td{font-weight:600; padding:1px 0; color:#111;}
.pr-totals{margin:0 0 6px; font-size:10.5px; color:#333;}
.pr-doc .pr-table{width:100%; border-collapse:collapse; table-layout:fixed;}
.pr-doc .pr-table th{text-transform:uppercase; letter-spacing:.03em; background:#0A3D66; color:#fff; font-size:10px; text-transform:uppercase; letter-spacing:.03em; padding:5px 6px; text-align:left; border:1px solid #0A3D66;}
.pr-doc .pr-table td{border:1px solid #C9D1D9; padding:5px 6px; vertical-align:top; overflow-wrap:anywhere; white-space:pre-wrap;}
.pr-table thead{display:table-header-group;}
.pr-row, .pr-dept{break-inside:avoid; page-break-inside:avoid;}
.pr-doc .pr-group td{background:#0A3D66; color:#fff; font-weight:700; text-transform:uppercase; letter-spacing:.05em; font-size:11px;}
.pr-doc .pr-dept td{background:#E9EEF3; font-size:11px; white-space:normal;}
.pr-dept-right{float:right;}
.pr-no{text-align:center; font-weight:700;}
.pr-ph img{display:block; width:100%; max-height:130px; object-fit:contain; margin-bottom:3px; border-radius:3px;}
.pr-none{color:#999;}
.pr-pillar{margin-top:4px; font-size:9.5px; font-weight:700; color:#0A5A8C;}
.pr-small{font-size:9px; color:#5A6570; margin-top:3px;}
.pr-st{font-weight:700; text-align:center;}
.pr-doc .pr-done{color:#1E7A46; background:#DCF0E3;}
.pr-doc .pr-in_progress{color:#8A6508; background:#FCF0D6;}
.pr-doc .pr-not_done{color:#C0392B; background:#FBE3E0;}
.pr-red{color:#C0392B;}
.pr-tutanak{font-size:12.5px; line-height:1.6;}
.pr-tutanak .pr-head{margin-bottom:18px;}
.pr-doc .pr-tt-facts{width:100%; max-width:none; margin-bottom:22px; font-size:12px;}
.pr-tt-facts th, .pr-tt-facts td{border:1px solid #C9D1D9; padding:6px 10px;}
.pr-doc .pr-tt-facts th{width:32%; background:#F1F4F7; color:#333;}
.pr-tt-body{font-size:13px; text-align:justify; margin:0 0 50px;}
.pr-doc .pr-sign{width:100%; border-collapse:collapse; text-align:center; font-size:12px;}
.pr-doc .pr-sign th{padding:6px; border-bottom:1px solid #999; text-align:center; color:#333;}
.pr-sign td{padding:8px 6px;}
.pr-sign-line td{padding-top:60px; color:#5A6570; font-size:11px;}

/* 5S: open actions carried over from earlier tours */
.fs-carried{border-top:2px dashed var(--warn); background:color-mix(in srgb, var(--warn-bg) 35%, transparent);}
.fs-carried-head{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; padding:10px 18px 4px;}
.fs-carried-head strong{font-size:13px; color:var(--warn);}
.fs-carried-head span{font-size:12px; color:var(--muted);}
.fs-carried .fs-finding, .fs-carried .fs-eval-row{border-bottom:1px solid var(--border);}
.fs-carried-row .fs-num{color:var(--warn); font-size:16px;}
.fs-from-chip{display:inline-block; font-size:11px; font-weight:700; color:var(--warn); background:var(--warn-bg); border-radius:999px; padding:2px 9px; margin-bottom:6px; text-decoration:none; white-space:nowrap;}
.fs-from-chip:hover{background:var(--warn); color:#fff;}
.fs-carried .fs-rv-grid{padding-top:8px;}
.fs-rv-top .fs-from-chip{margin-bottom:0;}
.pr-doc .pr-carried-head td{background:#FCF0D6; color:#8A6508; font-weight:700; font-size:10.5px;}
.pr-from{font-weight:700; color:#8A6508; margin:0 0 3px;}

/* 5S: one engineer tutanak per engineer (tour / meeting box) */
.fs-et-box{border-left:4px solid var(--danger);}
.fs-et-title{font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:16px; color:var(--danger); margin-bottom:2px;}
.fs-et-box .field-hint{margin:0 0 10px;}
.fs-et-row{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:10px 0; border-top:1px solid var(--border);}
.fs-et-who strong{font-size:14px; color:var(--heading); margin-right:6px;}
.fs-et-who .fs-eng-flag{margin-top:0; vertical-align:middle;}
.fs-et-depts{font-size:12px; color:var(--muted); margin-top:4px;}
.fs-et-actions{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}

/* 5S: last-day warning at sign-in */
.fs-alert-overlay{z-index:90;}
.fs-alert{max-width:440px; text-align:center; border-top:5px solid var(--warn);}
.fs-alert-icon{width:46px; height:46px; margin:0 auto 10px; border-radius:50%; background:var(--warn-bg); color:var(--warn); font:700 26px/46px 'Space Grotesk', sans-serif;}
.fs-alert h3{margin-bottom:10px;}
.fs-alert-tour{background:var(--bg); border:1px solid var(--border); border-radius:10px; padding:12px 14px; margin-bottom:10px; text-align:left;}
.fs-alert-tour p{margin:0 0 6px; font-size:13px;}
.fs-alert-tour ul{margin:0 0 10px; padding-left:20px; font-size:13px; font-weight:600; color:var(--heading);}
.fs-alert-go{display:inline-block; text-decoration:none; padding:7px 14px; border-radius:6px; font-size:13px;}
.fs-alert-warn{font-size:12px; color:var(--danger); font-weight:600; margin:4px 0 0;}
.fs-alert .modal-actions{justify-content:center;}

/* 5S: tick a whole group of departments when planning a tour */
.fs-tg-all{cursor:pointer; justify-content:flex-start; gap:8px; margin-bottom:4px;}
.fs-tg-all input{width:auto; accent-color:var(--primary);}
.fs-small{font-size:11px; font-weight:400;}
#new-group-depts, #group-edit-depts{max-height:220px;}

/* Show / hide password (eye) button inside password boxes */
.pw-wrap{position:relative; display:block; width:100%;}
.pw-wrap > input{width:100%; padding-right:40px;}
.pw-wrap > .pw-toggle{position:absolute; top:50%; right:4px; transform:translateY(-50%); width:32px; height:30px; padding:0; margin:0; display:flex; align-items:center; justify-content:center; background:transparent; color:var(--muted); border-radius:5px; box-shadow:none;}
.pw-wrap > .pw-toggle:hover{color:var(--accent-strong); background:var(--muted-bg);}
.pw-wrap > .pw-toggle:active{transform:translateY(-50%) scale(0.94);}
.pw-wrap > .pw-toggle:focus-visible{outline:2px solid var(--primary); outline-offset:1px;}
.pw-wrap > .pw-toggle[aria-pressed="true"]{color:var(--accent-strong);}
