:root{--ink:#172b26;--muted:#71817a;--line:#e4ebe7;--green:#08795d;--green-dark:#075c48;--mint:#e8f4ef;--bg:#f5f8f6;--white:#fff;--amber:#a66312;--amber-bg:#fff4df;--red:#a33c3c;--shadow:0 8px 28px rgba(31,65,52,.055)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Tahoma,Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh;background:#e5f2e9}.sidebar{background:#fff;border-left:1px solid var(--line);padding:25px 16px;display:flex;flex-direction:column;gap:28px}.brand{display:flex;align-items:center;gap:11px;padding:2px 10px}.brand-icon{width:40px;height:40px;background:var(--green);color:white;border-radius:13px;display:grid;place-items:center;font-size:20px;font-weight:700}.brand-name{font-size:18px;font-weight:700}.brand-sub{color:var(--muted);font-size:11px}.nav-title{color:#99a49e;font-weight:600;font-size:11px;padding:0 12px;margin-bottom:7px}.nav{display:grid;gap:5px}.nav-group{display:grid;gap:3px}.nav-chevron{margin-inline-start:auto;font-size:12px}.nav-submenu{display:grid;gap:3px;margin:2px 0 6px 20px;padding-right:12px;border-right:1px solid var(--line)}.nav-submenu button{font-size:12px;padding:9px 10px}.nav button{border:0;background:transparent;color:#64736b;text-align:right;border-radius:10px;padding:11px 12px;display:flex;align-items:center;gap:12px}.nav button.active,.nav button:hover{background:var(--mint);color:var(--green-dark);font-weight:600}.nav-icon{font-size:16px;width:20px;text-align:center}.side-bottom{margin-top:auto}.profile{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding:16px 7px 0}.avatar{height:36px;width:36px;border-radius:50%;background:#dcefe7;color:var(--green-dark);display:grid;place-items:center;font-weight:700}.profile-name{font-weight:600}.profile-role{font-size:11px;color:var(--muted)}.main{min-width:0}.app.attendance-active .main{background:#dceafa;transition:background-color .35s ease}.app.attendance-active .topbar{background:#e8f1fb;transition:background-color .35s ease}.topbar{height:72px;background:#e5f2e9;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px}.crumb{color:var(--muted);font-size:12px}.top-actions{display:flex;align-items:center;gap:14px}.today{color:#53645b;font-size:12px}.icon-btn{border:1px solid var(--line);background:#fff;width:36px;height:36px;border-radius:10px;color:#53645b}.content{padding:29px 34px 40px;max-width:1500px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.heading h1{font-size:23px;margin:0 0 5px}.heading p{margin:0;color:var(--muted)}.btn{border:0;background:var(--green);color:#fff;border-radius:9px;padding:10px 16px;font-weight:600}.btn:hover{background:var(--green-dark)}.btn.secondary{border:1px solid var(--line);background:white;color:var(--ink)}.btn.danger{background:#a33c3c}.btn.small{padding:6px 10px;font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:19px}.card{background:white;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.stat{padding:17px 18px}.stat-top{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.stat-icon{height:31px;width:31px;border-radius:10px;background:var(--mint);display:grid;place-items:center;color:var(--green)}.stat-value{font-size:26px;font-weight:700;margin-top:9px}.stat-note{color:var(--muted);font-size:11px;margin-top:2px}.grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,.9fr);gap:17px}.panel{padding:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel-head h2{margin:0;font-size:15px}.panel-head a,.text-link{color:var(--green);font-size:12px;text-decoration:none}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th{text-align:right;padding:11px 9px;color:#849189;background:#f8faf9;font-size:11px;font-weight:600}td{padding:12px 9px;border-bottom:1px solid #edf1ee;font-size:12px}.attendance-table td{padding:8px 9px}tbody tr:last-child td{border:0}.person{display:flex;align-items:center;gap:9px}.person .avatar{width:30px;height:30px;font-size:11px}.person-name{font-weight:600}.person-sub{color:var(--muted);font-size:10px}.badge{display:inline-flex;align-items:center;border-radius:20px;padding:4px 9px;font-size:10px;font-weight:600}.badge.green{color:#167353;background:#e7f5ee}.badge.amber{color:#a66312;background:#fff2dd}.badge.red{color:#a33c3c;background:#fdecec}.badge.gray{color:#66746c;background:#eff2f0}.activity-list{display:grid;gap:0}.activity{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #edf1ee}.activity:last-child{border:0}.activity-mark{height:29px;width:29px;border-radius:50%;display:grid;place-items:center;color:var(--green);background:var(--mint);font-size:12px}.activity-body{flex:1 1}.activity-title{font-weight:600;font-size:12px}.activity-meta{margin-top:3px}.activity-meta,.activity-time{font-size:10px;color:var(--muted)}.toolbar{gap:9px;margin-bottom:15px}.attendance-pagination,.toolbar{display:flex;align-items:center;flex-wrap:wrap}.attendance-pagination{justify-content:space-between;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.attendance-page-controls{display:flex;align-items:center;gap:8px}.attendance-pagination button:disabled{opacity:.45;cursor:not-allowed}.field{height:38px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:white;min-width:150px}.search{min-width:230px}.empty{text-align:center;color:var(--muted);padding:36px 12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-field{display:grid;gap:6px}.form-field label{font-size:12px;color:#5d6c64}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px;min-width:0}.form-field textarea{min-height:75px}.modal-backdrop{position:fixed;inset:0;background:#12241d66;display:grid;place-items:center;padding:20px;z-index:10}.modal{background:#fff;border-radius:15px;padding:22px;width:min(570px,100%);box-shadow:0 20px 80px #071b1466}.modal h2{font-size:18px;margin:0 0 18px}.modal-actions{display:flex;justify-content:flex-start;gap:8px;margin-top:19px}.toast{position:fixed;bottom:22px;left:22px;padding:12px 17px;background:#173d31;color:white;border-radius:10px;box-shadow:var(--shadow);z-index:20}.notice{background:#fff5df;border:1px solid #f1dfb8;color:#735018;padding:12px 14px;border-radius:9px;font-size:12px}.notice,.tabs{margin-bottom:15px}.tabs{display:flex;gap:7px;border-bottom:1px solid var(--line)}.tabs button{border:0;background:transparent;padding:10px 13px;color:var(--muted);border-bottom:2px solid transparent}.tabs button.active{border-color:var(--green);color:var(--green);font-weight:600}.branch-list,.branch-row{display:grid;gap:8px}.branch-row{grid-template-columns:1fr auto auto;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.branch-access{display:grid;gap:9px;padding:12px;margin:0 0 14px;background:#f8faf9;border:1px solid var(--line);border-radius:9px}.branch-access label{display:flex;align-items:center;gap:8px;font-size:12px}.branch-card{display:flex;align-items:center;gap:12px}.branch-card h3{margin:0 0 5px}.branch-symbol{width:38px;height:38px;border-radius:11px;background:var(--mint);color:var(--green);display:grid;place-items:center;font-size:20px}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.setting-card{padding:18px}.setting-card h3{margin:0 0 7px;font-size:14px}.setting-card p{margin:0 0 12px;color:var(--muted);font-size:12px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(ellipse at 15% 10%,#e2f1e9,transparent 40%),var(--bg)}.login-card{width:min(420px,100%);background:#fff;padding:34px;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.login-card .brand{padding:0;margin-bottom:25px}.login-card h1{font-size:22px;margin:0 0 6px}.login-card>p{color:var(--muted);margin:0 0 22px}.login-card form{display:grid;gap:14px}.login-card .btn{margin-top:6px}.login-hint{margin-top:15px;background:#f4f8f5;border-radius:8px;padding:11px;color:var(--muted);font-size:11px;line-height:1.8}.loading{padding:60px;text-align:center;color:var(--muted)}@media(max-width:1050px){.app{grid-template-columns:210px 1fr}.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.content{padding:24px}}@media(max-width:700px){.app{display:block}.sidebar{position:sticky;top:0;z-index:5;padding:10px 12px;border-left:0;border-bottom:1px solid var(--line);gap:8px}.brand{padding:0 4px}.brand-icon{width:34px;height:34px}.nav{display:flex;flex-wrap:wrap;overflow:visible}.nav-group{flex:1 0 100%}.nav-submenu{margin-right:20px}.nav-title,.side-bottom{display:none}.nav button{white-space:nowrap;padding:8px 10px;font-size:12px}.nav-icon{display:none}.topbar{height:54px;padding:0 16px}.content{padding:20px 14px}.heading h1{font-size:20px}.stats{gap:9px}.stat{padding:13px}.stat-value{font-size:22px}.stat-note{font-size:10px}.top-actions .today{display:none}.form-grid,.settings-grid{grid-template-columns:1fr}.search{min-width:100%}}.brand-logo{display:inline-grid;place-items:center;flex:0 0 auto;width:40px;height:40px;background:linear-gradient(145deg,#0b8a68,var(--green-dark));color:#fff;border-radius:13px;box-shadow:0 5px 12px rgba(8,121,93,.16)}.brand-logo svg{width:23px;height:23px}.brand-logo-large{width:68px;height:68px;border-radius:22px;box-shadow:0 9px 20px rgba(8,121,93,.2)}.brand-logo-large svg{width:40px;height:40px}.brand-logo-small{width:19px;height:19px;border-radius:7px;box-shadow:none}.brand-logo-small svg{width:12px;height:12px}.login-brand{display:grid;justify-items:center;gap:9px;margin:0 0 25px;text-align:center}.login-brand-name{font-size:22px;font-weight:700;letter-spacing:.1px}.login-card h1{margin:0 0 8px;text-align:center}.login-system-name{display:flex;align-items:center;justify-content:center;gap:7px;margin:0 0 9px;color:var(--muted);font-size:12px;font-weight:600}.login-card>p{text-align:center}.leaves-content{padding-top:21px}.leaves-content .heading{margin-bottom:11px}.leaves-page .panel-head{margin-bottom:8px}.leaves-page .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:8px}.leaves-page .stat{padding:12px 14px}.leaves-page .stat-value{margin-top:5px}.leaves-page .annual-leave-note,.leaves-page .toolbar{margin-bottom:8px}.leaves-page .panel{padding:12px}.leaves-page td,.leaves-page th{padding:8px 7px}.employee-records .records-filters{display:flex;flex-wrap:wrap;gap:8px}.employee-records .records-add{margin-inline-start:auto}.records-summary{gap:12px;flex-wrap:wrap;font-size:12px}.employee-records .record-reason{white-space:pre-wrap;min-width:180px;max-width:350px;overflow-wrap:anywhere;line-height:1.7}.employee-record-dialog{border:0;max-height:90vh;overflow:auto;color:var(--ink)}.employee-record-dialog::backdrop{background:#12241d66}.records-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.records-dialog-head h2{margin:0}.records-fieldset{border:0;padding:0;margin:0;min-width:0}.records-full{grid-column:1/-1}.employee-record-dialog input[readonly]{background:#f5f8f6;color:var(--muted);cursor:default}.employee-record-dialog textarea{resize:none}.record-error{color:var(--red);font-size:12px;line-height:1.7}.employee-record-dialog button:disabled,.employee-records button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:700px){.employee-records .records-add{margin-inline-start:0}.employee-records .records-toolbar{align-items:stretch}.employee-records .records-filters{width:100%}.employee-records .records-filters .field{flex:1 1;min-width:0}}.report-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.report-card{min-height:155px;display:flex;flex-direction:column}.report-card h2{font:inherit;margin:0;color:var(--muted)}.report-card .stat-value{margin-top:9px}.report-card-bottom{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.report-card .btn:disabled{opacity:.5;cursor:wait}.report-export-dialog{border:0;color:var(--ink);max-height:90vh;overflow:auto}.report-export-dialog::backdrop{background:#12241d66}.report-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.report-dialog-head h2{margin:0 0 5px;font-size:18px}.report-scope-options{padding:0;margin:0;border:0;display:grid;gap:15px;min-width:0}.report-scope-options>label{display:flex;align-items:center;gap:9px}.report-scope-options input{accent-color:var(--green)}.report-export-note{margin:16px 0 0;line-height:1.8}.report-export-error{color:var(--red);font-size:12px}.report-export-dialog button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.report-cards{grid-template-columns:1fr;gap:12px}.report-card{min-height:145px}}