:root{--olive:#66733e;--olive-dark:#3e4925;--olive-soft:#eef1e6;--cream:#f6f5ef;--bg:#f5f6f2;--card:#fff;--text:#20251c;--muted:#788071;--line:#e2e5dc;--danger:#b54a45;--shadow:0 10px 35px rgba(37,48,25,.08);--sidebar:250px;color-scheme:light}html[data-theme=dark]{--olive:#9bab66;--olive-dark:#c0cc8d;--olive-soft:#28301e;--cream:#181b16;--bg:#121510;--card:#1b1f18;--text:#eff1e9;--muted:#a2aa99;--line:#30362b;--danger:#ef7971;--shadow:0 12px 35px rgba(0,0,0,.3);color-scheme:dark}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--text);background:var(--bg);font-size:14px}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.eyebrow{color:var(--olive);font-size:10px;font-weight:800;letter-spacing:1.7px}.btn{height:44px;border:0;border-radius:8px;padding:0 19px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:11px;font-weight:800;letter-spacing:.6px;cursor:pointer;transition:.2s}.btn-primary{background:var(--olive-dark);color:#fff;box-shadow:0 6px 15px rgba(62,73,37,.18)}html[data-theme=dark] .btn-primary{color:#151811}.btn-primary:hover{transform:translateY(-1px);filter:brightness(1.08)}.btn:disabled{opacity:.55;cursor:wait}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.btn-block{width:100%}.icon-btn{border:0;background:transparent;color:var(--muted);width:38px;height:38px;border-radius:9px;cursor:pointer}.icon-btn:hover{background:var(--olive-soft);color:var(--olive)}
/* login */.login-page{min-height:100vh;background:var(--cream)}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.login-brand{position:relative;overflow:hidden;background:linear-gradient(145deg,#313a20,#6e7a43);color:#fff;padding:8vh 8vw;display:flex;flex-direction:column;justify-content:center}.brand-mark{position:absolute;top:42px;left:50px;width:44px;height:44px;background:#dbe2b7;color:#3d4727;display:grid;place-items:center;font-size:24px;font-weight:800;border-radius:12px 3px 12px 3px}.login-brand h1{font-size:60px;letter-spacing:-3px;margin:12px 0 10px}.login-brand h1 span{color:#d4dda5}.login-brand p{font-size:18px;color:#d8dec8;margin:0}.login-brand .eyebrow{color:#d4dda5}.login-art{position:absolute;inset:auto -100px -200px auto;width:550px;height:550px;border:1px solid rgba(255,255,255,.12);border-radius:50%}.login-art:before,.login-art:after,.login-art span{content:'';position:absolute;border:1px solid rgba(255,255,255,.1);border-radius:50%}.login-art:before{inset:70px}.login-art:after{inset:145px}.login-art span:nth-child(1){width:16px;height:16px;background:#d5df9f;left:67px;top:160px}.login-art span:nth-child(2){width:9px;height:9px;background:#fff;left:210px;top:75px}.login-panel{display:grid;place-items:center;position:relative;padding:35px;background:var(--card)}.theme-toggle{position:absolute;right:35px;top:35px;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:50%;width:42px;height:42px;cursor:pointer}.auth-card{width:min(410px,100%)}.auth-card h2{font-size:38px;letter-spacing:-1.5px;margin:10px 0 6px}.auth-card>p{color:var(--muted);margin:0 0 34px}.auth-card label,.field{display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:700;letter-spacing:.4px;margin-bottom:19px}.auth-card input,.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:8px;padding:13px;outline:none;transition:.2s;text-transform:uppercase}.auth-card input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--olive);box-shadow:0 0 0 3px var(--olive-soft)}.password-wrap{position:relative}.password-wrap button{position:absolute;right:5px;top:5px;height:35px;border:0;background:transparent;color:var(--olive);font-size:10px;font-weight:800;cursor:pointer}.auth-card small{display:block;text-align:center;color:var(--muted);font-size:9px;letter-spacing:1px;margin-top:25px}.form-message{min-height:24px;color:var(--danger);text-align:center;padding-top:10px;font-size:11px;font-weight:700}.mobile-logo{display:none}
/* shell */.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar);background:#26301d;color:#dfe5d4;z-index:30;display:flex;flex-direction:column;padding:26px 16px;transition:.25s}.logo{height:55px;display:flex;align-items:center;gap:12px;padding:0 10px;margin-bottom:30px;font-size:20px;font-weight:700}.logo b{width:38px;height:38px;display:grid;place-items:center;background:#dbe2b7;color:#354021;border-radius:11px 3px 11px 3px}.logo em{font-style:normal;color:#b8c57f}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a{height:45px;border-radius:8px;display:flex;align-items:center;gap:13px;padding:0 15px;font-size:12px;font-weight:600;color:#aeb8a4;transition:.2s}.sidebar nav a i{width:20px;font-size:15px}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(218,229,183,.12);color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 #c2ce8d}.sidebar-bottom{margin-top:auto}.sidebar-help{padding:15px;border-top:1px solid rgba(255,255,255,.1);display:flex;gap:11px;align-items:center}.sidebar-help span{display:flex;flex-direction:column;font-size:11px}.sidebar-help small{font-size:9px;color:#92a085;margin-top:3px}.app-shell{margin-left:var(--sidebar);min-height:100vh}.navbar{height:74px;position:sticky;top:0;background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(15px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 32px;z-index:20}.menu-toggle{display:none}.nav-title{display:flex;flex-direction:column}.nav-title span{font-size:9px;color:var(--muted);font-weight:800;letter-spacing:1.3px}.nav-title b{font-size:14px}.nav-actions{margin-left:auto;display:flex;gap:5px;align-items:center}.nav-actions>.icon-btn{position:relative}.dot{width:6px;height:6px;border-radius:50%;background:var(--olive);position:absolute;right:8px;top:8px}.user-menu{position:relative;margin-left:12px;padding-left:15px;border-left:1px solid var(--line);display:flex;align-items:center;gap:9px;cursor:pointer}.avatar{width:36px;height:36px;border-radius:10px;background:var(--olive-soft);color:var(--olive);display:grid;place-items:center;font-weight:800}.user-menu span{display:flex;flex-direction:column;font-size:10px}.user-menu small{color:var(--muted);font-size:8px;letter-spacing:.7px;margin-top:2px}.user-menu>i{font-size:9px;color:var(--muted)}.dropdown{position:absolute;right:0;top:49px;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px;box-shadow:var(--shadow);width:160px;display:none}.user-menu.open .dropdown{display:block}.dropdown a{display:block;padding:10px;color:var(--danger);font-size:11px}.content{padding:34px;max-width:1600px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:25px}.page-head h1{font-size:28px;letter-spacing:-.8px;margin:5px 0}.page-head p{color:var(--muted);margin:0}.date-chip{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px 15px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.5px}.date-chip i{margin-right:8px;color:var(--olive)}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:20px;display:flex;gap:15px;align-items:center;min-height:120px}.stat-icon{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--olive-soft);color:var(--olive);font-size:18px}.stat-icon.c1{background:#eef0f5;color:#65708f}.stat-icon.c2{background:#f6eee5;color:#aa7944}.stat-icon.c3{background:#e7f2ef;color:#508a7c}.stat-card>div:last-child{display:flex;flex-direction:column}.stat-card span{font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:700}.stat-card b{font-size:29px;margin:3px 0}.stat-card small{font-size:8px;color:var(--olive);font-weight:700}.skeleton{background:linear-gradient(90deg,var(--card),var(--bg),var(--card));background-size:200%;animation:shimmer 1.3s infinite}@keyframes shimmer{to{background-position:-200%}}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}.panel-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.panel-head h2{font-size:17px;margin:3px 0}.panel-head>a{font-size:9px;color:var(--olive);font-weight:800}.schedule-list{padding:8px 20px}.schedule-item{display:grid;grid-template-columns:55px 1fr 20px;align-items:center;gap:12px;padding:15px 2px;border-bottom:1px solid var(--line)}.schedule-item time{font-weight:800;color:var(--olive)}.schedule-item span{display:flex;flex-direction:column}.schedule-item small{color:var(--muted);margin-top:4px}.schedule-item small i{margin-right:5px}.schedule-item>i{font-size:9px;color:var(--muted)}.empty-mini{text-align:center;color:var(--muted);font-size:10px;padding:45px}.donut-wrap{display:flex;align-items:center;gap:18px;padding:24px}.donut{--p:0deg;width:90px;height:90px;border-radius:50%;background:conic-gradient(var(--olive) var(--p),var(--olive-soft) 0);display:grid;place-items:center;position:relative}.donut:before{content:'';position:absolute;inset:9px;background:var(--card);border-radius:50%}.donut span{position:relative;font-weight:800;font-size:17px}.donut-wrap p{display:flex;flex-direction:column}.donut-wrap small{color:var(--muted);font-size:10px;margin-top:4px}.quick-links{border-top:1px solid var(--line);padding:8px 20px}.quick-links a{display:grid;grid-template-columns:36px 1fr 20px;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.quick-links a>i:first-child{width:34px;height:34px;border-radius:8px;background:var(--olive-soft);color:var(--olive);display:grid;place-items:center}.quick-links span{display:flex;flex-direction:column;font-size:11px}.quick-links small{color:var(--muted);font-size:9px;margin-top:3px}.quick-links a>i:last-child{font-size:9px;color:var(--muted)}
/* tables */.table-toolbar{display:flex;align-items:center;padding:17px 20px;border-bottom:1px solid var(--line)}.search{width:min(420px,100%);position:relative}.search i{position:absolute;left:14px;top:12px;color:var(--muted)}.search input{width:100%;height:40px;padding:0 14px 0 38px;background:var(--bg);border:1px solid var(--line);border-radius:7px;color:var(--text);font-size:10px;outline:none;text-transform:uppercase}.result-count{margin-left:auto;color:var(--muted);font-size:9px;letter-spacing:.5px}.result-count b{color:var(--text)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th{text-align:left;color:var(--muted);font-size:9px;letter-spacing:.8px;padding:13px 20px;background:var(--bg);border-bottom:1px solid var(--line)}td{padding:15px 20px;border-bottom:1px solid var(--line);font-size:11px;text-transform:uppercase}tbody tr:hover{background:color-mix(in srgb,var(--olive-soft) 35%,transparent)}.actions{display:flex;gap:3px}.actions .icon-btn{width:32px;height:32px}.actions .danger:hover{background:#fbe9e7;color:var(--danger)}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:20px;font-size:8px;font-weight:800}.badge i{width:5px;height:5px;border-radius:50%;background:currentColor}.badge.active{color:#60703b;background:var(--olive-soft)}.badge.inactive{color:var(--danger);background:#f8e9e7}.coords{color:var(--olive);font-size:9px}.coords i{margin-right:5px}.product-img,.image-placeholder{width:40px;height:40px;border-radius:8px;object-fit:cover}.image-placeholder{display:grid;place-items:center;background:var(--olive-soft);color:var(--olive)}.person-cell{display:flex;align-items:center;gap:9px}.person-cell span{width:29px;height:29px;display:grid;place-items:center;background:var(--olive-soft);color:var(--olive);border-radius:8px;font-weight:800}.role-badge{padding:5px 8px;border:1px solid var(--line);border-radius:5px;font-size:8px}.table-footer{padding:13px 20px;color:var(--muted);font-size:9px}.loading-row{text-align:center;color:var(--muted);padding:50px}.empty-row{text-align:center!important;padding:55px!important;color:var(--muted)}.empty-row>*{display:block;margin:7px auto}.empty-row i{font-size:25px}.empty-row b{color:var(--text)}
/* modal */.modal{position:fixed;inset:0;background:rgba(14,18,11,.65);z-index:50;display:none;place-items:center;padding:20px;backdrop-filter:blur(4px)}.modal.open{display:grid}.modal-card{background:var(--card);border:1px solid var(--line);border-radius:13px;width:min(760px,100%);max-height:92vh;overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.3)}.modal-head{padding:22px 25px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:5px 0 0;font-size:21px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 17px;padding:24px 25px}.field.full{grid-column:1/-1}.field span{font-size:10px}.field small{font-size:8px;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:17px 25px;border-top:1px solid var(--line)}#location-map{height:260px;border-radius:9px;border:1px solid var(--line);z-index:1}.calendar-panel{padding:20px}.fc{--fc-border-color:var(--line);--fc-page-bg-color:var(--card);--fc-neutral-bg-color:var(--bg);--fc-list-event-hover-bg-color:var(--olive-soft);--fc-today-bg-color:var(--olive-soft);font-size:12px}.fc .fc-button-primary{background:var(--olive-dark);border-color:var(--olive-dark);font-size:9px;font-weight:700}.fc .fc-toolbar-title{font-size:18px!important;text-transform:uppercase}.fc-theme-standard td,.fc-theme-standard th{border-color:var(--line)!important}.fc-col-header-cell-cushion,.fc-daygrid-day-number{padding:8px!important}.fc-event{border:0!important;padding:3px 5px;font-size:9px}.toast{position:relative;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--olive);border-radius:8px;box-shadow:var(--shadow);padding:14px 18px;display:flex;gap:10px;align-items:center;font-size:10px;font-weight:700;transform:translateX(120%);transition:.25s}.toast.show{transform:none}.toast.error{border-left-color:var(--danger);color:var(--danger)}#toast-container{position:fixed;right:20px;top:90px;z-index:80;display:flex;flex-direction:column;gap:8px;width:min(340px,calc(100vw - 40px))}.sidebar-overlay{display:none}
.form-grid.product-form{grid-template-columns:210px minmax(0,1fr);grid-template-rows:repeat(3,auto);column-gap:28px;align-items:start}.product-form .product-upload-field{grid-column:1;grid-row:1/4;align-items:stretch;margin:0}.product-form>.field:not(.product-upload-field){grid-column:2;margin-bottom:17px}.product-upload{width:100%;aspect-ratio:1;height:auto;position:relative;border:1.5px dashed color-mix(in srgb,var(--olive) 55%,var(--line));border-radius:14px;background:linear-gradient(145deg,var(--olive-soft),var(--bg));overflow:hidden;display:grid;place-items:center;cursor:pointer;transition:.22s}.product-upload:hover{border-color:var(--olive);transform:translateY(-2px);box-shadow:0 10px 25px rgba(62,73,37,.12)}.product-upload input{position:absolute;opacity:0;pointer-events:none}.product-upload img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}.upload-empty{display:flex;align-items:center;flex-direction:column;gap:8px;color:var(--olive);text-align:center}.upload-empty>i{width:48px;height:48px;border-radius:50%;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;font-size:17px;box-shadow:var(--shadow)}.upload-empty b{font-size:9px;letter-spacing:.7px}.upload-empty small{font-size:7px!important}.upload-change{position:absolute;left:9px;right:9px;bottom:9px;background:rgba(25,31,18,.82);color:#fff;border-radius:7px;padding:8px;text-align:center;font-size:8px;font-weight:800;letter-spacing:.5px;transform:translateY(150%);transition:.2s}.product-upload.has-image img{display:block}.product-upload.has-image .upload-empty{display:none}.product-upload.has-image:hover .upload-change{transform:none}
.password-wrap{width:100%}.password-wrap input{padding-right:48px!important}.password-wrap button{top:50%;right:5px;transform:translateY(-50%);width:38px;height:35px;border-radius:7px;font-size:13px}.password-wrap button:hover{background:var(--olive-soft)}
.product-option.keyboard-active{background:var(--olive-soft);box-shadow:inset 3px 0 var(--olive)}.product-field-error{display:none!important;color:var(--danger)!important;font-size:7px!important;font-weight:800;margin:5px 2px 0}.invalid-product .product-search{border-color:var(--danger)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 14%,transparent)!important}.invalid-product .product-field-error{display:block!important}.inventory-form-panel.visible{display:grid}
@media(max-width:1050px){.stats-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.sidebar{transform:translateX(-100%)}.app-shell{margin-left:0}.menu-toggle{display:block;margin-right:8px}body.sidebar-open .sidebar{transform:none}body.sidebar-open .sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:25}}
.attendance-empty{padding:65px 30px;text-align:center}.attendance-icon{width:72px;height:72px;margin:0 auto 20px;border-radius:20px;background:var(--olive-soft);color:var(--olive);display:grid;place-items:center;font-size:27px}.attendance-empty h2{font-size:23px;margin:8px 0}.attendance-empty p{max-width:560px;margin:0 auto;color:var(--muted);line-height:1.7}
.attendance-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:18px;margin-bottom:18px}.attendance-register{text-align:center;padding:38px 28px}.attendance-register h2{font-size:23px;margin:8px 0}.attendance-register>p{max-width:430px;margin:0 auto 25px;color:var(--muted);line-height:1.6}.attendance-button{min-width:245px;height:50px}.attendance-detail{overflow:hidden}.attendance-schedule{padding:22px}.assigned-visit{display:grid;grid-template-columns:90px 1fr;gap:20px;align-items:center}.visit-time{height:92px;border-radius:14px;background:var(--olive-soft);color:var(--olive);display:flex;flex-direction:column;align-items:center;justify-content:center}.visit-time b{font-size:22px}.visit-time span{font-size:9px;font-weight:700}.assigned-visit h3{font-size:17px;margin:5px 0}.assigned-visit p{color:var(--muted);font-size:10px}.attendance-notice{margin:18px 0 0;padding:14px;border-radius:8px;background:var(--bg);color:var(--muted);font-size:10px;font-weight:800;text-align:center}.attendance-notice.success{background:#e9f2e5;color:#526b3c}.attendance-notice.warning{background:#fff0d9;color:#94651d}.attendance-notice.error{background:#f8e9e7;color:var(--danger)}.attendance-history-panel{overflow:hidden}.attendance-history{padding:5px 20px}.history-row{display:grid;grid-template-columns:34px 1fr auto;gap:11px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.history-row>i{width:32px;height:32px;border-radius:8px;background:var(--olive-soft);color:var(--olive);display:grid;place-items:center}.history-row>span:nth-child(2){display:flex;flex-direction:column;font-size:11px}.history-row small{color:var(--muted);font-size:8px;margin-top:4px}.badge.pending{color:#94651d;background:#fff0d9}
.justification-card{width:min(600px,100%)}.justification-body{padding:5px 25px 20px}.justification-body .attendance-notice{text-align:left;margin-bottom:20px}.justification-body textarea{text-transform:uppercase;resize:vertical}.attendance-stats{grid-template-columns:minmax(280px,360px)}.attendance-reason{display:block;max-width:250px;color:#94651d;font-weight:700}.table-wrap td small{display:block;color:var(--muted);font-size:8px;margin-top:5px}.evidence-link{display:inline-flex;align-items:center;gap:6px;color:var(--olive);font-weight:800;font-size:9px}.approval-actions{display:flex;gap:6px;align-items:center}.approval-actions .btn{height:34px;padding:0 11px;background:var(--olive-soft);color:var(--olive)}
.daily-attendance-panel{margin-top:18px}.daily-attendance-head{align-items:flex-end}.date-filter{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.7px}.date-filter input{height:38px;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:7px;padding:0 11px;outline:none}.date-filter input:focus{border-color:var(--olive)}.daily-summary{display:flex;gap:8px;padding:12px 20px;border-bottom:1px solid var(--line);overflow:auto}.daily-summary span{white-space:nowrap;padding:7px 10px;background:var(--bg);border-radius:6px;color:var(--muted);font-size:8px;font-weight:800}.daily-summary b{color:var(--text);font-size:11px;margin-right:3px}
.attendance-marks{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:20px}.attendance-mark{display:flex;justify-content:space-between;gap:10px;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:9px;color:var(--muted);font-size:9px}.attendance-mark b{color:var(--text);font-size:8px}
.inventory-welcome{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;padding:26px 30px;margin-bottom:18px;border-radius:14px;background:linear-gradient(125deg,#303a21,#687542);color:#fff;box-shadow:var(--shadow)}.inventory-welcome:after{content:'';position:absolute;width:210px;height:210px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-55px;top:-75px}.inventory-welcome h2{font-size:22px;margin:5px 0}.inventory-welcome p{margin:0;color:#dce3ce}.inventory-welcome .eyebrow{color:#ccd89b}.inventory-welcome-icon{width:60px;height:60px;z-index:1;border-radius:17px;background:rgba(255,255,255,.12);display:grid;place-items:center;font-size:24px}.inventory-modal{width:min(820px,100%)}.inventory-modal-head p{margin:5px 0 0;color:var(--muted);font-size:11px}.inventory-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;padding:24px 28px}.inventory-section-title{display:flex;align-items:center;gap:11px;padding:0 0 16px;margin-bottom:18px;border-bottom:1px solid var(--line)}.inventory-section-title>i{width:36px;height:36px;border-radius:9px;background:var(--olive-soft);color:var(--olive);display:grid;place-items:center}.inventory-section-title span{display:flex;flex-direction:column}.inventory-section-title b{font-size:12px}.inventory-section-title small{font-size:9px;color:var(--muted);margin-top:2px}.inventory-section-title em{margin-left:auto;font-style:normal;font-size:7px;font-weight:800;color:var(--muted);background:var(--bg);padding:5px 8px;border-radius:5px}.evidence-title{margin-top:6px}.inventory-images{display:grid;grid-template-columns:1fr 1fr;gap:18px}.multi-image-upload{min-height:145px;border:1.5px dashed color-mix(in srgb,var(--olive) 55%,var(--line));border-radius:13px;background:linear-gradient(145deg,var(--olive-soft),var(--bg));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--olive);cursor:pointer;transition:.2s;text-align:center}.multi-image-upload:hover{border-color:var(--olive);transform:translateY(-2px);box-shadow:0 10px 25px rgba(62,73,37,.1)}.multi-image-upload input{position:absolute;opacity:0;pointer-events:none}.upload-plus{width:44px;height:44px;border-radius:50%;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;font-size:16px;box-shadow:var(--shadow)}.multi-image-upload b{font-size:9px;letter-spacing:.6px}.multi-image-upload small{font-size:7px!important}.image-previews{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.preview-tile{width:58px;height:58px;border-radius:9px;border:1px solid var(--line);overflow:hidden;background:var(--bg);display:grid;place-items:center}.preview-tile img{width:100%;height:100%;object-fit:cover}.file-preview{padding:5px;color:var(--olive);text-align:center}.file-preview small{font-size:6px;max-width:45px;overflow:hidden;text-overflow:ellipsis}.inventory-modal-actions{position:sticky;bottom:0;background:var(--card)}.inventory-list-panel{margin-top:18px}.inventory-list-heading{padding:20px 22px 8px;display:flex;align-items:center;justify-content:space-between}.inventory-list-heading h2{font-size:18px;margin:4px 0}.inventory-list-panel .table-toolbar{border-top:0;padding-top:10px}.work-comment{max-width:260px;white-space:normal;line-height:1.5}.evidence-gallery{display:flex;gap:5px}.evidence-gallery a{width:43px;height:43px;border-radius:7px;background:var(--olive-soft);color:var(--olive);display:flex;flex-direction:column;align-items:center;justify-content:center}.evidence-gallery small{font-size:6px!important;margin:2px 0 0!important}.muted{color:var(--muted);font-size:8px}
.inventory-form-grid>.full{grid-column:1/-1}.products-title{margin-top:4px}.inventory-items-editor{width:100%;margin-bottom:22px;border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:10px}.inventory-items-head,.inventory-item-row{display:grid;grid-template-columns:minmax(0,1fr) 130px 40px;gap:9px;align-items:center}.inventory-items-head{padding:2px 7px 8px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.7px}.inventory-item-row{padding:6px;border-top:1px solid var(--line)}.inventory-item-row:first-child{border-top:0}.inventory-item-row input{height:41px;width:100%;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:7px;padding:0 11px;outline:none;text-transform:uppercase}.inventory-item-row input:focus{border-color:var(--olive);box-shadow:0 0 0 3px var(--olive-soft)}.product-search-wrap{position:relative}.product-results{display:none;position:absolute;left:0;right:0;top:44px;z-index:15;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);max-height:220px;overflow:auto;padding:5px}.product-results.open{display:block}.product-option{width:100%;border:0;background:transparent;color:var(--text);display:flex;flex-direction:column;align-items:flex-start;padding:9px;border-radius:6px;cursor:pointer;text-align:left}.product-option:hover{background:var(--olive-soft)}.product-option b{font-size:9px;color:var(--olive)}.product-option span{font-size:10px;margin-top:2px}.no-product{padding:13px;text-align:center;color:var(--muted);font-size:8px}.remove-inventory-row{width:36px;height:36px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--muted);cursor:pointer;transition:.2s}.remove-inventory-row:hover{background:#f8e9e7;border-color:#efcbc7;color:var(--danger)}.add-inventory-row{margin-top:9px;border:0;background:transparent;color:var(--olive);font-size:9px;font-weight:800;letter-spacing:.5px;cursor:pointer;padding:8px}.add-inventory-row i{margin-right:6px}.inventory-products-list,.inventory-quantities-list{display:flex;flex-direction:column;gap:6px}.inventory-products-list span,.inventory-quantities-list span{min-height:22px;display:flex;align-items:center}.inventory-products-list span{font-weight:700}.inventory-quantities-list span{color:var(--olive);font-weight:800}
@media(max-width:700px){.login-shell{display:block}.login-brand{display:none}.login-panel{min-height:100vh;padding:25px}.mobile-logo{display:block;font-size:18px;margin-bottom:50px}.mobile-logo b{background:var(--olive);color:#fff;padding:8px;border-radius:8px}.auth-card h2{font-size:31px}.navbar{height:64px;padding:0 14px}.nav-title span{display:none}.user-menu span,.user-menu>i{display:none}.content{padding:22px 15px}.page-head{align-items:flex-start;gap:15px}.page-head h1{font-size:23px}.page-head p{font-size:11px}.page-head .btn{width:44px;padding:0;font-size:0}.page-head .btn i{font-size:13px}.date-chip{display:none}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:14px;min-height:100px;gap:9px}.stat-icon{width:38px;height:38px}.stat-card b{font-size:22px}.stat-card small{display:none}.form-grid,.form-grid.product-form{grid-template-columns:1fr;display:grid}.field.full,.product-form .product-upload-field,.product-form>.field:not(.product-upload-field){grid-column:1;grid-row:auto}.product-upload{width:min(210px,100%)}.modal{padding:8px}.calendar-panel{padding:8px}.fc .fc-toolbar{display:grid;grid-template-columns:1fr;gap:10px;justify-items:center}.fc .fc-toolbar-chunk:nth-child(1){grid-row:2}.fc .fc-toolbar-chunk:nth-child(3){grid-row:3}.table-toolbar{padding:12px}.result-count{display:none}}
@media(max-width:700px){.attendance-layout{grid-template-columns:1fr}.attendance-register{padding:30px 18px}.attendance-button{width:100%;min-width:0}.assigned-visit{grid-template-columns:75px 1fr}.visit-time{height:78px}.history-row{grid-template-columns:32px 1fr}.history-row>.badge{grid-column:2;justify-self:start}}
@media(max-width:700px){.inventory-page-head{align-items:flex-end}.inventory-page-head .btn{width:auto;padding:0 13px;font-size:9px}.inventory-page-head .btn i{font-size:11px}.inventory-welcome{padding:22px}.inventory-welcome h2{font-size:19px}.inventory-welcome p{font-size:10px;max-width:230px}.inventory-welcome-icon{width:48px;height:48px}.inventory-modal{max-height:96vh}.inventory-form-grid,.inventory-images{grid-template-columns:1fr}.inventory-form-grid{padding:18px}.inventory-items-head{display:none}.inventory-item-row{grid-template-columns:minmax(0,1fr) 85px 30px}.inventory-item-row input{font-size:9px}.multi-image-upload{min-height:125px}.inventory-list-heading{padding:18px 16px 7px}.inventory-personal-list .table-wrap{overflow:visible;padding:8px 12px 14px}.inventory-personal-list table,.inventory-personal-list tbody{display:block;min-width:0}.inventory-personal-list thead{display:none}.inventory-personal-list tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px;margin-bottom:10px;box-shadow:0 5px 18px rgba(37,48,25,.05)}.inventory-personal-list tbody td{display:flex;flex-direction:column;gap:4px;padding:0;border:0;font-size:10px}.inventory-personal-list tbody td:before{color:var(--muted);font-size:7px;font-weight:800;letter-spacing:.7px}.inventory-personal-list tbody td:nth-child(1):before{content:'FECHA'}.inventory-personal-list tbody td:nth-child(2):before{content:'ESTABLECIMIENTO'}.inventory-personal-list tbody td:nth-child(3):before{content:'PASILLO'}.inventory-personal-list tbody td:nth-child(4):before{content:'PRODUCTOS'}.inventory-personal-list tbody td:nth-child(5):before{content:'CANTIDADES'}.inventory-personal-list tbody td:nth-child(6):before{content:'TRABAJO REALIZADO'}.inventory-personal-list tbody td:nth-child(6),.inventory-personal-list tbody td:nth-child(7){grid-column:1/-1}.inventory-personal-list tbody td:nth-child(7):before{content:'EVIDENCIAS'}.inventory-personal-list .empty-row{display:block!important}.inventory-personal-list .empty-row:before{display:none}}
.inventory-total{display:inline-grid;place-items:center;min-width:58px;height:32px;padding:0 10px;border-radius:9px;background:var(--olive-soft);color:var(--olive);font-weight:900}.row-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}.row-actions .btn{height:36px;padding:0 12px;font-size:8px}.inventory-detail-card{width:min(980px,calc(100vw - 40px));max-height:94vh;overflow:hidden;display:flex;flex-direction:column}.inventory-detail-card>.modal-head,.inventory-detail-card>.modal-actions{flex:0 0 auto}.inventory-detail-content{padding:20px 24px;display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:14px;overflow:auto}.inventory-detail-summary{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.inventory-detail-summary>span,.inventory-detail-block{padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.inventory-detail-summary small,.inventory-detail-block>small{display:block;margin-bottom:7px;color:var(--muted);font-size:7px;font-weight:900;letter-spacing:.8px}.inventory-detail-summary b{font-size:10px}.inventory-detail-block p{margin:0;white-space:pre-wrap;line-height:1.6}.inventory-detail-block:nth-child(4){grid-column:1/-1;max-height:270px;overflow:auto}.inventory-detail-block table{width:100%}.inventory-detail-block th,.inventory-detail-block td{padding:9px;text-align:left;border-bottom:1px solid var(--line)}.inventory-detail-block th{position:sticky;top:-14px;background:var(--bg);z-index:1}
@media(max-width:700px){.inventory-personal-list tbody td:nth-child(4):before{content:'TOTAL PRODUCTOS'}.inventory-personal-list tbody td:nth-child(5):before{content:'TRABAJO REALIZADO'}.inventory-personal-list tbody td:nth-child(6):before{content:'ESTADO'}.inventory-personal-list tbody td:nth-child(7):before{content:'ACCIONES'}.inventory-personal-list tbody td:nth-child(5),.inventory-personal-list tbody td:nth-child(7){grid-column:1/-1}.inventory-detail-card{width:100%;max-height:96vh}.inventory-detail-summary{grid-template-columns:1fr 1fr}.inventory-detail-content{grid-template-columns:1fr;padding:14px}.inventory-detail-summary,.inventory-detail-block:nth-child(4){grid-column:1}.row-actions{flex-wrap:wrap}}
.confirmation-modal{z-index:100}.confirmation-card{width:min(440px,100%);padding:30px;text-align:center;overflow:visible;animation:confirm-pop .2s ease-out}.confirmation-icon{width:68px;height:68px;margin:0 auto 18px;border-radius:20px;display:grid;place-items:center;background:var(--olive-soft);color:var(--olive);font-size:27px}.confirmation-icon.danger{background:#f8e9e7;color:var(--danger)}html[data-theme=dark] .confirmation-icon.danger{background:#3b201e}.confirmation-card h2{margin:8px 0 10px;font-size:22px}.confirmation-card p{margin:0 auto;color:var(--muted);line-height:1.65;font-size:11px;max-width:350px}.confirmation-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}.btn-danger{background:var(--danger)!important;color:#fff!important;box-shadow:0 6px 15px color-mix(in srgb,var(--danger) 25%,transparent)!important}.actions .activate:hover{background:var(--olive-soft);color:var(--olive)}@keyframes confirm-pop{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}@media(max-width:480px){.confirmation-card{padding:25px 20px}.confirmation-actions{grid-template-columns:1fr}.confirmation-actions .btn{width:100%}}
.sidebar-company{margin:-15px 5px 22px;padding:12px;display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:rgba(255,255,255,.055)}.sidebar-company img,.company-logo-fallback{width:42px;height:42px;border-radius:9px;object-fit:contain;background:#fff;padding:4px}.company-logo-fallback{display:grid;place-items:center;background:#dbe2b7;color:#354021;font-size:18px;font-weight:900;padding:0}.sidebar-company div{min-width:0;display:flex;flex-direction:column}.sidebar-company small{color:#8f9b86;font-size:7px;font-weight:800;letter-spacing:.8px}.sidebar-company b{margin-top:4px;color:#fff;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-menu-group{border-radius:8px}.sidebar-menu-toggle{width:100%;height:45px;border:0;border-radius:8px;background:transparent;color:#aeb8a4;display:grid;grid-template-columns:20px 1fr 12px;align-items:center;gap:13px;padding:0 15px;text-align:left;font-size:12px;font-weight:600;cursor:pointer}.sidebar-menu-toggle>i:last-child{font-size:8px;transition:.2s}.sidebar-menu-group.open .sidebar-menu-toggle>i:last-child{transform:rotate(180deg)}.sidebar-menu-group.active>.sidebar-menu-toggle,.sidebar-menu-toggle:hover{background:rgba(218,229,183,.12);color:#fff}.sidebar-submenu{display:none;padding:5px 0 4px 31px}.sidebar-menu-group.open .sidebar-submenu{display:block}.sidebar .sidebar-submenu a{height:37px;padding:0 11px;font-size:10px}.sidebar .sidebar-submenu a i{font-size:11px;width:16px}.company-settings-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px;align-items:start}.company-logo-panel{padding:26px}.company-logo-panel h2{margin:7px 0;font-size:20px}.company-logo-panel>p{color:var(--muted);font-size:10px;line-height:1.6;margin:0 0 22px}.company-logo-upload{display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer}.company-logo-upload>input{position:absolute;opacity:0;pointer-events:none}.company-logo-preview{width:100%;aspect-ratio:1.35;border:1.5px dashed color-mix(in srgb,var(--olive) 55%,var(--line));border-radius:14px;background:linear-gradient(145deg,var(--olive-soft),var(--bg));display:grid;place-items:center;overflow:hidden;transition:.2s}.company-logo-preview:hover{border-color:var(--olive);transform:translateY(-2px)}.company-logo-preview img{width:100%;height:100%;object-fit:contain;padding:18px;display:none}.company-logo-preview.has-image img{display:block}.company-logo-preview.has-image #company-logo-placeholder{display:none}#company-logo-placeholder{display:flex;flex-direction:column;align-items:center;gap:9px;color:var(--olive);text-align:center;max-width:85%}#company-logo-placeholder i{width:48px;height:48px;border-radius:50%;background:var(--card);display:grid;place-items:center;box-shadow:var(--shadow)}#company-logo-placeholder b{font-size:9px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.company-logo-upload>small{color:var(--muted);font-size:7px;text-align:center}.company-logo-upload>em{font-style:normal;color:var(--olive);font-size:7px;font-weight:900;letter-spacing:.6px}.company-settings-form{overflow:hidden}.company-form-body{padding:25px;display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.company-form-body .full{grid-column:1/-1}@media(max-width:800px){.company-settings-layout{grid-template-columns:1fr}.company-logo-panel{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px}.company-logo-panel .company-logo-upload{grid-column:2;grid-row:1/5}.company-logo-preview{max-height:180px}.company-form-body{grid-template-columns:1fr}.company-form-body .full{grid-column:1}}@media(max-width:520px){.company-logo-panel{display:block}.company-logo-upload{margin-top:18px}.company-logo-preview{max-height:none}.company-form-body{padding:18px}}
.sidebar{min-height:0;overflow:hidden}.sidebar>.logo,.sidebar>.sidebar-company,.sidebar>.sidebar-bottom{flex:0 0 auto}.sidebar nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;margin-right:-4px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(218,229,183,.3) transparent}.sidebar nav::-webkit-scrollbar{width:5px}.sidebar nav::-webkit-scrollbar-track{background:transparent}.sidebar nav::-webkit-scrollbar-thumb{background:rgba(218,229,183,.28);border-radius:10px}.sidebar nav::-webkit-scrollbar-thumb:hover{background:rgba(218,229,183,.45)}.sidebar-bottom{padding-top:10px;background:#26301d}
.field input.input-error,.field select.input-error,.field textarea.input-error,.auth-card input.input-error,input.is-invalid,select.is-invalid,textarea.is-invalid{border-color:var(--danger)!important;box-shadow:0 0 0 3px rgba(181,65,52,.12)!important;outline:0}
.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.page-actions .btn{white-space:nowrap}.product-import-card{width:min(1180px,calc(100vw - 28px));max-height:92vh;display:flex;flex-direction:column}.product-import-card .modal-head p{margin:5px 0 0;color:var(--muted);font-size:10px}.product-import-body{padding:22px;overflow:auto}.product-import-drop{min-height:150px;border:1.5px dashed color-mix(in srgb,var(--olive) 55%,var(--line));border-radius:14px;background:linear-gradient(145deg,var(--olive-soft),var(--bg));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;color:var(--olive);cursor:pointer;transition:.2s}.product-import-drop:hover{border-color:var(--olive);transform:translateY(-1px)}.product-import-drop input{position:absolute;opacity:0;pointer-events:none}.product-import-drop>span{width:46px;height:46px;border-radius:50%;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;font-size:18px;box-shadow:var(--shadow)}.product-import-drop b{font-size:10px;letter-spacing:.7px}.product-import-drop small{font-size:8px;color:var(--muted)}.product-import-drop em{margin-top:4px;font-style:normal;font-size:8px;font-weight:800;color:var(--text)}.product-import-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.product-import-summary>span{padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--bg);display:flex;align-items:center;justify-content:space-between}.product-import-summary small{font-size:8px;color:var(--muted);font-weight:800}.product-import-summary b{font-size:20px}.product-import-summary .valid b{color:var(--olive)}.product-import-summary .invalid b{color:var(--danger)}.product-import-preview{border:1px solid var(--line);border-radius:10px;overflow:hidden}.product-import-preview table{min-width:1050px}.product-import-preview th,.product-import-preview td{padding:10px 12px}.product-import-preview td:last-child{max-width:310px;white-space:normal}.import-invalid-row{background:rgba(181,65,52,.055)}.import-status{display:inline-flex;align-items:flex-start;gap:6px;font-size:7px;font-weight:800;line-height:1.5}.import-status.valid{color:var(--olive)}.import-status.invalid{color:var(--danger)}.product-import-card .modal-actions{position:sticky;bottom:0;background:var(--card)}@media(max-width:700px){.page-head{flex-direction:column}.page-actions{width:100%;justify-content:flex-start}.page-actions .btn{width:auto!important;padding:0 12px!important;font-size:0!important}.page-actions .btn i{margin:0!important;font-size:13px}.product-import-body{padding:14px}.product-import-summary{grid-template-columns:1fr}.product-import-summary>span{padding:10px 12px}}
.user-permissions-field{grid-column:1/-1;margin-top:8px;padding-top:20px;border-top:1px solid var(--line)}.user-permissions-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.user-permissions-head>div{display:grid;gap:4px}.user-permissions-head span{font-size:10px;font-weight:800;color:var(--text)}.user-permissions-head small{font-size:8px;color:var(--muted)}.toggle-all-permissions{height:34px;padding:0 12px;font-size:8px}.permission-modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.permission-module{border:1px solid var(--line);border-radius:10px;background:var(--bg);overflow:hidden}.permission-module header{min-height:42px;padding:0 12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);color:var(--olive)}.permission-module header i{width:20px}.permission-module header b{color:var(--text);font-size:9px}.permission-module>div{display:grid;padding:7px}.permission-option{display:flex!important;align-items:center;gap:7px;min-height:30px;padding:5px 6px;border-radius:6px;cursor:pointer}.permission-option:hover{background:var(--olive-soft)}.permission-option input{position:absolute;opacity:0;pointer-events:none}.permission-option>span{width:17px;height:17px;border:1px solid var(--line);border-radius:5px;background:var(--card);display:grid;place-items:center;color:transparent;flex:0 0 auto}.permission-option input:checked+span{background:var(--olive);border-color:var(--olive);color:#fff}.permission-option>span i{font-size:8px}.permission-option b{font-size:8px;color:var(--muted)}.permission-option input:checked~b{color:var(--text)}@media(max-width:700px){.permission-modules{grid-template-columns:1fr 1fr}.user-permissions-head{align-items:flex-start;flex-direction:column}}@media(max-width:430px){.permission-modules{grid-template-columns:1fr}}
