:root{--ink:#17221b;--muted:#6d776f;--bg:#f2f5f1;--panel:#fff;--line:#e3e9e3;--brand:#1f5a3c;--brand-dark:#153d2a;--lime:#cce87a;--lime-soft:#f0f8d9;--danger:#b33a3a;--danger-soft:#fff0ed;--warning:#9a6712;--warning-soft:#fff7df;--shadow:0 14px 38px rgba(27,50,36,.08);--radius:20px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:15px}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--brand-dark);color:#fff;padding:24px 16px;display:flex;flex-direction:column;z-index:40}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px}.brand-mark{width:46px;height:46px;border-radius:14px;background:#fff;display:grid;place-items:center;overflow:hidden}.brand-mark img{width:100%;height:100%;object-fit:cover}.brand strong{display:block;font-family:Manrope,sans-serif;font-size:17px}.brand small,.sidebar-footer small{display:block;color:#aebfb5;font-size:11px;margin-top:2px}.nav-list{display:grid;gap:6px}.nav-list a{height:48px;padding:0 13px;display:flex;align-items:center;gap:13px;border-radius:12px;color:#c9d5ce;font-weight:600;transition:.2s}.nav-list a:hover,.nav-list a.active{background:rgba(255,255,255,.1);color:#fff}.nav-list a.active{box-shadow:inset 3px 0 var(--lime)}.nav-icon{display:grid;place-items:center;width:24px;font-size:21px}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:16px}.sidebar-footer a{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px}.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--lime);color:var(--brand-dark);font-weight:800}.sidebar-footer strong{display:block;font-size:13px}.main-wrap{margin-left:250px;min-height:100vh}.topbar{height:92px;padding:17px clamp(20px,4vw,48px);display:flex;align-items:center;justify-content:space-between;background:rgba(242,245,241,.88);backdrop-filter:blur(15px);position:sticky;top:0;z-index:20}.topbar h1{font-family:Manrope,sans-serif;font-size:25px;letter-spacing:-.6px;margin:2px 0}.eyebrow{display:none;text-transform:uppercase;letter-spacing:1.4px;font-size:10px;color:var(--muted);font-weight:800}.menu-btn{display:none;border:0;background:transparent;font-size:24px}.quick-add,.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:42px;padding:0 17px;border-radius:12px;border:1px solid transparent;font-weight:700;cursor:pointer;transition:.18s}.quick-add,.btn-primary{background:var(--brand);color:#fff;box-shadow:0 8px 18px rgba(31,90,60,.18)}.quick-add:hover,.btn-primary:hover{background:var(--brand-dark);transform:translateY(-1px)}.btn-secondary{background:#fff;border-color:var(--line);color:var(--ink)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-small{height:34px;padding:0 12px;border-radius:9px;font-size:13px}.content{padding:8px clamp(20px,4vw,48px) 70px;max-width:1600px;margin:auto}.alert{display:flex;align-items:center;gap:10px;padding:13px 15px;border-radius:13px;margin-bottom:18px;font-weight:600}.alert>span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center}.alert button{margin-left:auto;border:0;background:transparent;font-size:20px;cursor:pointer}.alert-success{background:#e3f5e9;color:#23623b}.alert-success>span{background:#c8e9d2}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-error>span{background:#ffd9d2}.hero{background:linear-gradient(125deg,#163f2b,#276a47);color:#fff;border-radius:28px;padding:clamp(24px,4vw,42px);display:grid;grid-template-columns:1.4fr .8fr;gap:25px;align-items:end;overflow:hidden;position:relative;box-shadow:var(--shadow)}.hero:after{content:'';position:absolute;width:300px;height:300px;border:70px solid rgba(204,232,122,.1);border-radius:50%;right:-100px;top:-180px}.hero h2{font:800 clamp(29px,4vw,48px)/1.05 Manrope,sans-serif;letter-spacing:-1.6px;margin:9px 0 14px;max-width:650px}.hero p{color:#cbd9d0;max-width:570px;margin:0;line-height:1.65}.hero-actions{display:flex;gap:10px;justify-content:flex-end;position:relative;z-index:2}.btn-lime{background:var(--lime);color:var(--brand-dark)}.btn-ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.2)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0 32px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:19px;display:flex;align-items:center;gap:14px}.stat-icon{width:44px;height:44px;border-radius:13px;background:var(--lime-soft);color:var(--brand);display:grid;place-items:center;font-size:20px}.stat-card strong{font:800 24px Manrope,sans-serif;display:block}.stat-card small{color:var(--muted)}.section{margin:30px 0}.section-head,.page-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.section-head h2,.section-head h3{font:800 20px Manrope,sans-serif;margin:0;letter-spacing:-.4px}.section-head p{color:var(--muted);margin:4px 0 0}.link{color:var(--brand);font-weight:700}.city-block{margin:27px 0}.city-title{display:flex;align-items:center;gap:10px;margin-bottom:13px}.city-title h2{font:800 19px Manrope,sans-serif;margin:0}.count-pill,.badge{display:inline-flex;align-items:center;justify-content:center;border-radius:99px;font-size:11px;font-weight:800;padding:5px 9px;background:#e8ede8;color:#59645c}.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.unit-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:21px;transition:.2s;position:relative;overflow:hidden}.unit-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#cad6cc}.unit-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--lime)}.unit-card-top{display:flex;justify-content:space-between;gap:12px}.unit-card h3{font:700 17px Manrope,sans-serif;margin:2px 0 8px}.unit-card p{color:var(--muted);font-size:13px;margin:0;line-height:1.5;min-height:39px}.unit-meta{display:flex;gap:16px;border-top:1px solid var(--line);margin-top:17px;padding-top:14px}.unit-meta span{font-size:12px;color:var(--muted)}.unit-meta strong{display:block;color:var(--ink);font-size:14px;margin-top:2px}.badge-active,.badge-filled{background:#e5f5e9;color:#28643d}.badge-inactive,.badge-completed{background:#ecefed;color:#66706a}.badge-vacant{background:var(--warning-soft);color:var(--warning)}.badge-site{background:#e8f3ec;color:var(--brand)}.badge-office{background:#edf0fa;color:#43508a}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 18px rgba(27,50,36,.03)}.panel-pad{padding:clamp(18px,3vw,28px)}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.search{position:relative;flex:1}.search input{padding-left:42px}.search:before{content:'⌕';position:absolute;left:15px;top:10px;font-size:20px;color:var(--muted)}.field input,.field select,.field textarea,.search input{width:100%;border:1px solid #dce4dd;background:#fbfcfb;color:var(--ink);border-radius:11px;padding:11px 13px;outline:none;transition:.2s}.field input:focus,.field select:focus,.field textarea:focus,.search input:focus{border-color:#5c8c70;box-shadow:0 0 0 3px rgba(66,125,89,.11);background:#fff}.field textarea{min-height:95px;resize:vertical}.field label{display:block;font-weight:700;font-size:13px;margin-bottom:7px}.field .help{color:var(--muted);font-size:11px;margin-top:5px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field-full{grid-column:1/-1}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--line);padding-top:20px;margin-top:4px}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:700px}.data-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;font-size:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.data-table td{padding:15px 14px;border-bottom:1px solid #eef1ee;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafcf9}.person{display:flex;align-items:center;gap:11px}.person-avatar{width:38px;height:38px;border-radius:12px;background:#e2eee6;color:var(--brand);display:grid;place-items:center;font-weight:800}.person strong{display:block}.person small,.muted{color:var(--muted)}.actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.empty-state{text-align:center;padding:55px 20px}.empty-icon{width:58px;height:58px;border-radius:18px;background:var(--lime-soft);display:grid;place-items:center;margin:0 auto 15px;font-size:28px;color:var(--brand)}.empty-state h3{font:700 19px Manrope,sans-serif;margin:0 0 7px}.empty-state p{color:var(--muted);margin:0 auto 20px;max-width:430px}.detail-hero{background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(20px,4vw,32px);display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.detail-kicker{display:flex;gap:8px;margin-bottom:12px}.detail-hero h2{font:800 clamp(24px,4vw,34px) Manrope,sans-serif;letter-spacing:-.8px;margin:0 0 8px}.detail-location{color:var(--muted);margin:0;max-width:650px;line-height:1.5}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.two-col{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:18px}.post-list{display:grid;gap:9px}.post-row{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;grid-template-columns:minmax(150px,1fr) 1.5fr auto;align-items:center;gap:14px}.post-people{display:flex;flex-wrap:wrap;gap:7px}.person-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 9px 6px 6px;background:#f3f6f3;border-radius:9px;font-size:12px}.person-chip span{width:24px;height:24px;display:grid;place-items:center;background:#dce9e0;color:var(--brand);border-radius:7px;font-weight:800}.vacancy{color:var(--warning);font-weight:700;font-size:12px}.info-list{display:grid;gap:0}.info-item{padding:14px 0;border-bottom:1px solid var(--line)}.info-item:last-child{border:0}.info-item small{display:block;color:var(--muted);margin-bottom:4px}.info-item strong{font-weight:600}.info-item a{color:var(--brand)}.requirement-form{display:grid;grid-template-columns:1fr 90px auto;gap:8px}.employee-head{display:flex;gap:18px;align-items:center}.employee-avatar{width:72px;height:72px;border-radius:21px;background:var(--lime-soft);color:var(--brand);display:grid;place-items:center;font:800 29px Manrope,sans-serif}.employee-id{font-family:monospace;background:#eff2ef;border-radius:7px;padding:4px 8px}.current-assignment{padding:20px;border-radius:17px;background:linear-gradient(130deg,#ecf5ee,#f6faec);border:1px solid #d8e6d7}.current-assignment h3{margin:0 0 5px;font:700 18px Manrope,sans-serif}.timeline{position:relative;padding-left:23px;display:grid;gap:18px}.timeline:before{content:'';position:absolute;left:5px;top:6px;bottom:10px;width:2px;background:#dbe3dc}.timeline-item{position:relative}.timeline-item:before{content:'';position:absolute;left:-22px;top:5px;width:10px;height:10px;background:var(--brand);border:3px solid #e4eee7;border-radius:50%}.timeline-item h4{margin:0 0 3px}.timeline-item p{color:var(--muted);font-size:12px;margin:0}.vacancy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.vacancy-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:15px}.vacancy-card h3{margin:0 0 5px;font:700 16px Manrope,sans-serif}.vacancy-card p{margin:0;color:var(--muted);font-size:12px}.vacancy-number{min-width:46px;height:46px;border-radius:14px;background:var(--warning-soft);color:var(--warning);display:grid;place-items:center;font:800 20px Manrope,sans-serif}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:#fff}.login-visual{background:linear-gradient(145deg,#113622,#286a47);color:#fff;padding:8vw;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-visual:after{content:'';position:absolute;width:480px;height:480px;border:100px solid rgba(204,232,122,.09);border-radius:50%;right:-260px;bottom:-230px}.login-brand{display:flex;align-items:center;gap:13px;position:relative;z-index:2}.login-brand .brand-mark{width:55px;height:55px}.login-brand strong{font:800 21px Manrope,sans-serif;display:block}.login-brand small{color:#bed0c4}.login-copy{position:relative;z-index:2}.login-copy span{color:var(--lime);text-transform:uppercase;letter-spacing:1.5px;font-weight:800;font-size:11px}.login-copy h1{font:800 clamp(36px,5vw,64px)/1.06 Manrope,sans-serif;letter-spacing:-2px;margin:13px 0 18px;max-width:600px}.login-copy p{color:#c2d2c7;font-size:17px;line-height:1.6;max-width:520px}.login-form-wrap{display:grid;place-items:center;padding:30px}.login-form{width:min(420px,100%)}.login-form h2{font:800 30px Manrope,sans-serif;margin:0 0 9px}.login-form>p{color:var(--muted);margin:0 0 30px}.login-form .field{margin-bottom:17px}.login-form .btn{width:100%;height:48px;margin-top:6px}.login-note{font-size:12px;text-align:center;color:var(--muted);margin-top:22px}.mobile-nav,.scrim{display:none}
@media(max-width:1050px){.cards-grid{grid-template-columns:repeat(2,1fr)}.stats-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.vacancy-grid{grid-template-columns:1fr}}
@media(max-width:760px){body{font-size:14px}.sidebar{transform:translateX(-100%);transition:.25s;width:275px}.sidebar.open{transform:translateX(0)}.scrim{display:block;position:fixed;inset:0;background:rgba(10,20,14,.45);z-index:35;opacity:0;visibility:hidden;transition:.25s}.scrim.show{opacity:1;visibility:visible}.main-wrap{margin-left:0}.topbar{height:76px;padding:12px 16px;gap:12px}.menu-btn{display:block}.eyebrow{display:block}.topbar h1{font-size:19px;margin:0}.quick-add span{display:none}.quick-add{width:40px;padding:0;font-size:20px}.content{padding:5px 14px 95px}.hero{grid-template-columns:1fr;padding:25px 21px;border-radius:22px}.hero h2{font-size:30px}.hero-actions{justify-content:flex-start}.stats-grid{gap:9px;margin:12px 0 25px}.stat-card{padding:13px;gap:10px}.stat-icon{width:38px;height:38px}.stat-card strong{font-size:20px}.stat-card small{font-size:10px}.cards-grid{grid-template-columns:1fr}.unit-card{padding:18px}.section{margin:23px 0}.page-actions{align-items:flex-start}.page-actions .btn span{display:none}.form-grid{grid-template-columns:1fr}.field-full,.form-actions{grid-column:1}.form-actions{position:sticky;bottom:72px;background:#fff;padding:12px 0 2px;z-index:5}.detail-hero{flex-direction:column;padding:20px}.detail-actions{justify-content:flex-start}.post-row{grid-template-columns:1fr}.post-row>.actions{justify-content:flex-start}.requirement-form{grid-template-columns:1fr 75px}.requirement-form .btn{grid-column:1/-1}.employee-head{align-items:flex-start}.employee-avatar{width:58px;height:58px;border-radius:16px}.vacancy-card{padding:15px}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;z-index:30;left:10px;right:10px;bottom:10px;height:64px;background:rgba(20,54,37,.96);backdrop-filter:blur(15px);border-radius:19px;padding:7px 8px;box-shadow:0 13px 35px rgba(15,40,27,.28);color:#aebeb4}.mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:9px;font-weight:700;border-radius:12px}.mobile-nav a span{font-size:19px}.mobile-nav a.active{background:rgba(255,255,255,.1);color:#fff}.mobile-nav .mobile-create{width:48px;height:48px;margin:1px auto 0;background:var(--lime);color:var(--brand-dark);border-radius:15px;font-size:27px;box-shadow:0 8px 16px rgba(0,0,0,.15)}.login-page{grid-template-columns:1fr}.login-visual{min-height:230px;padding:28px}.login-copy h1{font-size:34px}.login-copy p{display:none}.login-form-wrap{padding:36px 24px}.login-brand .brand-mark{width:45px;height:45px}.login-brand strong{font-size:17px}.toolbar{align-items:stretch;flex-direction:column}}
.count-form{display:flex;gap:5px}.count-form input{width:52px;border:1px solid var(--line);border-radius:9px;padding:6px}.brand-mark img{transform:scale(1.42);transform-origin:center 34%}@media(max-width:420px){.stats-grid{grid-template-columns:1fr 1fr}.stat-card{display:block}.stat-icon{margin-bottom:9px}.hero-actions{display:grid}.hero-actions .btn{width:100%}.employee-head{gap:12px}.employee-avatar{width:50px;height:50px}.detail-actions .btn{flex:1}}
