:root{--bg:#f5f6fa;--surface:#fff;--surface-2:#f8f8fb;--text:#1d1d2e;--muted:#737386;--line:#e7e7ee;--primary:#6757f5;--primary-2:#5141df;--green:#1eaa88;--red:#d94c57;--amber:#e99a2c;--sidebar:#17172a;--shadow:0 18px 50px rgba(31,29,55,.08);--radius:18px}
[data-theme=dark]{--bg:#101018;--surface:#181821;--surface-2:#20202b;--text:#f1f1f6;--muted:#a3a3b3;--line:#2c2c39;--primary:#887cff;--primary-2:#786bf4;--sidebar:#0b0b12;--shadow:0 18px 50px rgba(0,0,0,.25)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,'Segoe UI',Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%}.brand{display:flex;align-items:center;gap:11px;color:#fff;font-family:Inter,'Segoe UI',Arial,sans-serif;font-size:20px;font-weight:800}.brand img{width:36px;height:36px}.brand.dark-text{color:var(--text)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:1px solid transparent;border-radius:12px;font-weight:700;transition:.2s;background:none;color:var(--text)}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-2)}.btn.secondary,.btn.ghost{border-color:var(--line);background:var(--surface)}.btn.light{background:#fff;color:#29253f}.btn.small{min-height:38px;padding:0 13px;font-size:13px}.btn.wide{width:100%}.icon-btn{width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-weight:800;font-size:12px;color:var(--primary)}
/* landing */.landing-body{background:var(--surface)}.landing-header{height:78px;max-width:1220px;margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.landing-header nav{display:flex;gap:30px;color:var(--muted);font-weight:600}.header-actions{display:flex;gap:10px;align-items:center}.hero{max-width:1220px;margin:auto;padding:70px 24px 85px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:50px}.hero-copy h1{font-family:Inter,'Segoe UI',Arial,sans-serif;font-size:clamp(44px,6vw,76px);line-height:1.04;letter-spacing:-.055em;margin:18px 0 22px}.hero-copy>p{font-size:19px;line-height:1.75;color:var(--muted);max-width:650px}.hero-actions{display:flex;gap:12px;margin:32px 0 42px}.hero-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid var(--line);padding-top:25px}.hero-metrics strong,.hero-metrics span{display:block}.hero-metrics span{font-size:13px;color:var(--muted);margin-top:5px}.hero-visual img{filter:drop-shadow(0 30px 45px rgba(71,58,130,.16))}.section{max-width:1220px;margin:auto;padding:90px 24px}.section-head{text-align:center;max-width:680px;margin:0 auto 50px}.section h2{font-family:Inter,'Segoe UI',Arial,sans-serif;font-size:clamp(32px,4vw,48px);letter-spacing:-.04em;margin:13px 0}.section-head p,.split-section>div>p,.security-banner>p{color:var(--muted);line-height:1.75}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-grid article{padding:30px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:.2s}.feature-grid article:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.feature-grid article>span{color:var(--primary);font-weight:800}.feature-grid h3{font-family:Inter,'Segoe UI',Arial,sans-serif;font-size:21px;margin:25px 0 10px}.feature-grid p{color:var(--muted);line-height:1.65;margin:0}.split-section{display:grid;grid-template-columns:1fr 420px;gap:70px;align-items:center}.steps{list-style:none;padding:0;margin:32px 0 0;display:grid;gap:20px}.steps li{display:flex;align-items:center;gap:15px}.steps b{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--surface-2);color:var(--primary)}.demo-login-card{padding:34px;border-radius:24px;background:var(--sidebar);color:#fff;box-shadow:var(--shadow)}.demo-login-card h3{font:700 28px Inter,'Segoe UI',Arial,sans-serif;margin:10px 0 25px}.demo-login-card>div{padding:16px 0;border-top:1px solid rgba(255,255,255,.12)}.demo-login-card strong,.demo-login-card code{display:block}.demo-login-card code{margin-top:6px;color:#c8c5e6}.demo-login-card .btn{margin-top:22px}.security-banner{max-width:1172px;background:linear-gradient(135deg,#6757f5,#2f9987);color:#fff;border-radius:28px;display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-bottom:90px}.security-banner .eyebrow,.security-banner p{color:#fff}.landing-footer{max-width:1220px;margin:auto;padding:35px 24px 50px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:end}.landing-footer p,.landing-footer div:last-child{color:var(--muted);font-size:14px}.landing-footer div:last-child{display:flex;gap:20px}
/* auth/install/legal */.auth-body{min-height:100vh;background:var(--surface)}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,46%) 1fr}.auth-side{background:linear-gradient(145deg,#17172a 20%,#3a3277);color:#fff;padding:50px clamp(40px,7vw,100px);display:flex;flex-direction:column;justify-content:space-between}.auth-side h1{font:800 clamp(40px,5vw,68px)/1.08 Inter,'Segoe UI',Arial,sans-serif;margin:18px 0}.auth-side p{font-size:18px;line-height:1.7;color:#d0cde7}.auth-side .eyebrow{color:#a99fff}.auth-quote{padding-top:20px;border-top:1px solid rgba(255,255,255,.15);color:#c9c6dd}.auth-card{width:min(470px,calc(100% - 40px));margin:auto;padding:50px}.auth-head h2{font:800 34px Inter,'Segoe UI',Arial,sans-serif;margin:0}.auth-head p{color:var(--muted);margin-bottom:30px}.stack-form{display:grid;gap:17px}.stack-form label,.form-grid label{display:grid;gap:8px;font-weight:600;font-size:14px}.stack-form input,.stack-form select,.stack-form textarea,.form-grid input,.form-grid select,.form-grid textarea,.table-tools input,.table-tools select,.panel-head input{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:11px;min-height:44px;padding:10px 12px;outline:none}.stack-form input:focus,.form-grid input:focus,.stack-form select:focus,.form-grid select:focus,.stack-form textarea:focus,.form-grid textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(103,87,245,.12)}.divider{height:1px;background:var(--line);margin:32px 0;position:relative}.divider span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--surface);padding:0 12px;color:var(--muted);font-size:12px}.demo-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.demo-buttons button{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:10px;padding:10px 6px;font-size:12px;font-weight:700}.auth-note{text-align:center;color:var(--muted);font-size:13px}.installer-body,.legal-body{min-height:100vh;padding:45px 20px;background:linear-gradient(145deg,var(--bg),#ece9ff)}.installer-card,.legal-card{max-width:760px;margin:auto;background:var(--surface);padding:40px;border-radius:26px;box-shadow:var(--shadow)}.installer-card>h1,.legal-card h1{font:800 38px Inter,'Segoe UI',Arial,sans-serif;margin:30px 0 10px}.installer-card>p,.legal-card p{color:var(--muted);line-height:1.7}.install-form{margin-top:30px}.install-success{text-align:center;padding-top:30px}.success-mark{width:72px;height:72px;margin:auto;border-radius:50%;display:grid;place-items:center;background:#dff7ef;color:var(--green);font-size:36px}.demo-box{display:grid;gap:7px;text-align:left;background:var(--surface-2);padding:20px;border-radius:14px;margin:25px 0}.legal-card h2{font:700 22px Inter,'Segoe UI',Arial,sans-serif;margin-top:30px}
/* app */.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--sidebar);padding:26px 18px;display:flex;flex-direction:column;z-index:20}.sidebar .brand{padding:0 10px 26px}.side-nav{display:grid;gap:5px}.side-nav a{display:flex;align-items:center;gap:12px;color:#aaa8bd;padding:10px 12px;border-radius:10px;font-weight:600;font-size:14px}.side-nav a:hover,.side-nav a.active{background:rgba(255,255,255,.09);color:#fff}.nav-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:rgba(255,255,255,.08);font-size:11px}.side-nav a.active .nav-icon{background:var(--primary);color:#fff}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:20px 10px 0;color:#aaa8bd}.sidebar-foot small,.sidebar-foot strong{display:block}.sidebar-foot strong{color:#fff;margin-top:5px}.main-area{min-width:0}.topbar{height:86px;padding:0 32px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:15}.topbar-left{display:flex;align-items:center;gap:12px}.topbar h1{font:800 23px Inter,'Segoe UI',Arial,sans-serif;margin:0}.topbar p{font-size:12px;color:var(--muted);margin:4px 0 0}.top-actions{display:flex;gap:10px;align-items:center}.avatar,.large-avatar{display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--green));color:#fff;font-weight:800}.avatar{width:42px;height:42px;border-radius:13px}.content{padding:30px;max-width:1550px;margin:auto}.app-footer{text-align:center;color:var(--muted);font-size:12px;padding:10px 30px 30px}.welcome-banner,.clock-card{background:linear-gradient(135deg,#6757f5,#4d3fcb 55%,#2ba98e);color:#fff;border-radius:22px;padding:28px 30px;display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;overflow:hidden;position:relative}.welcome-banner:after,.clock-card:after{content:"";position:absolute;width:220px;height:220px;border:35px solid rgba(255,255,255,.08);border-radius:50%;right:110px;top:-90px}.welcome-banner .eyebrow,.clock-card .eyebrow{color:#dcd8ff}.welcome-banner h2,.clock-card h2{font:800 30px Inter,'Segoe UI',Arial,sans-serif;margin:8px 0}.welcome-banner p,.clock-card p{margin:0;color:#e9e7ff}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}.stat-grid.three{grid-template-columns:repeat(3,1fr)}.stat-grid article,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 6px 24px rgba(31,29,55,.03)}.stat-grid article{padding:22px}.stat-grid span,.stat-grid strong,.stat-grid small{display:block}.stat-grid span{color:var(--muted);font-size:13px}.stat-grid strong{font:800 27px Inter,'Segoe UI',Arial,sans-serif;margin:11px 0}.stat-grid small{color:var(--muted)}.panel{padding:22px;margin-bottom:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.panel-head h2{font:800 19px Inter,'Segoe UI',Arial,sans-serif;margin:0}.panel-head p{color:var(--muted);font-size:13px;margin:5px 0 0}.panel-head>a{color:var(--primary);font-size:13px;font-weight:700}.dashboard-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:22px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}th[data-sort]{cursor:pointer}td strong,td small{display:block}td small{color:var(--muted);font-size:12px;margin-top:3px}.empty{text-align:center;color:var(--muted);padding:35px}.badge{display:inline-flex!important;align-items:center;width:max-content;padding:5px 9px;border-radius:20px;background:var(--surface-2);color:var(--muted);font-size:11px!important;font-weight:800}.badge.present,.badge.approved,.badge.active,.badge.paid{background:#e1f7f0;color:#168a70}.badge.late,.badge.pending,.badge.processed,.badge.on-leave{background:#fff0d7;color:#ae6b10}.badge.absent,.badge.rejected,.badge.inactive{background:#ffe5e8;color:#b73743}.badge.remote,.badge.draft,.badge.role{background:#ece9ff;color:#5b4be0}.bars{display:grid;gap:18px}.bars span{display:flex;justify-content:space-between;font-size:13px}.bars i{display:block;height:8px;background:var(--surface-2);border-radius:10px;margin-top:8px;overflow:hidden}.bars i:after{content:"";display:block;width:var(--w);height:100%;background:linear-gradient(90deg,var(--primary),var(--green));border-radius:10px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quick-grid a{padding:18px;border:1px solid var(--line);border-radius:14px}.quick-grid b,.quick-grid span{display:block}.quick-grid span{font-size:12px;color:var(--muted);margin-top:5px}.detail-list{margin:0}.detail-list div{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;font-weight:600}.alert{padding:13px 16px;border-radius:12px;margin-bottom:18px;border:1px solid}.alert.success{background:#e9faf5;color:#16775f;border-color:#c3efdf}.alert.error{background:#fff0f1;color:#ad3340;border-color:#ffd1d6}.table-tools{display:flex;gap:10px;margin-bottom:12px}.table-tools input{max-width:260px}.table-tools select{max-width:180px}.pagination{display:flex;justify-content:flex-end;gap:6px;margin-top:15px}.pagination button{width:34px;height:34px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:9px}.pagination button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.person-cell{display:flex;align-items:center;gap:11px;min-width:230px}.person-cell>img,.person-cell>span{width:38px;height:38px;border-radius:11px;object-fit:cover}.person-cell>span{display:grid;place-items:center;background:#ece9ff;color:#5d4ce4;font-weight:800}.row-actions{display:flex;gap:10px}.row-actions a,.row-actions button,.table-link{border:0;background:none;color:var(--primary);padding:0;font-weight:700;font-size:12px}.row-actions button,.text-danger{color:var(--red);border:0;background:none}.form-panel{max-width:980px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.form-grid .span-2{grid-column:span 2}.form-grid label small{font-weight:400;color:var(--muted)}.form-actions{display:flex;justify-content:flex-end;margin-top:22px}.department-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.department-cards article{border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;justify-content:space-between;gap:12px}.department-cards article>div>span{font-size:11px;color:var(--primary);font-weight:800}.department-cards h3{margin:5px 0}.department-cards p,.department-cards small{color:var(--muted);font-size:12px}.departments-layout{grid-template-columns:360px 1fr}.collapsible summary{cursor:pointer;font:800 17px Inter,'Segoe UI',Arial,sans-serif}.collapsible[open] summary{margin-bottom:20px}.form-grid.compact{margin-top:10px}.clock-card h2{font-size:45px}.clock-card .btn{position:relative;z-index:1}.clock-card .btn:disabled{opacity:.65;cursor:not-allowed}.leave-layout{grid-template-columns:1fr 1fr}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.leave-balance{padding:25px;border-radius:16px;background:linear-gradient(135deg,var(--surface-2),rgba(103,87,245,.09))}.leave-balance span,.leave-balance strong{display:block}.leave-balance strong{font:800 38px Inter,'Segoe UI',Arial,sans-serif;margin:12px 0}.leave-balance p{color:var(--muted);line-height:1.6}.decision-form{display:grid;grid-template-columns:1fr auto auto;gap:5px;min-width:280px}.decision-form input{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:7px}.decision-form button{border:0;border-radius:8px;color:#fff;font-size:11px;font-weight:700}.decision-form .approve{background:var(--green)}.decision-form .reject{background:var(--red)}.users-layout{grid-template-columns:360px 1fr}.profile-layout{display:grid;grid-template-columns:300px minmax(0,650px);gap:22px}.profile-summary{text-align:center;height:max-content}.large-avatar{width:90px;height:90px;border-radius:28px;margin:0 auto 18px;font-size:28px}.profile-summary h2{margin:0}.profile-summary p{color:var(--muted)}.profile-summary .btn{margin-top:25px}.stack-form hr{width:100%;border:0;border-top:1px solid var(--line)}.stack-form h3{margin:0}.form-help{color:var(--muted);font-size:13px;margin:0}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.smtp-test{grid-column:span 2;grid-template-columns:1fr 1fr auto;align-items:end}.switch-row{display:flex!important;align-items:center;justify-content:space-between}.switch-row input{width:20px;height:20px}.mobile-only{display:none}
@media(max-width:1050px){.hero{grid-template-columns:1fr}.hero-visual{max-width:760px;margin:auto}.feature-grid{grid-template-columns:repeat(2,1fr)}.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.departments-layout,.users-layout{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.smtp-test{grid-column:auto;grid-template-columns:1fr}.auth-shell{grid-template-columns:1fr}.auth-side{display:none}}
@media(max-width:760px){.landing-header{height:68px}.landing-header nav{display:none}.landing-header .brand span{display:none}.hero{padding-top:45px}.hero-copy h1{font-size:43px}.hero-actions{flex-direction:column}.hero-metrics{grid-template-columns:1fr}.feature-grid,.split-section,.security-banner{grid-template-columns:1fr}.section{padding:65px 20px}.landing-footer{align-items:flex-start;gap:30px;flex-direction:column}.landing-footer div:last-child{flex-wrap:wrap}.app-shell{display:block}.sidebar{position:fixed;left:-270px;width:250px;transition:.25s}.sidebar.open{left:0}.mobile-only{display:inline-grid;place-items:center}.topbar{padding:0 16px}.content{padding:18px 14px}.welcome-banner,.clock-card{padding:23px;align-items:flex-start;gap:20px;flex-direction:column}.stat-grid,.stat-grid.three{grid-template-columns:1fr 1fr}.panel{padding:16px}.table-tools{flex-wrap:wrap}.table-tools input,.table-tools select{max-width:none;flex:1 1 180px}.form-grid,.inline-fields{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.department-cards{grid-template-columns:1fr}.profile-layout{grid-template-columns:1fr}.auth-card{padding:35px 10px}.demo-buttons{grid-template-columns:1fr}.installer-card,.legal-card{padding:25px}.hero-visual{display:none}}
@media(max-width:480px){.stat-grid,.stat-grid.three{grid-template-columns:1fr}.feature-grid{grid-template-columns:1fr}.topbar h1{font-size:19px}.topbar p{display:none}.welcome-banner h2{font-size:25px}.quick-grid{grid-template-columns:1fr}.security-banner{border-radius:0;margin-bottom:40px}.auth-head h2{font-size:28px}}
