@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{--g:#173c2f;--g2:#2d6548;--gold:#d8a84e;--ink:#1b3026;--muted:#7a887f;--line:#e5ebe6;--bg:#f6f8f6}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:14px "DM Sans",sans-serif;background:#fff}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #8cb99a;outline-offset:2px}.hidden{display:none!important}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,6vw,90px);border-bottom:1px solid #edf1ed;position:sticky;top:0;background:#ffffffed;backdrop-filter:blur(12px);z-index:20}.brand{display:flex;align-items:center;gap:10px}.brand>span:last-child{display:grid;gap:2px}.brand b{font:800 18px Manrope}.brand small{font-size:10px;color:var(--muted)}.mark{width:41px;height:41px;background:var(--g);color:white;border-radius:12px;display:grid;place-items:center;font:800 23px Manrope;position:relative}.mark:after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--gold);right:6px;bottom:6px;border:2px solid var(--g)}nav{display:flex;align-items:center;gap:28px;color:#617067;font-size:12px;font-weight:700}nav a:hover{color:var(--g)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:11px 15px;background:#fff;color:var(--g);font-size:12px;font-weight:700}.btn.primary{background:var(--g);border-color:var(--g);color:#fff;box-shadow:0 5px 15px #173c2f18}.btn.primary:hover{background:#24533e}.btn.secondary{background:#fff}.btn.big{padding:14px 18px}.btn.full{width:100%;margin-top:14px}.mobile{display:none;background:white;border:1px solid var(--line);border-radius:8px;padding:8px 11px;color:var(--g)}.hero{max-width:1260px;margin:auto;padding:80px 45px 92px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:35px;min-height:550px}.eyebrow{font-size:10px;letter-spacing:1.3px;font-weight:800;color:#688473}.hero h1{font:800 clamp(38px,4.5vw,61px)/1.12 Manrope;letter-spacing:-2.5px;margin:22px 0 18px}.hero h1 em{font-style:normal;color:#4f7964}.lead{max-width:470px;font-size:15px;line-height:1.8;color:var(--muted);margin-bottom:25px}.actions{display:flex;gap:10px;flex-wrap:wrap}.proof{font-size:10px;color:#87948b;margin-top:25px}.art{min-height:400px;display:grid;place-items:center;position:relative;background:radial-gradient(ellipse,#f1f6f2 0%,#fff 69%)}.mock{width:min(100%,395px);padding:22px;background:#fff;border:1px solid #e4ebe6;border-radius:17px;box-shadow:0 25px 65px #173c2f1a;transform:rotate(-2deg);z-index:2}.mock-head{display:flex;align-items:center;gap:10px}.mock-head>div{display:grid;gap:4px}.mock-head b{font-size:12px}.mock-head small{font-size:9px;color:#8c988f}.avatar{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#f4e7ce;color:#876324;font-size:11px;font-weight:800}.mock-head .avatar{margin-left:auto}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:20px}.mini-grid>div{border:1px solid #eaf0eb;border-radius:9px;padding:12px;display:grid;gap:8px}.mini-grid small{font-size:9px;color:#87958b}.mini-grid b{font:700 13px Manrope}.mini-grid i{height:4px;width:85%;border-radius:5px;background:#dcebe0}.mini-grid i.gold{background:#f0dfbd;width:60%}.chart{border:1px solid #eaf0eb;border-radius:9px;margin-top:11px;padding:13px}.chart b{font-size:10px}.bars{height:90px;display:flex;align-items:end;gap:8px;padding:10px 3px}.bars i{height:47%;flex:1;background:#a8c8b2;border-radius:4px 4px 0 0}.bars i:nth-child(2n){height:76%;background:#4e8063}.bars i:nth-child(3n){height:60%}.bars i:nth-child(4n){height:88%;background:#d9b76d}.chart small{font-size:8px;color:#9aa59d}.mock-line{height:6px;width:48%;background:#dce5df;border-radius:5px;margin-top:15px}.mock-line.short{width:29%;margin-top:9px}.float{position:absolute;z-index:3;background:#fff;border:1px solid #e8eee9;border-radius:12px;padding:13px;box-shadow:0 10px 30px #173c2f12;font-size:11px}.float small{display:block;color:#8a958d;font-size:9px;margin:4px 0 0 23px}.float.top{top:45px;left:0}.float.bottom{bottom:34px;right:0}.features{padding:78px clamp(20px,6vw,90px) 85px;background:#f7f9f7}.section-title{text-align:center;max-width:620px;margin:0 auto 37px}.section-title h2,.how h2{font:800 clamp(28px,3.3vw,40px)/1.2 Manrope;letter-spacing:-1.2px;margin:14px 0}.section-title p,.how>div>p{font-size:13px;line-height:1.8;color:var(--muted)}.feature-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.feature-grid article{background:#fff;border:1px solid #e8eee9;border-radius:13px;padding:23px;min-height:175px}.feature-grid i{font-style:normal;display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#e7f1e9;color:#386e4c;font-size:21px;margin-bottom:18px}.feature-grid article:nth-child(3n+2) i{background:#f8efdf;color:#9a742e}.feature-grid article:nth-child(3n) i{background:#e8f0f7;color:#477296}.feature-grid h3{font:700 14px Manrope;margin:0 0 8px}.feature-grid p{font-size:11px;line-height:1.75;color:#7e8b82;margin:0}.how{max-width:1100px;margin:auto;padding:85px 30px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.how>div>p{max-width:420px;margin-bottom:22px}.steps p{display:flex;gap:19px;padding:19px 0;border-bottom:1px solid var(--line);margin:0}.steps p:first-child{border-top:1px solid var(--line)}.steps p>b{color:#91aa98;font:800 13px Manrope}.steps span{display:grid;gap:7px}.steps strong{font-size:13px}.steps small{font-size:11px;color:#859188}.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #edf0ed;padding:23px clamp(20px,6vw,90px);font-size:10px;color:#859188}.footer .mark{width:32px;height:32px;border-radius:9px;font-size:18px}.footer .brand b{font-size:14px}.footer .brand small{font-size:8px}
.backdrop{position:fixed;inset:0;z-index:100;background:#0f2119a8;backdrop-filter:blur(4px);display:grid;place-items:center;padding:18px}.modal{position:relative;width:min(100%,440px);max-height:92vh;overflow:auto;padding:33px;background:#fff;border-radius:18px;box-shadow:0 20px 60px #142d2060}.modal.wide{width:min(100%,640px)}.close{position:absolute;right:14px;top:13px;border:1px solid var(--line);background:white;border-radius:8px;width:32px;height:32px;font-size:21px;color:#78867d}.modal-brand{margin-bottom:28px}.modal h2{font:800 25px Manrope;letter-spacing:-.7px;margin:10px 0}.muted{font-size:12px;line-height:1.7;color:#829087}.modal form{display:grid;gap:9px;margin-top:20px}.modal label{font-size:11px;font-weight:700;color:#526157;margin-top:6px}.modal input,.modal select{width:100%;border:1px solid #dfe7e1;border-radius:8px;padding:12px;font-size:12px;background:white}.fine{font-size:10px;color:#89958d;text-align:center;margin:20px 0 0}.error{background:#fff0ef;color:#9b3c37;padding:10px;border-radius:8px;font-size:11px;line-height:1.6}#toasts{position:fixed;right:18px;top:90px;z-index:150;display:grid;gap:8px;max-width:360px}.toast{background:var(--g);color:white;border-radius:9px;padding:12px 15px;font-size:12px;box-shadow:0 10px 30px #173c2f25}.toast.error{background:#8f3935}
.portal{min-height:calc(100vh - 78px);display:grid;grid-template-columns:235px minmax(0,1fr);background:var(--bg)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:25px 14px 16px;display:flex;flex-direction:column}.side-label{font-size:9px;letter-spacing:1.2px;font-weight:800;color:#9aa69d;padding:13px 12px 9px}.side{border:0;background:transparent;text-align:left;border-radius:8px;padding:12px;color:#637168;font-size:12px;font-weight:600;margin:2px 0}.side:hover,.side.active{background:#eaf2ec;color:var(--g)}.sidebar-bottom{margin-top:auto;background:#f6f8f6;padding:15px;border-radius:10px}.sidebar-bottom b{font-size:11px}.sidebar-bottom p{font-size:10px;line-height:1.6;color:#849087}.sidebar-bottom small{font-size:8px;color:#9aa49c;letter-spacing:.6px}.sidebar-bottom small span{color:#4d8a60}.workspace{min-width:0}.workbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:12px}.crumb{font-size:11px;color:#98a39b}.crumb b{color:#3e5144}.profile{display:flex;align-items:center;gap:9px;position:relative}.profile>span:nth-child(2){display:grid;gap:3px}.profile b{font-size:11px}.profile small{font-size:9px;color:#879389}.profile button:not(.btn){border:0;background:transparent;color:#718078}.content{padding:28px;max-width:1600px;margin:auto}.view{display:none}.view.active{display:block}.page-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:23px}.page-title h1{font:800 26px Manrope;letter-spacing:-.8px;margin:8px 0 6px}.page-title p{font-size:11px;color:#849087;margin:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:17px}.stats article,.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.stats small,.stats span{display:block;color:#859188;font-size:10px}.stats b{display:block;font:800 22px Manrope;margin:12px 0 4px}.dashboard-cards{display:grid;grid-template-columns:1.2fr .8fr;gap:15px}.panel h2{font:800 16px Manrope;margin:7px 0 10px}.panel>p{font-size:11px;line-height:1.7;color:#849087}.quick{display:grid;gap:7px;margin-top:16px}.quick button{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #e8eee9;background:white;border-radius:9px;padding:11px;color:#467052}.quick button:hover{background:#f9fcf9}.quick span{display:grid;gap:4px;flex:1}.quick b{font-size:11px;color:#26392d}.quick small{font-size:10px;color:#89958d}.notice{padding:12px;border-radius:9px;background:#edf5ef;color:#426a4d;font-size:11px;line-height:1.6;margin:17px 0}.notice.error{background:#fff0ef;color:#9d3d38}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}.toolbar>div{display:flex;gap:8px;flex-wrap:wrap}.search,.filter{height:38px;border:1px solid #dfe7e1;border-radius:8px;background:white;padding:0 11px;font-size:11px;min-width:150px}.filter{min-width:120px}.table-panel{padding:0;overflow:hidden}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:600px}th{background:#f8faf8;text-align:left;padding:13px 15px;font-size:9px;letter-spacing:.6px;text-transform:uppercase;color:#87948b;white-space:nowrap}td{padding:13px 15px;border-top:1px solid #edf1ed;font-size:11px;color:#536157}td strong{color:#26392d;font-size:11px}td small{display:block;color:#96a098;font-size:9px;margin-top:4px}.badge{display:inline-block;padding:5px 8px;border-radius:20px;background:#eef3ef;color:#536b59;font-size:9px}.badge.active{background:#e6f4e8;color:#397449}.badge.inactive{background:#f4f0e5;color:#927536}.badge.suspended{background:#f9e9e7;color:#a34c46}.table-actions{display:flex;gap:5px}.table-actions button{border:1px solid var(--line);border-radius:6px;background:#fff;color:#42684e;padding:6px 8px;font-size:10px}.table-actions .danger{color:#a24a44}.empty{padding:38px 20px;text-align:center;color:#89958d;font-size:12px;line-height:1.7}.pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-top:1px solid var(--line);font-size:10px;color:#89958d}.pagination button{border:1px solid var(--line);border-radius:6px;padding:7px 9px;background:white;color:#4c6c55;font-size:10px}.pagination button:disabled{opacity:.4}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:7px}.field label{font-size:10px;font-weight:700}.field input,.field select{padding:11px;border:1px solid var(--line);border-radius:8px;width:100%}.field.full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.module-note{font-size:10px;color:#929d95;line-height:1.7}
@media(max-width:900px){.hero{padding:60px 25px;gap:15px}.hero h1{font-size:46px}.portal{grid-template-columns:205px minmax(0,1fr)}.content{padding:20px}.dashboard-cards{grid-template-columns:1fr}.how{gap:35px}}
@media(max-width:700px){.topbar{height:68px;padding:0 18px}.mobile{display:block}nav{display:none;position:absolute;top:67px;left:0;right:0;background:#fff;padding:18px;box-shadow:0 12px 20px #173c2f10;align-items:stretch;flex-direction:column;gap:16px}nav.open{display:flex}.hero{grid-template-columns:1fr;padding:50px 22px 60px}.hero h1{font-size:clamp(38px,9vw,52px)}.art{min-height:340px}.mock{padding:17px}.float.top{top:17px;left:0}.float.bottom{bottom:16px;right:0}.features{padding:60px 18px}.feature-grid{grid-template-columns:1fr 1fr;gap:10px}.feature-grid article{padding:17px;min-height:155px}.how{grid-template-columns:1fr;padding:60px 22px;gap:25px}.footer{flex-wrap:wrap}.footer>span:nth-child(2){display:none}.portal{display:block;min-height:calc(100vh - 68px)}.sidebar{display:none;position:fixed;z-index:30;top:68px;bottom:0;left:0;width:245px;box-shadow:12px 0 30px #173c2f20;overflow:auto}.sidebar.open{display:flex}.workbar{height:60px;padding:0 13px}.profile>span:nth-child(2){display:none}.content{padding:20px 13px}.page-title{align-items:flex-start}.page-title h1{font-size:22px}.page-title>.btn{font-size:10px;padding:9px}.stats{grid-template-columns:1fr 1fr;gap:9px}.stats article{padding:13px}.stats article:last-child{grid-column:1/-1}.dashboard-cards{grid-template-columns:1fr}.toolbar{align-items:stretch}.toolbar>div{width:100%}.search{flex:1;min-width:90px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.modal{padding:27px 21px}.footer{padding:20px}.footer .brand b{font-size:14px}}
@media(max-width:420px){.feature-grid{grid-template-columns:1fr}.feature-grid article{min-height:auto}.feature-grid i{margin-bottom:12px}.hero h1{letter-spacing:-1.7px}.page-title{flex-direction:column}.page-title>.btn{align-self:flex-start}.profile .avatar{width:29px;height:29px}.crumb{font-size:10px}}

/* Role-aware full workspace modules */
.side-ico{display:inline-block;min-width:24px;font-size:14px}
.title-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.filter-pair{display:grid;gap:4px;min-width:120px}
.filter-pair span{font-size:9px;color:#89958d;font-weight:700}
.filter-pair input{height:38px;border:1px solid #dfe7e1;border-radius:8px;background:#fff;padding:0 11px;font-size:11px;min-width:120px;max-width:180px}
.role-pill{background:#eaf2ec;color:var(--g);border-radius:40px;padding:9px 13px;font-size:10px;font-weight:800;white-space:nowrap}
.role-workspace{margin-bottom:15px}
.role-workspace>div:first-child{max-width:720px}
.role-workspace h2{font-size:19px}
.role-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:20px}
.role-card{display:flex;align-items:center;text-align:left;gap:12px;border:1px solid #e7ede8;border-radius:10px;padding:12px;background:#fff;color:var(--ink);min-width:0}
.role-card:hover{background:#f7faf7;border-color:#c8d8cc}
.role-card-icon{width:34px;height:34px;display:grid;place-items:center;background:#eef4ef;border-radius:9px;color:var(--g);font-weight:800;flex-shrink:0}
.role-card>span:nth-child(2){display:grid;gap:5px;flex:1;min-width:0}
.role-card b{font-size:11px}
.role-card small{font-size:10px;color:#859188}
.role-card .arrow{color:#7a9582}
.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;padding:16px}
.summary-grid article{border:1px solid var(--line);border-radius:10px;background:#fff;padding:14px;min-width:0}
.summary-grid small{display:block;color:#87948b;font-size:10px;text-transform:capitalize;margin-bottom:8px}
.summary-grid b{display:block;font:700 16px Manrope;overflow-wrap:anywhere}
.required{color:#b34e43;font-style:normal;margin-left:3px}
.field textarea,.modal textarea{width:100%;border:1px solid #dfe7e1;border-radius:8px;padding:11px;font:12px "DM Sans",sans-serif;resize:vertical;min-height:80px}
.field input[type="checkbox"]{width:auto;accent-color:var(--g)}
.check-field{display:flex!important;align-items:center;gap:8px;margin-top:0!important}
.check-field span{font-size:11px;font-weight:600}
.field input[type="time"],.field input[type="date"],.field input[type="number"]{min-width:0}
.table-actions{flex-wrap:wrap}
.table-actions button{white-space:nowrap}
.attendance-control{margin-bottom:14px}
.attendance-control .form-grid{align-items:end}
.attendance-table select,.attendance-table input{border:1px solid #dfe7e1;border-radius:6px;padding:7px;font-size:11px;max-width:175px}
.attendance-table td{vertical-align:middle}
.attendance-table .pagination{gap:12px}
.attendance-table .pagination button:disabled{opacity:.45}
.role-workspace .role-cards{margin-top:15px}
@media(max-width:900px){.role-cards{grid-template-columns:1fr}.title-actions{justify-content:flex-start}.page-title{align-items:flex-start}}
@media(max-width:700px){
 .title-actions{width:100%}.title-actions .btn{flex:1}.page-title{flex-direction:column}
 .role-card{padding:10px}.role-pill{align-self:flex-start}
 .filter-pair input{max-width:none}.toolbar>div{width:100%}.search{flex:1;min-width:150px}
 .modal.wide{padding:23px}.form-grid{grid-template-columns:1fr}
 .attendance-table .pagination{align-items:flex-start;flex-direction:column}
}
