/* SOFRO Work — centralized application styles */
:root {
  --sofro-orange: #e58418;
  --sofro-orange-light: #f4ad50;
  --sofro-ink: #303030;
  --sofro-muted: #77736f;
  --sofro-border: #e6e1da;
  --sofro-surface: #ffffff;
  --sofro-background: #f6f5f3;
}

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; background: var(--sofro-background); }
body { font-family: Montserrat, "Segoe UI", Arial, sans-serif; }
button, input, select, textarea { font: inherit; }
a, button { transition: color .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
:focus-visible { outline: 3px solid rgba(229,132,24,.34); outline-offset: 2px; }
/* allow.php */
body.view-allow { --w-blue:#e58418; --w-orange:#f28c00; --w-ink:#303030; --w-muted:#77736f; --w-border:#e6e1da; }
  body.view-allow { min-height:100vh; margin:0; color:var(--w-ink); background:radial-gradient(circle at 96% 3%,rgba(238,155,44,.12),transparent 26rem),#f6f5f3; font-family:Montserrat,"Segoe UI",Arial,sans-serif; }
  body.view-allow .w-header { position:sticky; top:0; z-index:1030; border-bottom:1px solid #e7e2dc; background:rgba(255,255,255,.92); box-shadow:0 8px 28px rgba(70,70,70,.06); backdrop-filter:blur(16px); }
  body.view-allow .w-header-inner { width:min(100%,1680px); min-height:78px; margin:auto; padding:10px clamp(18px,3vw,48px); display:flex; align-items:center; gap:18px; }
  body.view-allow .w-back { min-height:46px; padding:0 16px; display:inline-flex; align-items:center; gap:8px; border:1px solid var(--w-border); border-radius:13px; color:#586879; background:#fff; text-decoration:none; font-weight:650; }
  body.view-allow .w-back:hover { color:var(--w-blue); background:#fff5e8; }
  body.view-allow .w-logo { width:clamp(158px,14vw,205px); height:auto; margin-left:auto; }
  body.view-allow .w-user { color:var(--w-muted); font-size:.9rem; font-weight:650; white-space:nowrap; }
  body.view-allow .w-logout { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--w-border); border-radius:13px; color:#778492; background:#fff; text-decoration:none; }
  body.view-allow .w-main { width:min(100%,1080px); margin:auto; padding:clamp(28px,4vw,58px); }
  body.view-allow .w-title-row { margin-bottom:26px; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
  body.view-allow .w-eyebrow { color:var(--w-orange); font-size:.76rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
  body.view-allow .w-title { margin:8px 0 0; font-size:clamp(1.8rem,3vw,2.6rem); font-weight:800; letter-spacing:-.035em; }
  body.view-allow .w-subtitle { margin:8px 0 0; color:var(--w-muted); }
  body.view-allow .w-add { min-height:50px; padding:0 20px; display:inline-flex; align-items:center; gap:9px; border:0; border-radius:14px; color:#fff; background:linear-gradient(135deg,#f4ad50,var(--w-blue)); box-shadow:0 11px 26px rgba(229,132,24,.24); font-weight:700; white-space:nowrap; }
  body.view-allow .w-note { margin-bottom:18px; padding:13px 16px; display:flex; align-items:flex-start; gap:10px; border:1px solid #dce8f2; border-radius:14px; color:#52687d; background:#fff6e9; font-size:.9rem; }
  body.view-allow .w-panel { overflow:hidden; border:1px solid var(--w-border); border-radius:22px; background:rgba(255,255,255,.95); box-shadow:0 15px 42px rgba(70,70,70,.065); }
  body.view-allow .w-table { width:100%; margin:0; border-collapse:collapse; }
  body.view-allow .w-table th { padding:15px 20px; color:var(--w-muted); background:#fbfaf8; font-size:.78rem; font-weight:750; text-align:left; text-transform:uppercase; letter-spacing:.055em; }
  body.view-allow .w-table td { padding:17px 20px; border-top:1px solid #eeeae5; vertical-align:middle; }
  body.view-allow .w-name { font-weight:720; }
  body.view-allow .w-ip { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-weight:700; white-space:nowrap; }
  body.view-allow .w-status { padding:5px 9px; display:inline-flex; border-radius:999px; color:#287451; background:#e8f7ef; font-size:.73rem; font-weight:800; }
  body.view-allow .w-status.off { color:#7b8793; background:#edf0f3; }
  body.view-allow .w-actions { display:flex; justify-content:flex-end; gap:8px; }
  body.view-allow .w-icon-btn { width:40px; height:40px; display:grid; place-items:center; border:1px solid var(--w-border); border-radius:12px; color:#667584; background:#fff; }
  body.view-allow .w-icon-btn:hover { color:var(--w-blue); background:#fff5e8; }
  body.view-allow .w-icon-btn.delete:hover { border-color:#f0c7c3; color:#b94b42; background:#fff2f1; }
  body.view-allow .w-empty { padding:70px 24px; color:var(--w-muted); text-align:center; }
  body.view-allow .w-empty i { display:block; margin-bottom:14px; color:#9eb7ce; font-size:2rem; }
  body.view-allow .modal-content { border:0; border-radius:20px; box-shadow:0 24px 70px rgba(70,70,70,.22); }
  body.view-allow .modal-header, body.view-allow .modal-footer { border-color:#eeeae5; }
  body.view-allow .modal-title { font-weight:760; }
  body.view-allow .form-control { min-height:52px; border-color:#ddd7cf; border-radius:13px; }
  body.view-allow .form-control:focus { border-color:#ee9b2c; box-shadow:0 0 0 4px rgba(238,155,44,.14); }
  body.view-allow .w-message { display:none; margin-bottom:18px; border-radius:13px; }
  @media(max-width:760px){ body.view-allow .w-user{display:none;} body.view-allow .w-title-row{align-items:flex-start;flex-direction:column;} }
  @media(max-width:600px){
    body.view-allow .w-header-inner{min-height:68px;padding:9px 14px;gap:10px}body.view-allow .w-main{padding:24px 14px 38px}body.view-allow .w-logo{width:138px}body.view-allow .w-back{width:42px;min-height:42px;padding:0;justify-content:center}body.view-allow .w-back span{display:none}body.view-allow .w-logout{width:40px;height:40px}
    body.view-allow .w-title-row{margin-bottom:18px;gap:16px}body.view-allow .w-title{font-size:1.8rem}body.view-allow .w-subtitle{font-size:.93rem}body.view-allow .w-add{width:100%;min-height:54px;justify-content:center}body.view-allow .w-note{font-size:.84rem}
    body.view-allow .w-panel{overflow:visible;border:0;background:transparent;box-shadow:none}body.view-allow .w-table{min-width:0}body.view-allow .w-table thead{display:none}body.view-allow .w-table tbody{display:grid;gap:12px}body.view-allow .w-table tr{padding:16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;border:1px solid var(--w-border);border-radius:17px;background:#fff;box-shadow:0 8px 24px rgba(70,70,70,.055)}body.view-allow .w-table td{padding:0;border:0}body.view-allow .w-name{grid-column:1;overflow-wrap:anywhere}body.view-allow .w-ip{grid-column:1;font-size:.9rem;overflow-wrap:anywhere;white-space:normal}body.view-allow .w-status-cell{grid-column:1}body.view-allow .w-action-cell{grid-column:2;grid-row:1/4;align-self:center}body.view-allow .w-actions{gap:7px;flex-direction:column}body.view-allow .w-icon-btn{width:44px;height:44px}
    body.view-allow .w-empty{padding:48px 18px;border:1px solid var(--w-border);border-radius:17px;background:#fff}body.view-allow .modal-dialog{margin:10px}body.view-allow .modal-content{border-radius:18px}body.view-allow .modal-body{padding:20px}body.view-allow .modal-footer .btn{min-height:48px;flex:1}
  }

/* auth-log.php */
body.view-auth-log { --w-blue:#e58418; --w-orange:#f28c00; --w-ink:#303030; --w-muted:#77736f; --w-border:#e6e1da; }
  body.view-auth-log { min-height:100vh; margin:0; color:var(--w-ink); background:radial-gradient(circle at 96% 3%,rgba(238,155,44,.12),transparent 26rem),#f6f5f3; font-family:Montserrat,"Segoe UI",Arial,sans-serif; }
  body.view-auth-log .w-header { position:sticky; top:0; z-index:1030; border-bottom:1px solid #e7e2dc; background:rgba(255,255,255,.92); box-shadow:0 8px 28px rgba(70,70,70,.06); backdrop-filter:blur(16px); }
  body.view-auth-log .w-header-inner { width:min(100%,1680px); min-height:78px; margin:auto; padding:10px clamp(18px,3vw,48px); display:flex; align-items:center; gap:18px; }
  body.view-auth-log .w-back { min-height:46px; padding:0 16px; display:inline-flex; align-items:center; gap:8px; border:1px solid var(--w-border); border-radius:13px; color:#586879; background:#fff; text-decoration:none; font-weight:650; }
  body.view-auth-log .w-back:hover { color:var(--w-blue); background:#fff5e8; }
  body.view-auth-log .w-logo { width:clamp(158px,14vw,205px); height:auto; margin-left:auto; }
  body.view-auth-log .w-user { color:var(--w-muted); font-size:.9rem; font-weight:650; white-space:nowrap; }
  body.view-auth-log .w-logout { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--w-border); border-radius:13px; color:#778492; background:#fff; text-decoration:none; }
  body.view-auth-log .w-main { width:min(100%,1480px); margin:auto; padding:clamp(28px,4vw,58px); }
  body.view-auth-log .w-title-row { margin-bottom:24px; display:flex; align-items:flex-end; justify-content:space-between; gap:18px; }
  body.view-auth-log .w-eyebrow { color:var(--w-orange); font-size:.76rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
  body.view-auth-log .w-title { margin:8px 0 0; font-size:clamp(1.8rem,3vw,2.6rem); font-weight:800; letter-spacing:-.035em; }
  body.view-auth-log .w-subtitle { margin:8px 0 0; color:var(--w-muted); }
  body.view-auth-log .filter-panel { margin-bottom:20px; padding:18px; border:1px solid var(--w-border); border-radius:19px; background:rgba(255,255,255,.96); box-shadow:0 10px 30px rgba(70,70,70,.05); }
  body.view-auth-log .filter-grid { display:grid; grid-template-columns:minmax(170px,1fr) minmax(220px,1.35fr) minmax(155px,.75fr) minmax(155px,.75fr) auto; align-items:end; gap:14px; }
  body.view-auth-log .form-label { margin-bottom:7px; color:#526170; font-size:.82rem; font-weight:750; }
  body.view-auth-log .form-control, body.view-auth-log .form-select { min-height:48px; border-color:#ddd7cf; border-radius:12px; }
  body.view-auth-log .form-control:focus, body.view-auth-log .form-select:focus { border-color:#ee9b2c; box-shadow:0 0 0 4px rgba(238,155,44,.12); }
  body.view-auth-log .filter-actions { display:flex; gap:8px; }
  body.view-auth-log .filter-button { min-height:48px; padding:0 18px; display:inline-flex; align-items:center; justify-content:center; gap:7px; border:0; border-radius:12px; color:#fff; background:linear-gradient(135deg,#f4ad50,var(--w-blue)); font-weight:700; }
  body.view-auth-log .filter-clear { width:48px; min-height:48px; display:grid; place-items:center; border:1px solid var(--w-border); border-radius:12px; color:#778492; background:#fff; text-decoration:none; }
  body.view-auth-log .result-meta { margin:0 0 12px; color:var(--w-muted); font-size:.88rem; }
  body.view-auth-log .log-clear { width:48px; min-height:48px; padding:0; display:grid; place-items:center; border:1px solid #d94b43; border-radius:13px; color:#fff; background:#d94b43; font-size:1.15rem; box-shadow:0 8px 20px rgba(185,59,52,.18); }
  body.view-auth-log .log-clear:hover { border-color:#b93630; background:#b93630; }
  body.view-auth-log .cleared-message { margin-bottom:16px; border:0; border-radius:13px; }
  body.view-auth-log .w-panel { overflow:hidden; border:1px solid var(--w-border); border-radius:20px; background:rgba(255,255,255,.96); box-shadow:0 15px 42px rgba(70,70,70,.065); }
  body.view-auth-log .w-table { width:100%; margin:0; border-collapse:collapse; }
  body.view-auth-log .w-table th { padding:14px 17px; color:var(--w-muted); background:#fbfaf8; font-size:.75rem; font-weight:750; text-align:left; text-transform:uppercase; letter-spacing:.045em; white-space:nowrap; }
  body.view-auth-log .w-table td { padding:15px 17px; border-top:1px solid #eeeae5; vertical-align:middle; }
  body.view-auth-log .worker-name { font-weight:720; }
  body.view-auth-log .date-main { font-weight:680; white-space:nowrap; }
  body.view-auth-log .date-sub { margin-top:3px; color:var(--w-muted); font-size:.77rem; }
  body.view-auth-log .ip-value { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-weight:650; white-space:nowrap; }
  body.view-auth-log .device { display:inline-flex; align-items:center; gap:7px; color:#52687d; font-size:.88rem; }
  body.view-auth-log .session-open { padding:5px 9px; display:inline-flex; border-radius:999px; color:#287451; background:#e8f7ef; font-size:.73rem; font-weight:800; }
  body.view-auth-log .user-agent { max-width:320px; overflow:hidden; color:var(--w-muted); font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }
  body.view-auth-log .w-empty { padding:70px 24px; color:var(--w-muted); text-align:center; }
  body.view-auth-log .w-empty i { display:block; margin-bottom:14px; color:#9eb7ce; font-size:2rem; }
  body.view-auth-log .pagination-wrap { margin-top:18px; display:flex; align-items:center; justify-content:center; gap:10px; }
  body.view-auth-log .page-link-btn { min-width:44px; min-height:44px; padding:0 14px; display:inline-flex; align-items:center; justify-content:center; gap:7px; border:1px solid var(--w-border); border-radius:12px; color:#52687d; background:#fff; text-decoration:none; font-weight:680; }
  body.view-auth-log .page-current { color:var(--w-muted); font-size:.88rem; }
  @media(max-width:1200px){ body.view-auth-log .filter-grid{grid-template-columns:1fr 1.4fr 1fr 1fr}body.view-auth-log .filter-actions{grid-column:1/-1}body.view-auth-log .filter-button{flex:1}body.view-auth-log .w-panel{overflow-x:auto}body.view-auth-log .w-table{min-width:1050px} }
  @media(max-width:600px){
    body.view-auth-log .w-header-inner{min-height:68px;padding:9px 14px;gap:10px}body.view-auth-log .w-main{padding:24px 14px 38px}body.view-auth-log .w-logo{width:138px}body.view-auth-log .w-back{width:42px;min-height:42px;padding:0;justify-content:center}body.view-auth-log .w-back span{display:none}body.view-auth-log .w-logout{width:40px;height:40px}body.view-auth-log .w-user{display:none}
    body.view-auth-log .w-title-row{margin-bottom:18px;align-items:flex-end;gap:10px}body.view-auth-log .w-title{font-size:1.8rem}body.view-auth-log .w-subtitle{font-size:.93rem}body.view-auth-log .log-clear{width:48px;min-height:48px;flex:0 0 48px}body.view-auth-log .filter-panel{padding:15px;border-radius:17px}body.view-auth-log .filter-grid{display:grid;grid-template-columns:1fr;gap:12px}body.view-auth-log .filter-actions{grid-column:auto}body.view-auth-log .filter-button{min-height:52px}body.view-auth-log .filter-clear{width:52px;min-height:52px}
    body.view-auth-log .w-panel{overflow:visible;border:0;background:transparent;box-shadow:none}body.view-auth-log .w-table{min-width:0}body.view-auth-log .w-table thead{display:none}body.view-auth-log .w-table tbody{display:grid;gap:12px}body.view-auth-log .w-table tr{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:13px 16px;border:1px solid var(--w-border);border-radius:17px;background:#fff;box-shadow:0 8px 24px rgba(70,70,70,.055)}body.view-auth-log .w-table td{padding:0;border:0}body.view-auth-log .w-table td::before{margin-bottom:4px;display:block;color:#8a97a4;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;content:attr(data-label)}body.view-auth-log .worker-cell{grid-column:1/-1}body.view-auth-log .ip-cell{grid-column:1/-1}body.view-auth-log .agent-cell{grid-column:1/-1}body.view-auth-log .user-agent{max-width:100%;white-space:normal;overflow-wrap:anywhere}body.view-auth-log .date-main{white-space:normal}body.view-auth-log .w-empty{padding:48px 18px;border:1px solid var(--w-border);border-radius:17px;background:#fff}body.view-auth-log .pagination-wrap{flex-wrap:wrap}body.view-auth-log .page-link-btn span{display:none}
  }

/* control.php */
body.view-control { --c-blue:#e58418; --c-orange:#f28c00; --c-ink:#303030; --c-muted:#77736f; --c-border:#e6e1da; }
  body.view-control { min-height:100vh; margin:0; color:var(--c-ink); background:radial-gradient(circle at 96% 3%,rgba(238,155,44,.12),transparent 26rem),#f6f5f3; font-family:Montserrat,"Segoe UI",Arial,sans-serif; }
  body.view-control .control-header { position:sticky; top:0; z-index:1030; border-bottom:1px solid #e7e2dc; background:rgba(255,255,255,.92); box-shadow:0 8px 28px rgba(70,70,70,.06); backdrop-filter:blur(16px); }
  body.view-control .control-header-inner { width:min(100%,1680px); min-height:78px; margin:auto; padding:10px clamp(18px,3vw,48px); display:flex; align-items:center; gap:18px; }
  body.view-control .control-back { min-height:46px; padding:0 16px; display:inline-flex; align-items:center; gap:8px; border:1px solid var(--c-border); border-radius:13px; color:#586879; background:#fff; text-decoration:none; font-weight:650; }
  body.view-control .control-back:hover { color:var(--c-blue); background:#fff5e8; }
  body.view-control .control-logo { width:clamp(158px,14vw,205px); height:auto; margin-left:auto; }
  body.view-control .control-user { color:var(--c-muted); font-size:.9rem; font-weight:650; white-space:nowrap; }
  body.view-control .control-logout { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--c-border); border-radius:13px; color:#778492; background:#fff; text-decoration:none; }
  body.view-control .control-main { width:min(100%,1500px); margin:auto; padding:clamp(28px,4vw,58px); }
  body.view-control .control-eyebrow { color:var(--c-orange); font-size:.76rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
  body.view-control .control-title { margin:8px 0 0; font-size:clamp(1.8rem,3vw,2.6rem); font-weight:800; letter-spacing:-.035em; }
  body.view-control .control-subtitle { max-width:680px; margin:10px 0 28px; color:var(--c-muted); line-height:1.55; }
  body.view-control .control-group + .control-group { margin-top:28px; }
  body.view-control .control-group-title { margin:0 0 12px; display:flex; align-items:center; gap:10px; color:#566777; font-size:.8rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
  body.view-control .control-group-title::after { height:1px; flex:1; background:#e4ded6; content:""; }
  body.view-control .control-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
  body.view-control .control-card { min-height:116px; padding:17px; display:grid; grid-template-columns:46px minmax(0,1fr) 24px; align-items:center; gap:14px; border:1px solid var(--c-border); border-radius:18px; color:var(--c-ink); background:rgba(255,255,255,.94); box-shadow:0 10px 28px rgba(70,70,70,.055); text-decoration:none; transition:transform .2s,box-shadow .2s,border-color .2s; }
  body.view-control .control-card:hover { border-color:#bed1e2; color:var(--c-ink); box-shadow:0 20px 46px rgba(70,70,70,.12); transform:translateY(-3px); }
  body.view-control .control-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; color:var(--c-blue); background:#fff5e8; font-size:1.18rem; }
  body.view-control .control-card.orange .control-icon { color:#c96f00; background:#fff3e3; }
  body.view-control .control-card-content { min-width:0; }
  body.view-control .control-card-title { margin:0 0 5px; font-size:1rem; font-weight:770; }
  body.view-control .control-card-text { margin:0; color:var(--c-muted); font-size:.82rem; line-height:1.4; }
  body.view-control .control-arrow { color:var(--c-blue); font-size:1rem; text-align:right; }
  @media(max-width:1000px){ body.view-control .control-grid{grid-template-columns:repeat(2,minmax(0,1fr));} body.view-control .control-user{display:none;} }
  @media(max-width:650px){ body.view-control .control-header-inner, body.view-control .control-main{padding-left:14px;padding-right:14px;} body.view-control .control-main{padding-top:24px;padding-bottom:38px}body.view-control .control-subtitle{margin-bottom:24px}body.view-control .control-group + .control-group{margin-top:24px}body.view-control .control-grid{grid-template-columns:1fr;gap:10px}body.view-control .control-card{min-height:102px;padding:14px;grid-template-columns:44px minmax(0,1fr) 20px;gap:12px;border-radius:16px}body.view-control .control-icon{width:44px;height:44px}body.view-control .control-logo{width:145px}body.view-control .control-back span{display:none;} }

/* events.php */
body.view-events { --w-blue:#e58418; --w-orange:#f28c00; --w-ink:#303030; --w-muted:#77736f; --w-border:#e6e1da; }
  body.view-events { min-height:100vh; margin:0; color:var(--w-ink); background:radial-gradient(circle at 96% 3%,rgba(238,155,44,.12),transparent 26rem),#f6f5f3; font-family:Montserrat,"Segoe UI",Arial,sans-serif; }
  body.view-events .w-header { position:sticky; top:0; z-index:1030; border-bottom:1px solid #e7e2dc; background:rgba(255,255,255,.92); box-shadow:0 8px 28px rgba(70,70,70,.06); backdrop-filter:blur(16px); }
  body.view-events .w-header-inner { width:min(100%,1680px); min-height:78px; margin:auto; padding:10px clamp(18px,3vw,48px); display:flex; align-items:center; gap:18px; }
  body.view-events .w-back { min-height:46px; padding:0 16px; display:inline-flex; align-items:center; gap:8px; border:1px solid var(--w-border); border-radius:13px; color:#586879; background:#fff; text-decoration:none; font-weight:650; }
  body.view-events .w-logo { width:clamp(158px,14vw,205px); height:auto; margin-left:auto; }body.view-events .w-user{color:var(--w-muted);font-size:.9rem;font-weight:650;white-space:nowrap}body.view-events .w-logout{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--w-border);border-radius:13px;color:#778492;background:#fff;text-decoration:none}
  body.view-events .w-main { width:min(100%,1500px); margin:auto; padding:clamp(28px,4vw,58px); }body.view-events .w-eyebrow{color:var(--w-orange);font-size:.76rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}body.view-events .w-title{margin:8px 0 0;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:800;letter-spacing:-.035em}body.view-events .w-subtitle{margin:8px 0 24px;color:var(--w-muted)}
  body.view-events .filter-panel{margin-bottom:20px;padding:18px;border:1px solid var(--w-border);border-radius:19px;background:rgba(255,255,255,.96);box-shadow:0 10px 30px rgba(70,70,70,.05)}body.view-events .filter-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr auto;align-items:end;gap:14px}body.view-events .form-label{margin-bottom:7px;color:#526170;font-size:.82rem;font-weight:750}body.view-events .form-control, body.view-events .form-select{min-height:48px;border-color:#ddd7cf;border-radius:12px}body.view-events .filter-actions{display:flex;gap:8px}body.view-events .filter-button{min-height:48px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:12px;color:#fff;background:linear-gradient(135deg,#f4ad50,var(--w-blue));font-weight:700}body.view-events .filter-clear{width:48px;min-height:48px;display:grid;place-items:center;border:1px solid var(--w-border);border-radius:12px;color:#778492;background:#fff;text-decoration:none}
  body.view-events .result-meta{margin:0 0 11px;color:var(--w-muted);font-size:.88rem}body.view-events .w-panel{overflow:hidden;border:1px solid var(--w-border);border-radius:20px;background:rgba(255,255,255,.96);box-shadow:0 15px 42px rgba(70,70,70,.065)}body.view-events .w-table{width:100%;margin:0;border-collapse:collapse}body.view-events .w-table th{padding:14px 17px;color:var(--w-muted);background:#fbfaf8;font-size:.75rem;font-weight:750;text-align:left;text-transform:uppercase;letter-spacing:.045em;white-space:nowrap}body.view-events .w-table td{padding:15px 17px;border-top:1px solid #eeeae5;vertical-align:top}body.view-events .event-time{font-weight:680;white-space:nowrap}body.view-events .actor-name{font-weight:720}body.view-events .actor-ip{margin-top:3px;color:var(--w-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.76rem}body.view-events .event-badge{padding:5px 9px;display:inline-flex;border-radius:999px;font-size:.72rem;font-weight:800;white-space:nowrap}body.view-events .event-create{color:#287451;background:#e8f7ef}body.view-events .event-update{color:#e58418;background:#fff2df}body.view-events .event-delete, body.view-events .event-block{color:#a4453e;background:#fff0ee}body.view-events .event-unblock{color:#287451;background:#e8f7ef}body.view-events .event-clear{color:#8a5a16;background:#fff2d9}body.view-events .event-description{font-weight:670}body.view-events .event-entity{margin-top:4px;color:var(--w-muted);font-size:.78rem}body.view-events .event-details{margin-top:8px}body.view-events .event-details summary{cursor:pointer;color:var(--w-blue);font-size:.8rem;font-weight:700}body.view-events .event-details pre{max-width:520px;margin:8px 0 0;padding:10px;overflow:auto;border-radius:10px;color:#526170;background:#f4f7f9;font-size:.72rem;white-space:pre-wrap;overflow-wrap:anywhere}body.view-events .w-empty{padding:70px 24px;color:var(--w-muted);text-align:center}body.view-events .pagination-wrap{margin-top:18px;display:flex;align-items:center;justify-content:center;gap:10px}body.view-events .page-link-btn{min-width:44px;min-height:44px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--w-border);border-radius:12px;color:#52687d;background:#fff;text-decoration:none;font-weight:680}body.view-events .page-current{color:var(--w-muted);font-size:.88rem}
  @media(max-width:1150px){body.view-events .filter-grid{grid-template-columns:1.3fr 1fr 1fr 1fr}body.view-events .filter-actions{grid-column:1/-1}body.view-events .filter-button{flex:1}body.view-events .w-panel{overflow-x:auto}body.view-events .w-table{min-width:1050px}}
  @media(max-width:600px){body.view-events .w-header-inner{min-height:68px;padding:9px 14px;gap:10px}body.view-events .w-logo{width:138px}body.view-events .w-back{width:42px;min-height:42px;padding:0;justify-content:center}body.view-events .w-back span{display:none}body.view-events .w-logout{width:40px;height:40px}body.view-events .w-user{display:none}body.view-events .w-main{padding:24px 14px 38px}body.view-events .w-title{font-size:1.8rem}body.view-events .w-subtitle{margin-bottom:18px;font-size:.93rem}body.view-events .filter-panel{padding:15px;border-radius:17px}body.view-events .filter-grid{grid-template-columns:1fr;gap:12px}body.view-events .filter-actions{grid-column:auto}body.view-events .filter-button{min-height:52px}body.view-events .filter-clear{width:52px;min-height:52px}body.view-events .w-panel{overflow:visible;border:0;background:transparent;box-shadow:none}body.view-events .w-table{min-width:0}body.view-events .w-table thead{display:none}body.view-events .w-table tbody{display:grid;gap:12px}body.view-events .w-table tr{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:13px 16px;border:1px solid var(--w-border);border-radius:17px;background:#fff;box-shadow:0 8px 24px rgba(70,70,70,.055)}body.view-events .w-table td{padding:0;border:0}body.view-events .w-table td::before{margin-bottom:4px;display:block;color:#8a97a4;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;content:attr(data-label)}body.view-events .event-main-cell{grid-column:1/-1}body.view-events .details-cell{grid-column:1/-1}body.view-events .event-details pre{max-width:100%}body.view-events .pagination-wrap{flex-wrap:wrap}body.view-events .page-link-btn span{display:none}}

/* login.php */
body.view-login {
      --orange: #f28c00;
      --blue: #ee9b2c;
      --blue-dark: #e58418;
      --ink: #333;
    }

    body.view-login * { box-sizing: border-box; }
    html, body.view-login { min-height: 100%; }

    body.view-login {
      min-height: 100vh;
      min-height: 100dvh;
      margin: 0;
      display: grid;
      place-items: center;
      overflow-x: hidden;
      padding: clamp(20px, 4vw, 56px);
      color: var(--ink);
      background:
        linear-gradient(rgba(238,155,44,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(238,155,44,.035) 1px, transparent 1px),
        radial-gradient(circle at 8% 5%, rgba(238,155,44,.20), transparent 30%),
        radial-gradient(circle at 94% 92%, rgba(242,140,0,.14), transparent 26%),
        linear-gradient(145deg, #fbfdff 0%, #edf3f8 100%);
      background-size: 34px 34px, 34px 34px, auto, auto, auto;
      font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    }

    body.view-login::before, body.view-login::after {
      position: fixed;
      content: "";
      pointer-events: none;
      z-index: 0;
    }

    body.view-login::before {
      top: -18vw;
      right: -10vw;
      width: 42vw;
      height: 42vw;
      border: min(6vw, 90px) solid rgba(238,155,44,.08);
      border-radius: 30%;
      transform: rotate(28deg);
    }

    body.view-login::after {
      bottom: -130px;
      left: -100px;
      width: 280px;
      height: 280px;
      border: 44px solid rgba(242,140,0,.08);
      border-radius: 50%;
    }

    body.view-login .login-shell {
      position: relative;
      z-index: 1;
      width: min(100%, 590px);
    }

    body.view-login .login-card {
      position: relative;
      overflow: hidden;
      padding: clamp(30px, 5vw, 56px);
      border: 1px solid rgba(255,255,255,.82);
      border-radius: 30px;
      background: rgba(255,255,255,.88);
      box-shadow: 0 30px 80px rgba(70,70,70,.16), 0 2px 10px rgba(70,70,70,.06);
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
    }

    body.view-login .login-card::before {
      position: absolute;
      top: 0;
      left: clamp(30px, 8%, 54px);
      width: 86px;
      height: 4px;
      border-radius: 0 0 6px 6px;
      background: var(--orange);
      content: "";
    }

    body.view-login .brand {
      display: block;
      width: min(100%, 470px);
      height: auto;
      margin: 0 auto clamp(30px, 5vh, 46px);
    }

    body.view-login .form-label {
      margin-bottom: 9px;
      color: #3c4650;
      font-size: .93rem;
      font-weight: 650;
    }

    body.view-login .form-control {
      min-height: 56px;
      padding: 13px 17px;
      border: 1px solid #ddd7cf;
      border-radius: 14px;
      color: #303030;
      background: #fbfaf8;
      font-size: 1.06rem;
      transition: border-color .2s, box-shadow .2s, background-color .2s, transform .2s;
    }

    body.view-login .form-control:hover { border-color: #b8c7d5; background: #fff; }
    body.view-login .form-control:focus {
      border-color: var(--blue);
      background: #fff;
      box-shadow: 0 0 0 4px rgba(238,155,44,.14), 0 8px 24px rgba(238,155,44,.08);
      transform: translateY(-1px);
    }

    body.view-login .password-wrap { position: relative; }
    body.view-login .password-wrap .form-control { padding-right: 88px; }

    body.view-login .password-toggle {
      position: absolute;
      top: 50%;
      right: 8px;
      min-width: 72px;
      min-height: 42px;
      transform: translateY(-50%);
      border: 0;
      border-radius: 10px;
      color: #667483;
      background: transparent;
      font-size: .86rem;
      font-weight: 650;
    }

    body.view-login .password-toggle:hover, body.view-login .password-toggle:focus-visible { color: var(--ink); background: #edf2f6; }

    body.view-login .login-submit {
      min-height: 60px;
      border: 0;
      border-radius: 14px;
      color: #fff;
      background: linear-gradient(135deg, #f4ad50 0%, var(--blue-dark) 100%);
      box-shadow: 0 12px 28px rgba(229,132,24,.26);
      font-size: 1.08rem;
      font-weight: 750;
      letter-spacing: .02em;
      transition: transform .2s, box-shadow .2s, filter .2s;
    }

    body.view-login .login-submit:hover, body.view-login .login-submit:focus-visible {
      color: #fff;
      background: linear-gradient(135deg, #568cc0 0%, #365f89 100%);
      box-shadow: 0 16px 34px rgba(229,132,24,.32);
      filter: saturate(1.08);
      transform: translateY(-2px);
    }

    body.view-login .login-submit:disabled { cursor: wait; opacity: .72; }
    body.view-login .login-alert {
      display: none;
      margin: 0 0 18px;
      border: 0;
      border-radius: 14px;
      color: #a43e35;
      background: #fff0ee;
    }

    @media (min-width: 1024px) and (pointer: coarse) {
      body.view-login .login-shell { width: min(62vw, 680px); }
      body.view-login .login-card { padding: 56px 64px; }
      body.view-login .form-control, body.view-login .login-submit { min-height: 64px; font-size: 1.18rem; }
    }

    @media (min-width: 1600px) {
      body.view-login .login-shell { width: 640px; }
      body.view-login .login-card { padding: 58px 68px; }
    }

    @media (max-width: 575.98px) {
      body.view-login { padding: 14px; }
      body.view-login .login-card { padding: 30px 22px; border-radius: 22px; }
      body.view-login .brand { margin-bottom: 28px; }
    }

    @media (prefers-reduced-motion: reduce) {
      body.view-login *, body.view-login *::before, body.view-login *::after { transition: none !important; }
    }

/* main.php */
body.view-main {
    --work-blue: #e58418;
    --work-blue-light: #fff5e8;
    --work-orange: #f28c00;
    --work-ink: #303030;
    --work-muted: #77736f;
    --work-border: #e6e1da;
    --work-bg: #f6f5f3;
  }

  body.view-main {
    min-height: 100vh;
    margin: 0;
    color: var(--work-ink);
    background:
      radial-gradient(circle at 96% 3%, rgba(238,155,44,.11), transparent 24rem),
      var(--work-bg);
    font-family: Montserrat, "Segoe UI", Arial, sans-serif;
  }

  body.view-main .work-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    min-height: 78px;
    border-bottom: 1px solid rgba(217,226,235,.9);
    background: rgba(255,255,255,.92);
    box-shadow: 0 8px 28px rgba(70,70,70,.06);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }

  body.view-main .work-header-inner {
    width: min(100%, 1680px);
    min-height: 78px;
    margin: 0 auto;
    padding: 10px clamp(18px, 3vw, 48px);
    display: flex;
    align-items: center;
    gap: clamp(18px, 3vw, 42px);
  }

  body.view-main .work-nav {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: 7px;
  }

  body.view-main .work-nav-link {
    min-height: 48px;
    padding: 0 17px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    border-radius: 13px;
    color: #586879;
    text-decoration: none;
    font-size: .95rem;
    font-weight: 650;
    white-space: nowrap;
    transition: color .2s, background-color .2s, transform .2s;
  }

  body.view-main .work-nav-link:hover { color: var(--work-blue); background: var(--work-blue-light); transform: translateY(-1px); }
  body.view-main .work-nav-link.active { color: #fff; background: linear-gradient(135deg, #f4ad50, var(--work-blue)); box-shadow: 0 9px 22px rgba(229,132,24,.22); }
  body.view-main .work-nav-link i { font-size: 1.08rem; }

  body.view-main .work-header-logo {
    flex: 0 0 auto;
    width: clamp(158px, 14vw, 205px);
    height: auto;
    display: block;
  }

  body.view-main .work-user {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
  }

  body.view-main .work-avatar {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid #d7e3ee;
    border-radius: 14px;
    color: var(--work-blue);
    background: var(--work-blue-light);
    font-size: .84rem;
    font-weight: 800;
  }

  body.view-main .work-user-name { max-width: 180px; overflow: hidden; text-overflow: ellipsis; font-size: .9rem; font-weight: 700; white-space: nowrap; }
  body.view-main .work-user-role { margin-top: 2px; color: var(--work-muted); font-size: .75rem; }

  body.view-main .work-logout {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid var(--work-border);
    border-radius: 13px;
    color: #778492;
    background: #fff;
    text-decoration: none;
    transition: color .2s, border-color .2s, background-color .2s;
  }

  body.view-main .work-logout:hover { border-color: #f1c9c5; color: #b94b42; background: #fff3f2; }

  body.view-main .work-main {
    width: min(100%, 1680px);
    margin: 0 auto;
    padding: clamp(24px, 3vw, 48px);
  }

  body.view-main .work-title-row { margin-bottom: 26px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
  body.view-main .work-eyebrow { margin-bottom: 7px; color: var(--work-orange); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
  body.view-main .work-title { margin: 0; font-size: clamp(1.65rem, 2.4vw, 2.35rem); font-weight: 780; letter-spacing: -.03em; }
  body.view-main .work-subtitle { margin: 8px 0 0; color: var(--work-muted); font-size: .96rem; }

  body.view-main .work-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 20px;
  }

  body.view-main .summary-card {
    min-height: 108px;
    padding: 20px;
    border: 1px solid var(--work-border);
    border-radius: 20px;
    background: rgba(255,255,255,.9);
    box-shadow: 0 10px 32px rgba(70,70,70,.055);
  }

  body.view-main .summary-label { color: var(--work-muted); font-size: .82rem; font-weight: 650; }
  body.view-main .summary-value { margin-top: 7px; font-size: 1.65rem; font-weight: 800; }
  body.view-main .summary-value.orange { color: var(--work-orange); }
  body.view-main .summary-value.blue { color: var(--work-blue); }
  body.view-main .summary-value.green { color: #3c8c69; }

  body.view-main .task-panel {
    min-height: 320px;
    padding: clamp(24px, 4vw, 50px);
    display: grid;
    place-items: center;
    border: 1px solid var(--work-border);
    border-radius: 24px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 16px 44px rgba(70,70,70,.065);
    text-align: center;
  }

  body.view-main .empty-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto 18px;
    display: grid;
    place-items: center;
    border-radius: 23px;
    color: var(--work-blue);
    background: var(--work-blue-light);
    font-size: 1.8rem;
  }

  body.view-main .empty-title { margin: 0; font-size: 1.15rem; font-weight: 750; }
  body.view-main .empty-text { max-width: 430px; margin: 9px auto 0; color: var(--work-muted); font-size: .92rem; line-height: 1.55; }

  @media (max-width: 1100px) {
    body.view-main .work-header-inner { gap: 15px; }
    body.view-main .work-user-meta { display: none; }
    body.view-main .work-nav-link { padding: 0 13px; }
    body.view-main .work-header-logo { width: 158px; }
  }

  @media (max-width: 800px) {
    body.view-main .work-header-inner { align-items: stretch; flex-wrap: wrap; }
    body.view-main .work-user { margin-left: auto; }
    body.view-main .work-header-logo { order: 1; }
    body.view-main .work-user { order: 2; }
    body.view-main .work-nav { order: 3; width: 100%; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
    body.view-main .work-nav::-webkit-scrollbar { display: none; }
    body.view-main .work-summary { grid-template-columns: 1fr; }
  }

  @media (max-width: 520px) {
    body.view-main .work-header-inner, body.view-main .work-main { padding-left: 14px; padding-right: 14px; }
    body.view-main .work-avatar { display: none; }
    body.view-main .work-header-logo { width: 145px; }
    body.view-main .work-nav-link { min-height: 44px; font-size: .88rem; }
    body.view-main .work-title-row { align-items: flex-start; flex-direction: column; }
  }

/* user-edit.php */
body.view-user-edit { --w-blue:#e58418; --w-orange:#f28c00; --w-ink:#303030; --w-muted:#77736f; --w-border:#e6e1da; }
  body.view-user-edit { min-height:100vh; margin:0; color:var(--w-ink); background:radial-gradient(circle at 96% 3%,rgba(238,155,44,.12),transparent 26rem),#f6f5f3; font-family:Montserrat,"Segoe UI",Arial,sans-serif; }
  body.view-user-edit .w-header { position:sticky; top:0; z-index:1030; border-bottom:1px solid #e7e2dc; background:rgba(255,255,255,.92); box-shadow:0 8px 28px rgba(70,70,70,.06); backdrop-filter:blur(16px); }
  body.view-user-edit .w-header-inner { width:min(100%,1680px); min-height:78px; margin:auto; padding:10px clamp(18px,3vw,48px); display:flex; align-items:center; gap:18px; }
  body.view-user-edit .w-back { min-height:46px; padding:0 16px; display:inline-flex; align-items:center; gap:8px; border:1px solid var(--w-border); border-radius:13px; color:#586879; background:#fff; text-decoration:none; font-weight:650; }
  body.view-user-edit .w-back:hover { color:var(--w-blue); background:#fff5e8; }
  body.view-user-edit .w-logo { width:clamp(158px,14vw,205px); height:auto; margin-left:auto; }
  body.view-user-edit .w-user { color:var(--w-muted); font-size:.9rem; font-weight:650; white-space:nowrap; }
  body.view-user-edit .w-logout { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--w-border); border-radius:13px; color:#778492; background:#fff; text-decoration:none; }
  body.view-user-edit .edit-main { width:min(100%,1120px); margin:auto; padding:clamp(26px,4vw,54px); }
  body.view-user-edit .edit-heading { margin-bottom:22px; }
  body.view-user-edit .edit-eyebrow { color:var(--w-orange); font-size:.76rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
  body.view-user-edit .edit-title { margin:8px 0 0; font-size:clamp(1.75rem,3vw,2.5rem); font-weight:800; letter-spacing:-.035em; }
  body.view-user-edit .edit-subtitle { margin:8px 0 0; color:var(--w-muted); }
  body.view-user-edit .edit-card { overflow:hidden; border:1px solid var(--w-border); border-radius:22px; background:rgba(255,255,255,.97); box-shadow:0 16px 48px rgba(70,70,70,.075); }
  body.view-user-edit .edit-body { padding:clamp(20px,3vw,34px); }
  body.view-user-edit .form-section + .form-section { margin-top:30px; padding-top:28px; border-top:1px solid #eeeae5; }
  body.view-user-edit .section-title { margin:0 0 5px; font-size:1.08rem; font-weight:800; }
  body.view-user-edit .section-text { margin:0 0 18px; color:var(--w-muted); font-size:.88rem; }
  body.view-user-edit .form-label { margin-bottom:7px; color:#526170; font-size:.84rem; font-weight:750; }
  body.view-user-edit .form-control, body.view-user-edit .form-select { min-height:52px; border-color:#ddd7cf; border-radius:13px; }
  body.view-user-edit .form-control:focus, body.view-user-edit .form-select:focus { border-color:#ee9b2c; box-shadow:0 0 0 4px rgba(238,155,44,.12); }
  body.view-user-edit .assignment-editor { display:grid; gap:11px; }
  body.view-user-edit .assignment-row { padding:13px; display:grid; grid-template-columns:1fr 1fr 46px; align-items:end; gap:11px; border:1px solid var(--w-border); border-radius:16px; background:#fbfaf8; }
  body.view-user-edit .assignment-remove { width:46px; height:52px; display:grid; place-items:center; border:1px solid #efcfcc; border-radius:12px; color:#b94b42; background:#fff; }
  body.view-user-edit .assignment-add { min-height:46px; margin-top:11px; padding:0 15px; display:inline-flex; align-items:center; gap:8px; border:1px dashed #aac1d7; border-radius:12px; color:var(--w-blue); background:#fff8ef; font-weight:700; }
  body.view-user-edit .edit-error { display:none; margin:22px 0 0; border-radius:13px; }
  body.view-user-edit .edit-actions { padding:17px clamp(20px,3vw,34px); display:flex; justify-content:flex-end; gap:10px; border-top:1px solid #eeeae5; background:#fcfbf9; }
  body.view-user-edit .edit-actions .btn { min-height:50px; padding-left:24px; padding-right:24px; display:inline-flex; align-items:center; justify-content:center; border-radius:12px; font-weight:700; }
  body.view-user-edit .save-button { border:0; color:#fff; background:linear-gradient(135deg,#f4ad50,var(--w-blue)); box-shadow:0 9px 22px rgba(229,132,24,.2); }
  @media(max-width:600px){
    body.view-user-edit .w-header-inner{min-height:68px;padding:9px 14px;gap:10px}body.view-user-edit .w-logo{width:138px}body.view-user-edit .w-back{width:42px;min-height:42px;padding:0;justify-content:center}body.view-user-edit .w-back span{display:none}body.view-user-edit .w-logout{width:40px;height:40px}body.view-user-edit .w-user{display:none}
    body.view-user-edit .edit-main{padding:23px 0 96px}body.view-user-edit .edit-heading{padding:0 14px;margin-bottom:18px}body.view-user-edit .edit-title{font-size:1.72rem}body.view-user-edit .edit-subtitle{font-size:.92rem}body.view-user-edit .edit-card{border-right:0;border-left:0;border-radius:0;box-shadow:none}body.view-user-edit .edit-body{padding:20px 14px}body.view-user-edit .form-section + .form-section{margin-top:25px;padding-top:24px}
    body.view-user-edit .assignment-row{grid-template-columns:minmax(0,1fr) 46px;padding:12px}body.view-user-edit .assignment-workshop, body.view-user-edit .assignment-workplace{grid-column:1}body.view-user-edit .assignment-remove{grid-column:2;grid-row:1/3;align-self:center}body.view-user-edit .assignment-add{width:100%;min-height:52px;justify-content:center}
    body.view-user-edit .edit-actions{position:fixed;right:0;bottom:0;left:0;z-index:1020;padding:10px 14px;gap:8px;box-shadow:0 -8px 26px rgba(70,70,70,.1)}body.view-user-edit .edit-actions .btn{min-height:52px;flex:1;padding:0 12px}
  }

/* users.php */
body.view-users { --w-blue:#e58418; --w-orange:#f28c00; --w-ink:#303030; --w-muted:#77736f; --w-border:#e6e1da; }
  body.view-users { min-height:100vh; margin:0; color:var(--w-ink); background:radial-gradient(circle at 96% 3%,rgba(238,155,44,.12),transparent 26rem),#f6f5f3; font-family:Montserrat,"Segoe UI",Arial,sans-serif; }
  body.view-users .w-header { position:sticky; top:0; z-index:1030; border-bottom:1px solid #e7e2dc; background:rgba(255,255,255,.92); box-shadow:0 8px 28px rgba(70,70,70,.06); backdrop-filter:blur(16px); }
  body.view-users .w-header-inner { width:min(100%,1680px); min-height:78px; margin:auto; padding:10px clamp(18px,3vw,48px); display:flex; align-items:center; gap:18px; }
  body.view-users .w-back { min-height:46px; padding:0 16px; display:inline-flex; align-items:center; gap:8px; border:1px solid var(--w-border); border-radius:13px; color:#586879; background:#fff; text-decoration:none; font-weight:650; }
  body.view-users .w-back:hover { color:var(--w-blue); background:#fff5e8; }
  body.view-users .w-logo { width:clamp(158px,14vw,205px); height:auto; margin-left:auto; }
  body.view-users .w-user { color:var(--w-muted); font-size:.9rem; font-weight:650; white-space:nowrap; }
  body.view-users .w-logout { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--w-border); border-radius:13px; color:#778492; background:#fff; text-decoration:none; }
  body.view-users .w-main { width:min(100%,1380px); margin:auto; padding:clamp(28px,4vw,58px); }
  body.view-users .w-title-row { margin-bottom:24px; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
  body.view-users .w-eyebrow { color:var(--w-orange); font-size:.76rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
  body.view-users .w-title { margin:8px 0 0; font-size:clamp(1.8rem,3vw,2.6rem); font-weight:800; letter-spacing:-.035em; }
  body.view-users .w-subtitle { margin:8px 0 0; color:var(--w-muted); }
  body.view-users .w-add { min-height:50px; padding:0 20px; display:inline-flex; align-items:center; gap:9px; border:0; border-radius:14px; color:#fff; background:linear-gradient(135deg,#f4ad50,var(--w-blue)); box-shadow:0 11px 26px rgba(229,132,24,.24); font-weight:700; white-space:nowrap; }
  body.view-users .users-filter-bar { margin-bottom:16px; padding:14px 16px; display:grid; grid-template-columns:minmax(220px,1.35fr) minmax(180px,1fr) minmax(200px,1fr) auto; align-items:end; gap:14px; border:1px solid var(--w-border); border-radius:18px; background:rgba(255,255,255,.94); box-shadow:0 10px 30px rgba(70,70,70,.05); }
  body.view-users .users-filter-field { width:100%; min-width:0; }
  body.view-users .users-filter-label { margin-bottom:7px; display:block; color:#526170; font-size:.82rem; font-weight:750; }
  body.view-users .users-filter-control { position:relative; }
  body.view-users .users-filter-control > .bi-search { position:absolute; top:50%; left:16px; z-index:2; color:#8a97a4; transform:translateY(-50%); pointer-events:none; }
  body.view-users .users-filter-input { min-height:50px; padding-left:44px; padding-right:46px; border-color:#ddd7cf; border-radius:13px; background:#fff; }
  body.view-users .users-filter-select { min-height:50px; border-color:#ddd7cf; border-radius:13px; background-color:#fff; }
  body.view-users .users-filter-input::-webkit-search-cancel-button { display:none; }
  body.view-users .users-filter-clear { position:absolute; top:50%; right:7px; width:36px; height:36px; display:grid; place-items:center; border:0; border-radius:10px; color:#747f89; background:#f4f1ed; transform:translateY(-50%); }
  body.view-users .users-filter-clear:hover { color:var(--w-blue); background:#fff2df; }
  body.view-users .users-filter-clear[hidden] { display:none; }
  body.view-users .users-filter-meta { min-height:50px; padding:0 4px; display:flex; align-items:center; justify-content:flex-end; color:var(--w-muted); font-size:.86rem; font-weight:650; white-space:nowrap; }
  body.view-users .users-no-results i { display:block; margin-bottom:12px; color:#d1944d; font-size:1.8rem; }
  body.view-users .w-panel { overflow:hidden; border:1px solid var(--w-border); border-radius:22px; background:rgba(255,255,255,.95); box-shadow:0 15px 42px rgba(70,70,70,.065); }
  body.view-users .w-table { width:100%; margin:0; border-collapse:collapse; }
  body.view-users .w-table th { padding:15px 18px; color:var(--w-muted); background:#fbfaf8; font-size:.76rem; font-weight:750; text-align:left; text-transform:uppercase; letter-spacing:.05em; }
  body.view-users .w-table td { padding:17px 18px; border-top:1px solid #eeeae5; vertical-align:middle; }
  body.view-users .user-name { font-weight:750; }
  body.view-users .user-login { margin-top:3px; color:var(--w-muted); font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.82rem; }
  body.view-users .assignment-list { display:flex; flex-wrap:wrap; gap:6px; }
  body.view-users .assignment-badge { padding:5px 9px; display:inline-flex; border-radius:999px; color:#49667f; background:#edf4fa; font-size:.75rem; font-weight:680; }
  body.view-users .assignment-badge.system { color:#8a5a16; background:#fff2d9; }
  body.view-users .no-assignment { color:#9aa5af; font-size:.84rem; }
  body.view-users .status { padding:5px 9px; display:inline-flex; border-radius:999px; color:#287451; background:#e8f7ef; font-size:.73rem; font-weight:800; }
  body.view-users .status.blocked { color:#a4453e; background:#fff0ee; }
  body.view-users .w-actions { display:flex; justify-content:flex-end; gap:8px; }
  body.view-users .w-icon-btn { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--w-border); border-radius:12px; color:#667584; background:#fff; text-decoration:none; }
  body.view-users .w-icon-btn:hover { color:var(--w-blue); background:#fff5e8; }
  body.view-users .w-icon-btn.block:hover { border-color:#efc4c0; color:#b94b42; background:#fff2f1; }
  body.view-users .w-icon-btn.unblock:hover { border-color:#bfe4d0; color:#287451; background:#eaf8f0; }
  body.view-users .protected-user { padding:10px; color:#8a98a5; font-size:1.1rem; }
  body.view-users .w-empty { padding:70px 24px; color:var(--w-muted); text-align:center; }
  body.view-users .modal-content { border:0; border-radius:22px; box-shadow:0 24px 70px rgba(70,70,70,.22); }
  body.view-users .modal-header, body.view-users .modal-footer { border-color:#eeeae5; }
  body.view-users .modal-title { font-weight:780; }
  body.view-users .modal-body { padding:24px; }
  body.view-users .form-label { margin-bottom:7px; color:#526170; font-size:.84rem; font-weight:750; }
  body.view-users .form-control, body.view-users .form-select { min-height:50px; border-color:#ddd7cf; border-radius:12px; }
  body.view-users .form-control:focus, body.view-users .form-select:focus { border-color:#ee9b2c; box-shadow:0 0 0 4px rgba(238,155,44,.12); }
  body.view-users .form-section { margin-top:24px; padding-top:22px; border-top:1px solid #eeeae5; }
  body.view-users .form-section-title { margin:0 0 5px; font-size:1rem; font-weight:800; }
  body.view-users .form-section-text { margin:0 0 14px; color:var(--w-muted); font-size:.84rem; }
  body.view-users .assignment-editor { display:grid; gap:10px; }
  body.view-users .assignment-row { padding:12px; display:grid; grid-template-columns:1fr 1fr 44px; align-items:end; gap:10px; border:1px solid var(--w-border); border-radius:15px; background:#fbfaf8; }
  body.view-users .assignment-remove { width:44px; height:50px; display:grid; place-items:center; border:1px solid #efcfcc; border-radius:12px; color:#b94b42; background:#fff; }
  body.view-users .assignment-add { min-height:44px; margin-top:10px; padding:0 14px; display:inline-flex; align-items:center; gap:8px; border:1px dashed #aac1d7; border-radius:12px; color:var(--w-blue); background:#fff8ef; font-weight:700; }
  body.view-users .modal-error { display:none; border-radius:13px; }
  @media(max-width:900px){ body.view-users .users-filter-bar{grid-template-columns:1fr 1fr}body.view-users .users-filter-field:first-child{grid-column:1/-1}body.view-users .users-filter-meta{min-height:auto;justify-content:flex-start}body.view-users .w-panel{overflow-x:auto}body.view-users .w-table{min-width:900px} }
  @media(max-width:600px){
    body.view-users .w-header-inner{min-height:68px;padding:9px 14px;gap:10px}body.view-users .w-main{padding:24px 14px 38px}body.view-users .w-logo{width:138px}body.view-users .w-back{width:42px;min-height:42px;padding:0;justify-content:center}body.view-users .w-back span{display:none}body.view-users .w-logout{width:40px;height:40px}body.view-users .w-user{display:none}
    body.view-users .w-title-row{align-items:flex-start;flex-direction:column;gap:16px}body.view-users .w-title{font-size:1.8rem}body.view-users .w-subtitle{font-size:.93rem}body.view-users .w-add{width:100%;min-height:54px;justify-content:center}
    body.view-users .users-filter-bar{padding:14px;grid-template-columns:1fr;align-items:stretch;gap:11px;border-radius:17px}body.view-users .users-filter-field:first-child{grid-column:auto}body.view-users .users-filter-input, body.view-users .users-filter-select{min-height:54px}body.view-users .users-filter-meta{min-height:auto;padding:0;justify-content:flex-start;font-size:.82rem}
    body.view-users .w-panel{overflow:visible;border:0;background:transparent;box-shadow:none}body.view-users .w-table{min-width:0}body.view-users .w-table thead{display:none}body.view-users .w-table tbody{display:grid;gap:12px}body.view-users .w-table tr{padding:16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;border:1px solid var(--w-border);border-radius:17px;background:#fff;box-shadow:0 8px 24px rgba(70,70,70,.055)}body.view-users .w-table td{padding:0;border:0}body.view-users .user-cell, body.view-users .assignment-cell{grid-column:1/-1}body.view-users .status-cell{grid-column:1}body.view-users .actions-cell{grid-column:2;grid-row:3}body.view-users .w-actions{gap:7px}body.view-users .w-icon-btn{width:44px;height:44px}
    body.view-users .modal-dialog{margin:0}body.view-users .modal-content{min-height:100dvh;border-radius:0}body.view-users .modal-body{padding:19px 15px}body.view-users .modal-footer{position:sticky;bottom:0;background:#fff}body.view-users .modal-footer .btn{min-height:50px;flex:1}body.view-users .assignment-row{grid-template-columns:1fr 44px}body.view-users .assignment-row .assignment-workshop, body.view-users .assignment-row .assignment-workplace{grid-column:1}body.view-users .assignment-remove{grid-column:2;grid-row:1/3;align-self:center}
  }

/* workplaces.php */
body.view-workplaces { --w-blue:#e58418; --w-orange:#f28c00; --w-ink:#303030; --w-muted:#77736f; --w-border:#e6e1da; }
  body.view-workplaces { min-height:100vh; margin:0; color:var(--w-ink); background:radial-gradient(circle at 96% 3%,rgba(238,155,44,.12),transparent 26rem),#f6f5f3; font-family:Montserrat,"Segoe UI",Arial,sans-serif; }
  body.view-workplaces .w-header { position:sticky; top:0; z-index:1030; border-bottom:1px solid #e7e2dc; background:rgba(255,255,255,.92); box-shadow:0 8px 28px rgba(70,70,70,.06); backdrop-filter:blur(16px); }
  body.view-workplaces .w-header-inner { width:min(100%,1680px); min-height:78px; margin:auto; padding:10px clamp(18px,3vw,48px); display:flex; align-items:center; gap:18px; }
  body.view-workplaces .w-back { min-height:46px; padding:0 16px; display:inline-flex; align-items:center; gap:8px; border:1px solid var(--w-border); border-radius:13px; color:#586879; background:#fff; text-decoration:none; font-weight:650; }
  body.view-workplaces .w-back:hover { color:var(--w-blue); background:#fff5e8; }
  body.view-workplaces .w-logo { width:clamp(158px,14vw,205px); height:auto; margin-left:auto; }
  body.view-workplaces .w-user { color:var(--w-muted); font-size:.9rem; font-weight:650; white-space:nowrap; }
  body.view-workplaces .w-logout { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--w-border); border-radius:13px; color:#778492; background:#fff; text-decoration:none; }
  body.view-workplaces .w-main { width:min(100%,1080px); margin:auto; padding:clamp(28px,4vw,58px); }
  body.view-workplaces .w-title-row { margin-bottom:26px; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
  body.view-workplaces .w-eyebrow { color:var(--w-orange); font-size:.76rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
  body.view-workplaces .w-title { margin:8px 0 0; font-size:clamp(1.8rem,3vw,2.6rem); font-weight:800; letter-spacing:-.035em; }
  body.view-workplaces .w-subtitle { margin:8px 0 0; color:var(--w-muted); }
  body.view-workplaces .w-add { min-height:50px; padding:0 20px; display:inline-flex; align-items:center; gap:9px; border:0; border-radius:14px; color:#fff; background:linear-gradient(135deg,#f4ad50,var(--w-blue)); box-shadow:0 11px 26px rgba(229,132,24,.24); font-weight:700; white-space:nowrap; }
  body.view-workplaces .w-panel { overflow:hidden; border:1px solid var(--w-border); border-radius:22px; background:rgba(255,255,255,.95); box-shadow:0 15px 42px rgba(70,70,70,.065); }
  body.view-workplaces .w-table { width:100%; margin:0; border-collapse:collapse; }
  body.view-workplaces .w-table th { padding:15px 20px; color:var(--w-muted); background:#fbfaf8; font-size:.78rem; font-weight:750; text-align:left; text-transform:uppercase; letter-spacing:.055em; }
  body.view-workplaces .w-table td { padding:17px 20px; border-top:1px solid #eeeae5; vertical-align:middle; }
  body.view-workplaces .w-name { font-weight:720; }
  body.view-workplaces .w-system-badge { margin-left:10px; padding:4px 8px; display:inline-flex; align-items:center; border-radius:999px; color:#e58418; background:#fff2df; font-size:.69rem; font-weight:800; letter-spacing:.035em; text-transform:uppercase; vertical-align:middle; }
  body.view-workplaces .w-protected { padding:8px; color:#7f91a2; font-size:1.15rem; }
  body.view-workplaces .w-actions { display:flex; justify-content:flex-end; gap:8px; }
  body.view-workplaces .w-icon-btn { width:40px; height:40px; display:grid; place-items:center; border:1px solid var(--w-border); border-radius:12px; color:#667584; background:#fff; }
  body.view-workplaces .w-icon-btn:hover { color:var(--w-blue); background:#fff5e8; }
  body.view-workplaces .w-icon-btn.delete:hover { border-color:#f0c7c3; color:#b94b42; background:#fff2f1; }
  body.view-workplaces .w-empty { padding:70px 24px; color:var(--w-muted); text-align:center; }
  body.view-workplaces .w-empty i { display:block; margin-bottom:14px; color:#9eb7ce; font-size:2rem; }
  body.view-workplaces .modal-content { border:0; border-radius:20px; box-shadow:0 24px 70px rgba(70,70,70,.22); }
  body.view-workplaces .modal-header, body.view-workplaces .modal-footer { border-color:#eeeae5; }
  body.view-workplaces .modal-title { font-weight:760; }
  body.view-workplaces .form-control { min-height:52px; border-color:#ddd7cf; border-radius:13px; }
  body.view-workplaces .form-control:focus { border-color:#ee9b2c; box-shadow:0 0 0 4px rgba(238,155,44,.14); }
  body.view-workplaces .w-message { display:none; margin-bottom:18px; border-radius:13px; }
  @media(max-width:760px){ body.view-workplaces .w-user{display:none;} body.view-workplaces .w-title-row{align-items:flex-start;flex-direction:column;} }
  @media(max-width:600px){
    body.view-workplaces .w-header-inner{min-height:68px;padding:9px 14px;gap:10px}body.view-workplaces .w-main{padding:24px 14px 38px}body.view-workplaces .w-logo{width:138px}body.view-workplaces .w-back{width:42px;min-height:42px;padding:0;justify-content:center}body.view-workplaces .w-back span{display:none}body.view-workplaces .w-logout{width:40px;height:40px}
    body.view-workplaces .w-title-row{margin-bottom:18px;gap:16px}body.view-workplaces .w-title{font-size:1.8rem}body.view-workplaces .w-subtitle{font-size:.93rem}body.view-workplaces .w-add{width:100%;min-height:54px;justify-content:center}
    body.view-workplaces .w-panel{overflow:visible;border:0;background:transparent;box-shadow:none}body.view-workplaces .w-table{min-width:0}body.view-workplaces .w-table thead{display:none}body.view-workplaces .w-table tbody{display:grid;gap:12px}body.view-workplaces .w-table tr{padding:15px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--w-border);border-radius:17px;background:#fff;box-shadow:0 8px 24px rgba(70,70,70,.055)}body.view-workplaces .w-table td{padding:0;border:0}body.view-workplaces .w-name{overflow-wrap:anywhere}body.view-workplaces .w-actions{gap:7px}body.view-workplaces .w-icon-btn{width:44px;height:44px}body.view-workplaces .w-system-badge{margin:7px 0 0;display:table}body.view-workplaces .w-protected{padding:10px}
    body.view-workplaces .w-empty{padding:48px 18px;border:1px solid var(--w-border);border-radius:17px;background:#fff}body.view-workplaces .modal-dialog{margin:10px}body.view-workplaces .modal-content{border-radius:18px}body.view-workplaces .modal-body{padding:20px}body.view-workplaces .modal-footer .btn{min-height:48px;flex:1}
  }

/* workshops.php */
body.view-workshops { --w-blue:#e58418; --w-orange:#f28c00; --w-ink:#303030; --w-muted:#77736f; --w-border:#e6e1da; }
  body.view-workshops { min-height:100vh; margin:0; color:var(--w-ink); background:radial-gradient(circle at 96% 3%,rgba(238,155,44,.12),transparent 26rem),#f6f5f3; font-family:Montserrat,"Segoe UI",Arial,sans-serif; }
  body.view-workshops .w-header { position:sticky; top:0; z-index:1030; border-bottom:1px solid #e7e2dc; background:rgba(255,255,255,.92); box-shadow:0 8px 28px rgba(70,70,70,.06); backdrop-filter:blur(16px); }
  body.view-workshops .w-header-inner { width:min(100%,1680px); min-height:78px; margin:auto; padding:10px clamp(18px,3vw,48px); display:flex; align-items:center; gap:18px; }
  body.view-workshops .w-back { min-height:46px; padding:0 16px; display:inline-flex; align-items:center; gap:8px; border:1px solid var(--w-border); border-radius:13px; color:#586879; background:#fff; text-decoration:none; font-weight:650; }
  body.view-workshops .w-back:hover { color:var(--w-blue); background:#fff5e8; }
  body.view-workshops .w-logo { width:clamp(158px,14vw,205px); height:auto; margin-left:auto; }
  body.view-workshops .w-user { color:var(--w-muted); font-size:.9rem; font-weight:650; white-space:nowrap; }
  body.view-workshops .w-logout { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--w-border); border-radius:13px; color:#778492; background:#fff; text-decoration:none; }
  body.view-workshops .w-main { width:min(100%,1080px); margin:auto; padding:clamp(28px,4vw,58px); }
  body.view-workshops .w-title-row { margin-bottom:26px; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
  body.view-workshops .w-eyebrow { color:var(--w-orange); font-size:.76rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
  body.view-workshops .w-title { margin:8px 0 0; font-size:clamp(1.8rem,3vw,2.6rem); font-weight:800; letter-spacing:-.035em; }
  body.view-workshops .w-subtitle { margin:8px 0 0; color:var(--w-muted); }
  body.view-workshops .w-add { min-height:50px; padding:0 20px; display:inline-flex; align-items:center; gap:9px; border:0; border-radius:14px; color:#fff; background:linear-gradient(135deg,#f4ad50,var(--w-blue)); box-shadow:0 11px 26px rgba(229,132,24,.24); font-weight:700; white-space:nowrap; }
  body.view-workshops .w-panel { overflow:hidden; border:1px solid var(--w-border); border-radius:22px; background:rgba(255,255,255,.95); box-shadow:0 15px 42px rgba(70,70,70,.065); }
  body.view-workshops .w-table { width:100%; margin:0; border-collapse:collapse; }
  body.view-workshops .w-table th { padding:15px 20px; color:var(--w-muted); background:#fbfaf8; font-size:.78rem; font-weight:750; text-align:left; text-transform:uppercase; letter-spacing:.055em; }
  body.view-workshops .w-table td { padding:17px 20px; border-top:1px solid #eeeae5; vertical-align:middle; }
  body.view-workshops .w-name { font-weight:720; }
  body.view-workshops .w-actions { display:flex; justify-content:flex-end; gap:8px; }
  body.view-workshops .w-icon-btn { width:40px; height:40px; display:grid; place-items:center; border:1px solid var(--w-border); border-radius:12px; color:#667584; background:#fff; }
  body.view-workshops .w-icon-btn:hover { color:var(--w-blue); background:#fff5e8; }
  body.view-workshops .w-icon-btn.delete:hover { border-color:#f0c7c3; color:#b94b42; background:#fff2f1; }
  body.view-workshops .w-empty { padding:70px 24px; color:var(--w-muted); text-align:center; }
  body.view-workshops .w-empty i { display:block; margin-bottom:14px; color:#9eb7ce; font-size:2rem; }
  body.view-workshops .modal-content { border:0; border-radius:20px; box-shadow:0 24px 70px rgba(70,70,70,.22); }
  body.view-workshops .modal-header, body.view-workshops .modal-footer { border-color:#eeeae5; }
  body.view-workshops .modal-title { font-weight:760; }
  body.view-workshops .form-control { min-height:52px; border-color:#ddd7cf; border-radius:13px; }
  body.view-workshops .form-control:focus { border-color:#ee9b2c; box-shadow:0 0 0 4px rgba(238,155,44,.14); }
  body.view-workshops .w-message { display:none; margin-bottom:18px; border-radius:13px; }
  @media(max-width:760px){ body.view-workshops .w-user{display:none;} body.view-workshops .w-title-row{align-items:flex-start;flex-direction:column;} }
  @media(max-width:600px){
    body.view-workshops .w-header-inner{min-height:68px;padding:9px 14px;gap:10px}body.view-workshops .w-main{padding:24px 14px 38px}body.view-workshops .w-logo{width:138px}body.view-workshops .w-back{width:42px;min-height:42px;padding:0;justify-content:center}body.view-workshops .w-back span{display:none}body.view-workshops .w-logout{width:40px;height:40px}
    body.view-workshops .w-title-row{margin-bottom:18px;gap:16px}body.view-workshops .w-title{font-size:1.8rem}body.view-workshops .w-subtitle{font-size:.93rem}body.view-workshops .w-add{width:100%;min-height:54px;justify-content:center}
    body.view-workshops .w-panel{overflow:visible;border:0;background:transparent;box-shadow:none}body.view-workshops .w-table{min-width:0}body.view-workshops .w-table thead{display:none}body.view-workshops .w-table tbody{display:grid;gap:12px}body.view-workshops .w-table tr{padding:15px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--w-border);border-radius:17px;background:#fff;box-shadow:0 8px 24px rgba(70,70,70,.055)}body.view-workshops .w-table td{padding:0;border:0}body.view-workshops .w-name{overflow-wrap:anywhere}body.view-workshops .w-actions{gap:7px}body.view-workshops .w-icon-btn{width:44px;height:44px}
    body.view-workshops .w-empty{padding:48px 18px;border:1px solid var(--w-border);border-radius:17px;background:#fff}body.view-workshops .modal-dialog{margin:10px}body.view-workshops .modal-content{border-radius:18px}body.view-workshops .modal-body{padding:20px}body.view-workshops .modal-footer .btn{min-height:48px;flex:1}
  }

/* Shared SOFRO refinements */
body[class*="view-"] { color: var(--sofro-ink); background-color: var(--sofro-background); }
.btn-primary { --bs-btn-bg: var(--sofro-orange); --bs-btn-border-color: var(--sofro-orange); --bs-btn-hover-bg: #c96f0d; --bs-btn-hover-border-color: #c96f0d; --bs-btn-active-bg: #b96308; --bs-btn-active-border-color: #b96308; }
.form-check-input:checked { border-color: var(--sofro-orange); background-color: var(--sofro-orange); }
.form-control:focus, .form-select:focus { border-color: var(--sofro-orange-light) !important; box-shadow: 0 0 0 .25rem rgba(229,132,24,.14) !important; }
.w-add, .filter-button, .save-button { background: linear-gradient(135deg,var(--sofro-orange-light),var(--sofro-orange)) !important; box-shadow: 0 11px 26px rgba(229,132,24,.22) !important; }
.w-logo, .control-logo, .work-header-logo {
  height: clamp(28px,3vw,34px) !important;
  object-fit: cover;
  object-position: center;
}
body.view-login .brand {
  height: clamp(88px,12vw,104px);
  object-fit: cover;
  object-position: center;
}
body.view-login .login-submit:hover,
body.view-login .login-submit:focus-visible {
  background: linear-gradient(135deg,var(--sofro-orange-light),#c96f0d);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
