/* Shared visual system. Business fields, permissions and form actions stay server-owned. */
:root{--ink:#173c33;--green:#16634e;--green-dark:#104d3c;--muted:#62786f;--line:#dfe9e3;--canvas:#f3f7f5;--pale:#e7f3ec}
body{background:var(--canvas);text-rendering:optimizeLegibility}
.shell,main,.panel,.form-grid>*,.detail-grid>*{min-width:0}
a,button,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
:where(a,button,summary):focus-visible{outline:3px solid #44a182;outline-offset:3px}
.button,.admin-layout .button{border-radius:10px;min-height:44px;font-size:14px;padding:10px 16px;gap:8px;transition:background .15s,border-color .15s}
.button:not(.secondary){box-shadow:0 3px 7px #124b3412}
.button.secondary,.admin-layout .button.secondary{border-color:#d6e2da;background:#fff}
.button.secondary:hover{background:#eff7f2}
input:not([type=checkbox]):not([type=hidden]),select,textarea{border-color:#d5e1d9;background:#fff;border-radius:9px;min-height:44px;color:#244b3c}
input::placeholder,textarea::placeholder{color:#819288;font-size:inherit}
input[type=file]{max-width:100%;overflow:hidden;font-size:14px}
input[type=file]::file-selector-button{border:0;background:#e8f3ed;color:#18573f;border-radius:6px;padding:7px 10px;margin:-2px 10px -2px -3px;font:inherit;cursor:pointer}
input[type=checkbox]{width:20px;height:20px;flex:none}
.panel,.admin-layout .panel{border-color:#dfe8e2;border-radius:16px;box-shadow:0 4px 20px #194f3005}
.field label{font-size:14px;color:#345746;font-weight:550}
.field small,#registration-form .field small{font-size:12px;color:#6f8075;line-height:1.75}
.form-actions{gap:10px;flex-wrap:wrap}
.page-heading h1,.admin-layout .page-heading h1{font-size:32px;letter-spacing:-.7px;color:#153e31}
.page-heading p,.admin-layout .page-heading p{font-size:14px;color:#62776b}
.admin-layout .sidebar{background:#fff;border-color:#e0e9e3}
.sidebar-heading{flex:none}
.workspace-menu{display:flex;flex-direction:column;min-height:0;flex:1}
.workspace-menu[hidden],.mobile-menu-toggle[hidden]{display:none!important}
.mobile-menu-toggle{display:none}
.admin-layout .brand-icon{border-radius:12px;background:#15563f;box-shadow:0 4px 12px #15563f18}
.admin-layout .sidebar nav>a{font-size:14px;min-height:44px;border-radius:10px;color:#526d60}
.admin-layout .sidebar nav>a.active{color:#13523c;background:#e7f3ec;border-color:#cce4d5;box-shadow:inset 3px 0 #237b59}
.admin-layout .sidebar nav>a.active span{color:#237b59}
.admin-layout .sidebar-bottom{min-height:72px}
.admin-layout .topbar{background:#fff;color:#6f8378}
.admin-layout .environment-note,.environment-note{background:#fffaf0;border-color:#eee4cd;color:#806536;font-size:12px;border-radius:9px}
.admin-layout .page-heading{margin:14px 0 24px}
.admin-layout table{font-size:13px}
.admin-layout th{font-size:12px;background:#f2f7f4;color:#5f7868}
.admin-layout td{color:#3e5a4a;line-height:1.7}
.admin-layout td small{font-size:12px;color:#6b8172}
.admin-layout .badge{font-size:12px;border-radius:6px}
.admin-layout .queue-summary{border-bottom:0;margin-bottom:4px;padding-bottom:12px}
.admin-layout .queue-summary>strong{font-size:16px}
.admin-layout .sort-note{white-space:normal;font-size:12px;background:transparent;padding:0}
.admin-layout .tabs a{min-height:44px;display:inline-flex;align-items:center;font-size:13px}
.admin-layout .filters label{font-size:13px;color:#4b6657}
.admin-layout .filters{background:#f6f9f7;border-color:#e4ece6;border-radius:12px}
.admin-layout .employee-filters{display:block;padding:18px;margin-bottom:18px}
.employee-filter-main{display:grid;grid-template-columns:minmax(220px,2fr) repeat(2,minmax(150px,1fr));gap:14px}
.admin-layout .employee-filters label{display:block;min-width:0;flex:none;font-size:13px}
.employee-filter-more{margin:12px 0 0;border-top:1px solid #e2eae5;padding-top:10px}
.employee-filter-more>summary{min-height:40px;padding:8px 0;color:#466b56;font-size:13px;font-weight:550}
.employee-filter-more>summary span{display:inline;margin:0 0 0 8px;color:#16634e;font-size:12px}
.employee-filter-extra{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:8px 0 14px}
.employee-filter-actions{display:flex;gap:10px;margin-top:10px}
.employee-filter-actions .button:first-child{min-width:120px}
.employee-select-all{display:inline-flex;align-items:center;gap:10px;cursor:pointer;min-height:24px}
.mobile-only{display:none}
.admin-layout .detail-grid dt{font-size:12px;color:#6e8375}
.admin-layout .detail-grid dd{font-size:15px;overflow-wrap:anywhere;word-break:normal}
.admin-layout .employee-save-panel{border-top:3px solid #2b8060}
.public-layout .topbar{height:56px;background:#fff}
.public-layout .join-header h1{font-size:29px;color:#174b37}
.public-layout .join-header p{font-size:13px;color:#6c8073}
.public-layout .section-heading h2{font-size:19px}
.public-layout .section-heading p{font-size:13px;line-height:1.8}
.public-layout .section-number{flex:none;background:#e6f2e9;color:#1d704a;width:34px;height:34px}
.public-layout .steps{font-size:12px;background:#eaf3ed;padding:12px;border-radius:10px;gap:8px}
.public-layout .steps .current{color:#12613e}
.public-layout .notice-panel{background:#f9fcfa}
.public-layout .notice-panel>p{font-size:13px}
.public-layout .slip-card{box-shadow:0 4px 20px #194f3005}
.public-layout .login-card{border-top:4px solid #237b59}
@media screen and (max-width:1050px){
  .employee-filter-main,.employee-filter-extra{grid-template-columns:repeat(2,minmax(0,1fr))}
  .employee-filter-main>label:first-child,.employee-filter-extra>label:last-child{grid-column:1/-1}
}
@media screen and (max-width:760px){
  html{scroll-padding-top:86px}
  .skip-link:focus{z-index:50}
  body{font-size:15px}
  .admin-layout .sidebar{position:sticky;top:0;padding:10px 16px;z-index:30;border-bottom:1px solid #dce7df;box-shadow:0 3px 12px #193e3006}
  .sidebar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}
  .admin-layout .sidebar-heading .brand{font-size:15px;margin:0;gap:10px}
  .admin-layout .sidebar-heading .brand small{font-size:10px;letter-spacing:.4px}
  .admin-layout .brand-icon{width:38px;height:38px;font-size:23px}
  .mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:76px;border:1px solid #d8e6dd;border-radius:10px;color:#215b41;background:#f3f8f5;padding:8px 10px;font-size:14px}
  .menu-lines{display:block;width:16px;height:12px;border-top:2px solid currentColor;border-bottom:2px solid currentColor;position:relative}
  .menu-lines:after{content:'';height:2px;position:absolute;top:3px;left:0;right:0;background:currentColor}
  .admin-layout .sidebar[data-nav-enhanced] .workspace-menu{position:absolute;top:100%;left:0;right:0;background:#fff;max-height:calc(100vh - 82px);max-height:calc(100dvh - 82px);overflow:auto;overscroll-behavior:contain;padding:8px 16px 12px;box-shadow:0 16px 24px #193e301a;border-bottom:1px solid #dce7df;border-radius:0 0 18px 18px}
  .admin-layout .sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;overflow:visible;padding:0;min-height:auto;flex:none}
  .admin-layout .sidebar .nav-label{display:block;grid-column:1/-1;margin:13px 8px 3px;font-size:11px}
  .admin-layout .sidebar nav>a{margin:0;min-height:46px;padding:9px 10px;font-size:13px;gap:8px;white-space:normal}
  .admin-layout .sidebar nav>a span{display:block;font-size:17px;flex:none}
  .admin-layout .sidebar-bottom{display:flex;margin-top:14px;padding:12px 4px 0;min-height:55px}
  .admin-layout .sidebar-bottom strong{font-size:13px}
  .admin-layout .sidebar-bottom small{font-size:11px}
  .admin-layout .logout{height:44px;width:44px}
  .admin-layout .topbar{display:none}
  .shell{margin-left:0}
  main,.admin-layout main{padding:16px 14px 24px}
  .admin-layout .environment-note,.environment-note{font-size:11px;padding:8px 10px;margin-bottom:18px;line-height:1.7}
  .page-heading,.admin-layout .page-heading{margin:12px 0 20px;gap:14px}
  .page-heading h1,.admin-layout .page-heading h1{font-size:27px;letter-spacing:-.5px}
  .page-heading p,.admin-layout .page-heading p{font-size:13px;line-height:1.8;margin-top:8px}
  .eyebrow,.admin-layout .eyebrow{font-size:10px}
  .page-heading .button-group{width:100%;gap:8px;flex-wrap:wrap}
  .page-heading .button-group .button{flex:1 1 calc(50% - 4px);min-width:0}
  .panel,.admin-layout .panel{padding:18px 16px;margin-bottom:16px;border-radius:15px}
  .button,.admin-layout .button{min-height:46px;font-size:14px;padding:10px 14px;white-space:normal;text-align:center;line-height:1.6}
  .form-actions{align-items:stretch;gap:10px}
  .form-actions .button{flex:1 1 160px;width:auto}
  .field{margin-bottom:20px}
  .field label,.admin-layout .filters label{font-size:14px}
  input:not([type=checkbox]):not([type=hidden]),select,textarea,.admin-layout .filters label input,.admin-layout .filters label select{font-size:16px;min-height:48px;max-width:100%;min-width:0;padding:11px 12px;line-height:1.5}
  input[type=file]{padding:9px!important;font-size:14px!important}
  .field small,#registration-form .field small{font-size:12px;line-height:1.75}
  .field input,.field select,.field textarea,.form-error-summary,#employee-wages{scroll-margin-top:85px}
  .checkbox-field label,.check-label{font-size:13px!important;padding:6px 0}
  .admin-layout .filters{gap:12px}
  .admin-layout .employee-filters{padding:14px;margin-bottom:18px}
  .employee-filter-main{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}
  .employee-filter-main>label:first-child{grid-column:1/-1}
  .admin-layout .employee-filters label{min-width:0;font-size:13px}
  .employee-filter-extra{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}
  .employee-filter-extra>label:last-child{grid-column:1/-1}
  .employee-filter-more>summary{font-size:14px;min-height:44px}
  .employee-filter-actions .button{flex:1;min-width:0}
  .admin-layout .queue-summary{gap:8px}
  .admin-layout .sort-note{font-size:11px}
  .admin-layout .employee-table{display:block;min-width:0;width:100%;border-collapse:separate}
  .admin-layout .employee-table thead{display:block;margin:0 0 10px}
  .admin-layout .employee-table thead tr{display:block}
  .admin-layout .employee-table th:not(.employee-select-column){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0;border:0}
  .admin-layout .employee-table th.employee-select-column{display:block;padding:0;background:transparent;border:0}
  .employee-select-all{min-height:44px;padding:8px 3px;font-size:13px;color:#5f7767}
  .mobile-only{display:inline}
  .admin-layout .employee-table tbody{display:grid;gap:14px}
  .admin-layout .employee-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));position:relative;background:#fff;border:1px solid #dce7df;border-radius:13px;overflow:hidden;box-shadow:0 2px 8px #143d2503}
  .admin-layout .employee-table td{display:block;min-width:0;white-space:normal!important;padding:9px 13px;border:0;color:#31543f;font-size:14px;overflow-wrap:anywhere}
  .admin-layout .employee-table td:before{content:attr(data-label);display:block;color:#7b8b80;font-size:11px;margin-bottom:3px;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif}
  .admin-layout .employee-table td small{font-size:12px;margin-top:2px;color:#6f8575;white-space:normal}
  .admin-layout .employee-table .employee-card-heading{grid-column:1/-1;padding:13px 58px 11px 13px;border-bottom:1px solid #eaf0eb;background:#f9fcfa}
  .admin-layout .employee-table .employee-card-heading:before,.admin-layout .employee-table .employee-card-check:before,.admin-layout .employee-table .employee-card-action:before{display:none}
  .admin-layout .employee-card-heading .employee-name-link{display:inline-flex;align-items:center;min-height:32px;font-size:17px;text-decoration:none}
  .admin-layout .employee-card-heading small{font-size:13px!important}
  .admin-layout .employee-table .employee-card-check{position:absolute;right:5px;top:8px;padding:0;z-index:1}
  .employee-card-check label{display:flex;align-items:center;justify-content:center;width:44px;height:44px;cursor:pointer}
  .admin-layout .employee-table .employee-card-identity,.admin-layout .employee-table .employee-card-wage,.admin-layout .employee-table .employee-card-action{grid-column:1/-1}
  .admin-layout .employee-table .employee-card-wage{background:#f0f8f3;border-bottom:1px solid #e1eee4}
  .admin-layout .employee-table .employee-card-action{padding:6px 13px 12px}
  .admin-layout .employee-card-action>a{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #d7e5db;border-radius:8px;background:#f5f9f6;font-size:14px;font-weight:600}
  .admin-layout .employee-table td[colspan]{grid-column:1/-1}
  .admin-layout .employee-table tbody tr:hover td{background:initial}
  .admin-layout .table-footer .button-group{display:flex;width:100%;gap:8px}
  .admin-layout .table-footer .button-group .button{flex:1;font-size:13px}
  .admin-layout .table-footer,.admin-layout .pagination{font-size:13px}
  .admin-layout .pagination .button{min-width:76px}
  .admin-layout .detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}
  .admin-layout .detail-grid dd{font-size:15px}
  .employee-wage-month-form{gap:10px}
  .employee-wage-month-form label{flex:1;min-width:0}
  .employee-wage-month-form .button{flex:0 0 auto}
  .admin-layout .manager-focus{padding:0}
  .admin-layout .manager-focus-primary{padding:22px;background:#e9f4ed}
  .admin-layout .manager-focus-number strong{font-size:48px}
  .admin-layout .manager-focus-secondary{padding:0 15px}
  .admin-layout .manager-focus-secondary a{font-size:12px;overflow-wrap:anywhere;min-width:0}
  .employment-period-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .weekly-export{white-space:normal;min-height:40px;font-size:12px}
  .public-layout .topbar{height:48px;padding:0 16px;font-size:11px}
  .public-layout .topbar-path{font-size:11px}
  .public-layout main{padding:16px 14px 28px}
  .public-layout .join-header{gap:12px;padding:8px 2px 15px}
  .public-layout .join-header h1{font-size:26px}
  .public-layout .join-header p{font-size:12px}
  .public-layout .join-wrap>.muted{font-size:13px}
  .public-layout .steps{font-size:10px;padding:12px 8px;gap:6px;margin:18px 0}
  .public-layout .join-wrap .panel{padding:20px 16px}
  .public-layout .section-heading{gap:10px;margin-bottom:22px}
  .public-layout .section-heading h2{font-size:18px}
  .public-layout .section-heading p,#registration-form .section-heading p{font-size:12px;line-height:1.8}
  #registration-form .ocr-trigger{width:100%;font-size:14px;min-height:46px;background:#eff7f2}
  .public-layout .borrow-steps{font-size:12px;gap:8px;background:#eaf3ed;border-radius:10px;padding:12px}
  .public-layout .slip-card{padding:18px 16px}
  .public-layout .slip-summary{gap:12px}
  .public-layout .slip-details dl>div{gap:12px}
  .public-layout .notice-meta{font-size:11px}
  .public-layout .login-card{margin:20px auto;padding:26px 22px}
  .public-layout .login-card>p{font-size:13px}
  .public-layout .signature-actions{flex-wrap:wrap}
  footer,.public-layout footer{font-size:10px;color:#819087;padding-bottom:calc(22px + env(safe-area-inset-bottom))}
}
@media screen and (max-width:360px){.page-heading .button-group .button{padding:10px 8px;font-size:13px}.panel,.admin-layout .panel{padding:15px 12px}.admin-layout .employee-filters{padding:12px}.admin-layout .sidebar{padding-left:12px;padding-right:12px}.admin-layout .sidebar nav{grid-template-columns:1fr}.employee-filter-extra{grid-template-columns:1fr}.employee-filter-extra>label:last-child{grid-column:auto}.public-layout .steps{font-size:9px}.public-layout .steps i{min-width:3px}.admin-layout .detail-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.button,.admin-layout .button{transition:none}}
@media print{.mobile-menu-toggle,.mobile-only,.employee-filter-more{display:none!important}.workspace-menu{display:none!important}.employee-card-check label{display:inline}.employee-table td:before{display:none!important}}
