
:root { --brand:#18324f; --brand-deep:#10263e; --accent:#a9e7d6; --ink:#17283a; --muted:#6f7f8f; --line:#e3e9e6; --paper:#fff; --wash:#f4f7f4; --coral:#f2a18f; --amber:#f1ce79; --green:#2f846b; --danger:#a34b42; --radius:16px; --shadow:0 16px 48px rgba(18,48,70,.08); }
* { box-sizing:border-box; }
html { background:var(--wash); }
body { margin:0; color:var(--ink); background:var(--wash); font-family:Arial,var(--font-geist-sans),sans-serif; font-size:var(--base-font-size,14px); }
button,input,select,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button { color:inherit; }
a { color:inherit; text-decoration:none; }
img { display:block; }
.kogu-root { min-height:100vh; --text-scale:1; --input-h:42px; }
.kogu-root[data-font="SMALL"] { --text-scale:.9; }
.kogu-root[data-font="LARGE"] { --text-scale:1.1; }
.kogu-root[data-input="COMPACT"] { --input-h:36px; }
.kogu-root[data-input="LARGE"] { --input-h:50px; }
.kogu-root[data-heading="UPPER"] h1,.kogu-root[data-heading="UPPER"] h2,.kogu-root[data-heading="UPPER"] h3 { text-transform:uppercase; letter-spacing:.01em; }
.eyebrow { display:block; color:#779087; font-size:calc(10px * var(--text-scale)); font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.eyebrow.light { color:#8fb3a9; }
h1,h2,h3,h4,p { overflow-wrap:anywhere; }
h1,h2,h3,h4 { color:var(--ink); letter-spacing:-.025em; }
.primary-button,.secondary-button,.light-button { min-height:var(--input-h); display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:10px; padding:0 16px; font-size:calc(12px * var(--text-scale)); font-weight:800; cursor:pointer; transition:.18s ease; }
.primary-button { color:#fff; background:var(--brand); border:1px solid var(--brand); box-shadow:0 8px 18px color-mix(in srgb,var(--brand) 18%,transparent); }
.primary-button:hover { transform:translateY(-1px); filter:brightness(1.06); }
.primary-button:disabled { cursor:not-allowed; opacity:.55; transform:none; }
.secondary-button { color:var(--brand); background:#fff; border:1px solid var(--line); }
.secondary-button:hover { border-color:#b9c9c3; background:#f8fbf9; }
.secondary-button.danger { color:var(--danger); border-color:#efd4d0; }
.text-button { border:0; color:var(--green); background:transparent; font-size:calc(11px * var(--text-scale)); font-weight:800; cursor:pointer; padding:5px; }
.danger-link { color:var(--danger)!important; }
.soft-badge,.demo-badge { display:inline-flex; align-items:center; border-radius:999px; padding:5px 9px; font-size:calc(9px * var(--text-scale)); font-weight:800; }
.soft-badge { color:#567067; background:#edf3f0; }
.demo-badge { color:#785d16; background:#fff5d7; border:1px solid #f4e4a8; }

/* Shared shell */
.app-shell { min-height:100vh; display:grid; grid-template-columns:250px minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:28px 20px 22px; color:#d8e3ea; background:linear-gradient(180deg,var(--brand-deep),color-mix(in srgb,var(--brand) 78%,#071828)); }
.brand { min-width:0; display:flex; align-items:center; gap:11px; }
.brand img { width:42px; height:42px; border-radius:12px; object-fit:contain; background:#fff; padding:4px; }
.brand-mark { width:42px; height:42px; flex:0 0 auto; display:grid; place-items:center; border-radius:12px; color:var(--brand); background:var(--accent); font-size:21px; font-weight:900; }
.brand div { min-width:0; display:grid; gap:2px; }
.brand strong { color:inherit; font-size:16px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.brand small { color:#88a0b2; font-size:9px; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sidebar .brand { padding:0 8px; color:#fff; }
.sidebar nav { display:grid; gap:4px; margin-top:44px; }
.nav-label { color:#698398; font-size:9px; font-weight:800; letter-spacing:.15em; padding:0 11px 9px; }
.nav-item { min-height:43px; width:100%; display:grid; grid-template-columns:30px 1fr auto; align-items:center; gap:4px; border:0; border-radius:10px; padding:0 10px; color:#a8bac7; background:transparent; font-size:calc(11px * var(--text-scale)); font-weight:700; text-align:left; cursor:pointer; }
.nav-item>span { width:22px; height:22px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.1); border-radius:7px; font-size:8px; }
.nav-item>b { min-width:20px; height:20px; display:grid; place-items:center; padding:0 5px; color:#4b251f; background:var(--coral); border-radius:999px; font-size:8px; }
.nav-item:hover { color:#fff; background:rgba(255,255,255,.05); }
.nav-item.active { color:#10283d; background:var(--accent); }
.nav-item.active>span { border-color:rgba(16,40,61,.12); }
.sidebar-foot { margin-top:auto; padding:15px; border:1px solid rgba(255,255,255,.08); border-radius:13px; background:rgba(255,255,255,.035); }
.sidebar-foot span { color:var(--accent); font-size:8px; font-weight:900; letter-spacing:.15em; }
.sidebar-foot p { color:#829aab; font-size:9px; line-height:1.5; margin:7px 0 0; }
.main-panel { min-width:0; }
.topbar { position:sticky; z-index:30; top:0; min-height:84px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:15px clamp(22px,3.5vw,52px); background:rgba(255,255,255,.93); border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.topbar p { color:#82909c; font-size:10px; margin:0 0 4px; text-transform:capitalize; }
.topbar h1 { font-size:calc(20px * var(--text-scale)); margin:0; }
.topbar-actions { display:flex; align-items:center; gap:10px; }
.icon-button { position:relative; width:40px; height:40px; display:grid; place-items:center; border:1px solid var(--line); border-radius:11px; color:#8a9a96; background:#fff; cursor:pointer; }
.icon-button>span { width:12px; height:12px; display:grid; place-items:center; font-size:13px; }
.icon-button>b { position:absolute; right:-4px; top:-5px; min-width:18px; height:18px; display:grid; place-items:center; color:#fff; background:var(--danger); border:2px solid #fff; border-radius:999px; font-size:7px; }
.popover-wrap { position:relative; }
.popover { position:absolute; z-index:60; right:0; top:calc(100% + 10px); width:360px; overflow:hidden; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:0 24px 70px rgba(15,38,58,.18); }
.notification-popover header { display:flex; align-items:center; justify-content:space-between; padding:18px; border-bottom:1px solid var(--line); }
.notification-popover h3 { margin:3px 0 0; font-size:16px; }
.notice-list { max-height:420px; overflow:auto; }
.notice-list article { display:grid; grid-template-columns:10px 1fr; gap:10px; padding:14px 18px; border-bottom:1px solid #edf1ef; }
.notice-list article.unread { background:#f4faf7; }
.notice-list article.actionable{grid-template-columns:10px minmax(0,1fr) auto;cursor:pointer;transition:background .18s ease,transform .18s ease}.notice-list article.actionable:hover,.notice-list article.actionable:focus-visible{background:#eaf6f1;outline:none}.notice-list article.actionable:hover{transform:translateX(-2px)}.notice-arrow{align-self:center;color:var(--green);font-size:22px}.notice-list article.actionable small{color:var(--green);font-weight:800}
.notice-dot { width:8px; height:8px; margin-top:4px; border-radius:50%; background:#9cacb5; }
.notice-dot.checkin,.notice-dot.checkout,.notice-dot.approved { background:#42a57f; }
.notice-dot.device,.notice-dot.early_checkout,.notice-dot.overtime { background:#e0a842; }
.notice-list strong { font-size:11px; }
.notice-list p { color:var(--muted); font-size:9px; line-height:1.45; margin:4px 0; }
.notice-list small { color:#9aa6af; font-size:8px; }
.account-trigger { min-height:42px; display:flex; align-items:center; gap:8px; border:0; background:transparent; cursor:pointer; padding:2px 4px; }
.account-trigger>span:nth-child(2) { display:grid; gap:2px; text-align:left; }
.account-trigger strong { max-width:145px; font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.account-trigger small { color:#8a98a3; font-size:8px; }
.account-trigger>b { color:#93a0aa; }
.account-popover { width:270px; padding:8px; }
.account-card { display:flex; align-items:center; gap:10px; padding:12px; border-bottom:1px solid var(--line); margin-bottom:5px; }
.account-card div { min-width:0; display:grid; gap:3px; }
.account-card strong { font-size:11px; }
.account-card small { color:var(--muted); font-size:8px; overflow:hidden; text-overflow:ellipsis; }
.account-popover button,.account-popover a { width:100%; min-height:38px; display:flex; align-items:center; justify-content:space-between; border:0; border-radius:8px; padding:0 11px; background:transparent; font-size:10px; cursor:pointer; }
.account-popover button:hover,.account-popover a:hover { background:#f3f7f4; }
.page-content { padding:38px clamp(22px,3.5vw,52px) 60px; }
.hero-row,.page-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.hero-row h2,.page-intro h2 { font-size:calc(29px * var(--text-scale)); margin:7px 0 6px; }
.hero-row p,.page-intro p { color:var(--muted); font-size:calc(11px * var(--text-scale)); margin:0; line-height:1.55; }
.intro-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.content-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 1px 0 rgba(15,38,58,.015); }
.card-head { min-height:52px; display:flex; align-items:flex-start; justify-content:space-between; gap:15px; }
.card-head h3 { font-size:calc(17px * var(--text-scale)); margin:5px 0 0; }
.stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.stat-card { position:relative; min-height:130px; overflow:hidden; padding:21px; border:1px solid var(--line); border-radius:15px; background:#fff; }
.stat-card::after { content:""; position:absolute; right:-22px; bottom:-35px; width:95px; height:95px; border-radius:50%; background:var(--card-color,#eaf3f0); opacity:.8; }
.stat-card.navy { --card-color:#dfe9f1; }.stat-card.mint{--card-color:var(--accent)}.stat-card.amber{--card-color:var(--amber)}.stat-card.coral{--card-color:var(--coral)}
.stat-card span { color:#687887; font-size:calc(10px * var(--text-scale)); font-weight:700; }
.stat-card strong { display:block; font-size:calc(34px * var(--text-scale)); margin:10px 0 3px; }
.stat-card small { color:#8c989f; font-size:9px; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(270px,.65fr); gap:18px; }
.activity-card { padding:23px; }
.activity-list { margin-top:10px; }
.activity-row { min-height:66px; display:grid; grid-template-columns:auto minmax(110px,1fr) minmax(180px,1.25fr) 70px auto; align-items:center; gap:10px; border-top:1px solid #edf1ef; }
.activity-row>div { min-width:0; display:grid; gap:3px; }
.activity-row strong { font-size:10px; }
.activity-row small { color:var(--muted); font-size:8px; }
.activity-row .route { grid-template-columns:1fr auto 1fr; align-items:center; display:grid; color:#4e625e; font-size:9px; }
.activity-row .route span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.activity-row .route b { color:#99aaa5; }
.focus-card { padding:25px; color:#fff; background:linear-gradient(145deg,var(--brand),var(--brand-deep)); border-radius:var(--radius); box-shadow:var(--shadow); }
.focus-card h3 { color:#fff; font-size:21px; margin:8px 0 18px; }
.focus-card ul { list-style:none; padding:0; margin:0 0 20px; display:grid; }
.focus-card li { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-top:1px solid rgba(255,255,255,.1); }
.focus-card li b { font-size:11px; }.focus-card li span { color:#9eb1bf; font-size:9px; }
.light-button { width:100%; color:var(--brand); background:var(--accent); border:0; }
.roster-strip { margin-top:18px; padding:22px; }
.roster-cards { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:9px; margin-top:15px; }
.roster-cards article { min-width:0; min-height:92px; display:grid; grid-template-columns:auto 1fr; gap:4px 8px; padding:12px; border:1px solid var(--line); border-radius:11px; background:#fafcfb; }
.roster-cards article>span { width:27px; height:27px; display:grid; place-items:center; color:var(--brand); background:var(--accent); border-radius:8px; font-weight:900; font-size:10px; }
.roster-cards article>div { min-width:0; display:grid; gap:3px; }
.roster-cards strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9px; }
.roster-cards small { color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:8px; }
.roster-cards b { grid-column:2; font-size:10px; }

/* Filters and tables */
.filter-bar,.bulk-bar,.filter-panel { display:flex; align-items:flex-end; gap:10px; padding:13px; margin-bottom:13px; background:#fff; border:1px solid var(--line); border-radius:13px; }
.filter-bar input,.filter-bar select,.bulk-bar select { height:var(--input-h); border:1px solid var(--line); border-radius:9px; background:#fbfcfb; padding:0 12px; font-size:calc(10px * var(--text-scale)); outline:none; }
.filter-bar input { min-width:240px; flex:1; }
.filter-bar select { min-width:150px; }
.filter-bar>span { color:var(--muted); margin-left:auto; padding:0 8px 12px; font-size:9px; white-space:nowrap; }
.bulk-bar { align-items:center; color:#fff; background:var(--brand); border-color:var(--brand); }
.bulk-bar strong { font-size:11px; margin-right:auto; }.bulk-bar select{min-width:200px}.bulk-bar .primary-button{background:var(--accent);border-color:var(--accent);color:var(--brand)}.bulk-bar .text-button{color:#fff}
.table-card { overflow:hidden; }
.table-card>.card-head { padding:22px 23px 13px; }
.table-scroll { width:100%; overflow:auto; }
.data-table { width:100%; border-collapse:collapse; min-width:820px; }
.data-table th { height:42px; padding:0 13px; color:#74837f; background:#f6f8f7; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:8px; font-weight:900; letter-spacing:.07em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.data-table td { min-height:55px; padding:11px 13px; border-bottom:1px solid #edf1ef; font-size:9px; vertical-align:middle; }
.data-table td>strong,.data-table td>small { display:block; }.data-table td>strong{font-size:10px}.data-table td>small{color:var(--muted);margin-top:4px;font-size:8px}
.data-table tbody tr:hover { background:#fbfdfc; }
.employee-table { min-width:1150px; }
.person-cell { display:flex; align-items:center; gap:9px; min-width:170px; }
.person-cell>div { display:grid; gap:2px; }
.mini-avatar { width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#e7f2ee;color:var(--green);font-weight:900; }
.role-chip { display:inline-flex; border-radius:999px; padding:5px 8px; font-size:8px; font-weight:900; }
.role-chip.purple{color:#71528b;background:#f0e8f7}.role-chip.blue{color:#355f8b;background:#e7f0f8}.role-chip.orange{color:#8b651c;background:#fbf1d7}.role-chip.green{color:#35755f;background:#e2f2ec}
.rule-chips { display:flex; gap:4px; }.rule-chips i{font-style:normal;font-size:7px;font-weight:900;border-radius:5px;padding:4px 5px}.rule-chips i.on{color:#34735f;background:#e2f2ec}.rule-chips i.off{color:#8a6d27;background:#fbefd1}
.row-actions { display:flex; align-items:center; justify-content:flex-end; gap:5px; white-space:nowrap; }
.row-actions button { min-height:27px; border:1px solid var(--line); border-radius:7px; background:#fff; padding:0 8px; font-size:8px; font-weight:800; cursor:pointer; }
.status-pill { display:inline-flex; align-items:center; gap:4px; border-radius:999px; padding:5px 8px; font-size:8px; font-weight:900; white-space:nowrap; }
.status-pill.complete,.status-pill.approved,.status-pill.accepted,.status-pill.sent,.status-pill.normal { color:#286f59;background:#def1e9; }
.status-pill.active,.status-pill.pending,.status-pill.queued { color:#82611c;background:#fbefd0; }
.status-pill.rejected { color:#98463d;background:#f9e2df; }
.status-pill.sick { color:#5b648f;background:#e8eafa; }.status-pill.gps_exempt{color:#4e6687;background:#e4edf7}
.empty { min-height:180px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:25px; }
.empty.compact { min-height:110px; width:100%; }
.empty>span { width:35px;height:35px;display:grid;place-items:center;border:1px dashed #bbc7c2;border-radius:50%;color:#8fa09a;font-size:18px; }
.empty strong { font-size:12px; margin-top:9px; }.empty p{max-width:330px;color:var(--muted);font-size:9px;line-height:1.5;margin:5px 0 0}

/* Outlet and shift cards */
.outlet-grid,.shift-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.outlet-card,.shift-card { overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:15px; }
.outlet-map { position:relative; height:122px; overflow:hidden; background:#eef4f0; }
.map-grid { position:absolute; inset:-30px; opacity:.8; background:linear-gradient(35deg,transparent 46%,#fff 47%,#fff 50%,transparent 51%),linear-gradient(-30deg,transparent 55%,#dce9e3 56%,#dce9e3 59%,transparent 60%);background-size:100px 80px,130px 100px;transform:rotate(4deg)}
.outlet-map i { position:absolute; left:50%; top:47%; width:32px;height:32px;background:var(--coral);border:5px solid #fff;border-radius:50% 50% 50% 0;transform:translate(-50%,-50%) rotate(-45deg);box-shadow:0 7px 15px rgba(30,55,72,.18)}
.outlet-map b { position:absolute;left:50%;top:76%;transform:translateX(-50%);padding:4px 7px;border-radius:6px;background:#fff;font-size:8px;box-shadow:0 4px 14px rgba(30,55,72,.1)}
.outlet-card-body { padding:17px; }.outlet-card-body header,.shift-card header{display:flex;align-items:center;justify-content:space-between}.outlet-card-body header>span{color:var(--green);font-size:8px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.outlet-card h3,.shift-card h3{font-size:16px;margin:10px 0 5px}.outlet-card p{min-height:34px;color:var(--muted);font-size:9px;line-height:1.5}
.outlet-card dl,.shift-card dl{display:grid;gap:7px;margin:15px 0 0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.outlet-card dl div,.shift-card dl div{display:flex;justify-content:space-between;gap:10px}.outlet-card dt,.shift-card dt{color:var(--muted);font-size:8px}.outlet-card dd,.shift-card dd{margin:0;font-size:8px;font-weight:800;text-align:right}
.outlet-card footer,.shift-card footer{display:flex;justify-content:flex-end;gap:7px;padding-top:12px}.outlet-card footer button,.shift-card footer button{border:0;background:transparent;font-size:8px;font-weight:900;cursor:pointer}
.shift-card{padding:20px}.shift-type{border-radius:6px;padding:5px 7px;font-size:7px;font-weight:900;letter-spacing:.08em}.shift-type.flexible{color:#39705e;background:#e2f2ec}.shift-type.fixed{color:#486d95;background:#e5eef7}.shift-type.roster{color:#84621e;background:#fbefd1}
.shift-time{display:flex;align-items:baseline;justify-content:space-between;gap:10px;color:var(--brand);font-size:23px;font-weight:900;margin:17px 0}.shift-time small{color:var(--muted);font-size:8px;font-weight:500}

/* Approvals, announcements, devices */
.segmented-tabs { display:flex;gap:4px;overflow:auto;margin-bottom:16px;padding:5px;border:1px solid var(--line);border-radius:12px;background:#fff;width:max-content;max-width:100%; }
.segmented-tabs button{min-height:36px;display:flex;align-items:center;gap:7px;border:0;border-radius:8px;background:transparent;padding:0 12px;font-size:9px;font-weight:800;cursor:pointer;white-space:nowrap}.segmented-tabs button b{min-width:19px;height:19px;display:grid;place-items:center;border-radius:999px;background:#eef2f0;font-size:7px}.segmented-tabs button.active{color:#fff;background:var(--brand)}.segmented-tabs button.active b{color:var(--brand);background:var(--accent)}
.approval-list{display:grid;gap:10px}.approval-card{display:grid;grid-template-columns:230px 1fr auto;align-items:center;gap:20px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#fff}.approval-person{display:flex;align-items:center;gap:10px}.approval-person>div{display:grid;gap:3px}.approval-person strong{font-size:11px}.approval-person small{color:var(--muted);font-size:8px}.approval-detail{padding-left:20px;border-left:1px solid var(--line)}.approval-detail span{font-size:10px;font-weight:900}.approval-detail p{color:var(--muted);font-size:9px;line-height:1.45;margin:5px 0}.approval-detail small{color:#98a49f;font-size:8px}.approval-actions{display:flex;gap:7px}
.two-column{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:17px;align-items:start}.announcement-form,.announcement-list{padding:22px}.announcement-form{display:grid;gap:13px}.announcement-form label,.settings-fields label{display:grid;gap:6px}.announcement-form label>span,.settings-fields label>span{color:#53645f;font-size:9px;font-weight:900}.announcement-form input,.announcement-form select,.announcement-form textarea,.settings-fields input,.settings-fields select,.settings-fields textarea{width:100%;min-height:var(--input-h);border:1px solid var(--line);border-radius:9px;background:#fbfcfb;padding:0 11px;outline:none;font-size:10px}.announcement-form textarea,.settings-fields textarea{padding-top:10px;resize:vertical}.announcement-list article{display:flex;justify-content:space-between;gap:12px;padding:15px 0;border-top:1px solid var(--line)}.announcement-list article div>span{color:var(--green);font-size:7px;font-weight:900;letter-spacing:.1em}.announcement-list h4{font-size:12px;margin:5px 0}.announcement-list p{color:var(--muted);font-size:9px;line-height:1.5;margin:0 0 5px}.announcement-list small{color:#97a29e;font-size:8px}.announcement-list article>button{align-self:flex-start;border:0;background:transparent;color:var(--danger);font-size:8px;font-weight:900;cursor:pointer}
.security-callout{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 23px;margin-bottom:14px;color:#fff;background:linear-gradient(135deg,var(--brand),#264d6e);border-radius:14px}.security-callout b{font-size:12px}.security-callout p{max-width:720px;color:#b1c2ce;font-size:9px;line-height:1.5;margin:5px 0 0}.security-callout>span{color:var(--brand);background:var(--accent);border-radius:8px;padding:7px 9px;font-size:8px;font-weight:900;white-space:nowrap}.truncate-cell{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Reports */
.filter-panel { display:grid;grid-template-columns:150px 150px 180px minmax(180px,1fr) auto;align-items:end; }
.filter-panel.report-filter-extended{grid-template-columns:145px 145px 185px 165px 180px minmax(190px,1fr) auto}.summary-report-table td:nth-child(n+3):nth-child(-n+9){white-space:nowrap}.summary-report-table td:first-child{min-width:150px}.summary-report-table td:nth-child(2){min-width:210px}
.filter-panel label{display:grid;gap:6px}.filter-panel label>span{color:#53645f;font-size:8px;font-weight:900}.filter-panel input,.filter-panel select{width:100%;height:var(--input-h);border:1px solid var(--line);border-radius:8px;background:#fbfcfb;padding:0 10px;font-size:9px;outline:none}
.report-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin:14px 0}.report-summary article{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.report-summary span{display:block;color:var(--muted);font-size:8px}.report-summary strong{display:block;margin-top:6px;font-size:17px}.export-actions{display:flex;gap:7px}.inline-error{padding:11px 13px;margin:10px 0;color:var(--danger);background:#fff0ee;border:1px solid #efd7d3;border-radius:10px;font-size:9px}

/* Settings */
.settings-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:16px}.settings-card,.logo-card{padding:23px}.settings-card.full{grid-column:1/-1}.settings-fields{display:grid;gap:14px;margin-top:17px}.settings-fields.three{grid-template-columns:repeat(3,1fr)}.settings-fields.five{grid-template-columns:repeat(5,1fr)}.logo-card header h3{margin:5px 0 15px}.logo-preview{height:155px;display:grid;place-items:center;overflow:hidden;border:1px dashed #c8d3ce;border-radius:12px;background:#f2f6f3}.logo-preview img{max-width:85%;max-height:80%;object-fit:contain}.logo-preview span{width:65px;height:65px;display:grid;place-items:center;color:var(--brand);background:var(--accent);border-radius:18px;font-size:25px;font-weight:900}.file-button{position:relative;width:100%;margin-top:12px;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.logo-card>small{display:block;color:var(--muted);font-size:8px;text-align:center;margin-top:8px}.settings-save{grid-column:1/-1;display:flex;justify-content:flex-end}.maintenance-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:17px}.maintenance-card{padding:23px}.maintenance-card h3{margin:6px 0}.maintenance-card p{color:var(--muted);font-size:9px;line-height:1.5}.maintenance-card>div{display:flex;gap:8px;margin-top:15px}.danger-zone{border-color:#eed7d3}.cleanup-fields{display:grid!important;grid-template-columns:90px 1fr auto}.cleanup-fields input{min-width:0;height:var(--input-h);border:1px solid var(--line);border-radius:8px;padding:0 9px;font-size:9px}.cleanup-fields button{border:0;border-radius:8px;color:#fff;background:var(--danger);padding:0 13px;font-size:9px;font-weight:900;cursor:pointer}
.pixel-input{position:relative;display:flex;align-items:center}.pixel-input input{padding-right:42px!important}.pixel-input b{position:absolute;right:12px;color:var(--muted);font-size:calc(9px * var(--text-scale));pointer-events:none}.appearance-pixel-grid>label>small{min-height:24px}

/* Employee */
.employee-shell{min-height:100vh;background:var(--wash);padding-bottom:0}.employee-topbar{position:sticky;z-index:30;top:0;height:76px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:0 max(24px,calc((100vw - 1180px)/2));background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.employee-topbar .brand{color:var(--brand)}.employee-topbar .brand.compact img,.employee-topbar .brand.compact .brand-mark{width:36px;height:36px;border-radius:10px}.employee-topbar nav{display:flex;gap:4px;padding:4px;background:#f1f5f2;border-radius:10px}.employee-topbar nav button{min-height:34px;border:0;border-radius:7px;background:transparent;padding:0 14px;color:#6d7d78;font-size:9px;font-weight:800;cursor:pointer}.employee-topbar nav button.active{color:var(--brand);background:#fff;box-shadow:0 2px 8px rgba(20,45,65,.07)}.employee-topbar>.topbar-actions{justify-self:end}.employee-content{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:38px 0 62px}.employee-welcome{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.profile-greeting{display:flex;align-items:center;gap:15px}.employee-welcome h1{font-size:30px;margin:5px 0}.employee-welcome p{color:var(--muted);font-size:10px;margin:0}.identity-badges{display:flex;gap:7px;flex-wrap:wrap}.identity-badges span{border-radius:999px;padding:7px 10px;font-size:8px;font-weight:900}.identity-badges .ok{color:#2f755e;background:#ddf0e8}.identity-badges .warn{color:#895f19;background:#fbefd0}.identity-badges .free{color:#496c91;background:#e3edf7}
.avatar{width:39px;height:39px;flex:0 0 auto;display:grid;place-items:center;overflow:hidden;border-radius:12px;color:var(--brand);background:var(--accent);font-size:11px;font-weight:900}.avatar.small{width:32px;height:32px;border-radius:10px;font-size:9px}.avatar.large{width:70px;height:70px;border-radius:20px;font-size:21px}.avatar img{width:100%;height:100%;object-fit:cover}
.profile-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 17px;margin-bottom:14px;color:#6f5018;background:#fff7df;border:1px solid #f0dfa8;border-radius:12px}.profile-banner b{font-size:10px}.profile-banner p{font-size:8px;margin:3px 0 0}.profile-banner button{border:0;color:#674a15;background:#f2d077;border-radius:8px;padding:8px 10px;font-size:8px;font-weight:900;cursor:pointer}.announcement-hero{position:relative;overflow:hidden;padding:22px 25px;margin-bottom:17px;color:#fff;background:linear-gradient(135deg,#284d6b,var(--brand));border-radius:16px}.announcement-hero::after{content:"";position:absolute;right:-60px;top:-90px;width:240px;height:240px;border:45px solid rgba(169,231,214,.08);border-radius:50%}.announcement-hero>span{color:var(--accent);font-size:8px;font-weight:900;letter-spacing:.14em}.announcement-hero h2{color:#fff;font-size:19px;margin:7px 0}.announcement-hero p{max-width:760px;color:#c0ced7;font-size:10px;line-height:1.55;margin:0}.announcement-hero small{display:block;color:#8fa8b9;font-size:8px;margin-top:10px}.employee-main-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:17px;align-items:start}
.clock-card{position:relative;overflow:hidden;padding:28px;color:#fff;background:linear-gradient(145deg,var(--brand),var(--brand-deep));border-radius:20px;box-shadow:0 24px 60px color-mix(in srgb,var(--brand) 20%,transparent)}.clock-card::after{content:"";position:absolute;right:-120px;top:-160px;width:330px;height:330px;border:64px solid rgba(169,231,214,.045);border-radius:50%}.clock-card>header{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between}.clock-card h2{color:#fff;font-size:22px;margin:7px 0}.live-badge{padding:6px 8px;color:var(--brand);background:var(--accent);border-radius:6px;font-size:7px;font-weight:900}.live-badge.muted{color:#9db0bd;background:rgba(255,255,255,.08)}.clock-pin{position:relative;z-index:1;display:flex;align-items:center;gap:18px;margin:40px 0}.clock-pin>span{width:72px;height:72px;display:grid;place-items:center;border:1px solid rgba(169,231,214,.22);border-radius:50%;background:rgba(169,231,214,.08)}.clock-pin i{width:37px;height:37px;display:block;border-radius:50% 50% 50% 0;background:var(--accent);transform:rotate(-45deg)}.clock-pin strong{font-size:12px}.clock-pin p{max-width:440px;color:#a8b9c5;font-size:9px;line-height:1.55;margin:5px 0 0}.clock-field{position:relative;z-index:1;display:grid;gap:6px;margin:13px 0}.clock-field>span{font-size:8px;font-weight:900}.clock-field small{color:#8ea4b3}.clock-field input,.clock-field select{width:100%;height:var(--input-h);border:1px solid rgba(255,255,255,.13);border-radius:9px;color:#fff;background:rgba(255,255,255,.06);padding:0 11px;outline:none;font-size:9px}.clock-field select option{color:var(--ink)}.employee-action{position:relative;z-index:1;width:100%;min-height:52px;display:flex;align-items:center;justify-content:center;border:0;border-radius:11px;color:var(--brand);background:var(--accent);font-size:11px;font-weight:900;cursor:pointer}.employee-action.checkout{background:#fff}.employee-action>span{position:absolute;right:18px;font-size:16px}.employee-action:disabled{cursor:not-allowed;opacity:.5}.clock-card>footer{position:relative;z-index:1;display:flex;justify-content:space-between;gap:15px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);font-size:8px}.clock-card>footer span{color:#8fa5b4}.clock-card>footer strong{text-align:right}.work-meter{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;margin:30px 0 12px}.work-meter div{display:grid;gap:4px}.work-meter span{color:#92a8b8;font-size:8px}.work-meter strong{font-size:32px}.work-meter b{color:var(--accent);font-size:14px}.progress{position:relative;z-index:1;height:7px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.1)}.progress span{display:block;height:100%;background:var(--accent);border-radius:inherit}.clock-info{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.clock-info div{display:grid;gap:5px;padding-left:10px;border-left:1px solid rgba(255,255,255,.12)}.clock-info span{color:#8fa5b4;font-size:7px}.clock-info strong{font-size:9px}.early-area{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:9px;margin-top:10px}.early-area p{color:#91a7b5;font-size:8px;margin:0}.early-area button{border:0;color:var(--accent);background:transparent;font-size:8px;font-weight:900;cursor:pointer}.approved-box{position:relative;z-index:1;margin-top:10px;padding:9px 11px;color:#214d3f;background:var(--accent);border-radius:8px;font-size:8px;font-weight:800}
.employee-side{display:grid;gap:17px}.today-shift,.allowed-outlets{padding:20px}.today-shift h3{font-size:16px;margin:7px 0 17px}.today-shift>div{display:flex;align-items:baseline;justify-content:space-between}.today-shift>div strong{font-size:24px;color:var(--brand)}.today-shift>div span{color:var(--green);font-size:10px;font-weight:900}.today-shift p{color:var(--muted);font-size:8px;line-height:1.5;margin:12px 0 0}.allowed-outlets header{display:flex;justify-content:space-between}.allowed-outlets header b{color:var(--brand);background:var(--accent);border-radius:7px;padding:4px 7px;font-size:8px}.allowed-outlets>div{display:flex;align-items:center;gap:9px;padding:11px 0;border-top:1px solid var(--line)}.allowed-outlets>div i{width:9px;height:9px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px #fceae6}.allowed-outlets>div span{display:grid;gap:3px}.allowed-outlets strong{font-size:9px}.allowed-outlets small{color:var(--muted);font-size:7px}.employee-bottom{display:grid;grid-template-columns:1fr 330px;gap:17px;margin-top:17px}.mini-history,.quick-requests{padding:21px}.mini-history>div{display:grid;grid-template-columns:90px 1fr 65px auto;align-items:center;gap:9px;padding:11px 0;border-top:1px solid var(--line);font-size:8px}.mini-history>div>span{color:var(--muted)}.mini-history>div>div{display:grid;gap:3px}.mini-history strong{font-size:9px}.mini-history small{color:var(--muted);font-size:7px}.mini-history b{font-size:9px}.quick-requests h3{font-size:16px;margin:6px 0 12px}.quick-requests button{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;border:0;border-top:1px solid var(--line);background:#fff;padding:12px 0;text-align:left;cursor:pointer}.quick-requests button>span{width:33px;height:33px;display:grid;place-items:center;color:var(--brand);background:#fff2cc;border-radius:9px;font-size:9px;font-weight:900}.quick-requests button>div{display:grid;gap:3px}.quick-requests strong{font-size:9px}.quick-requests small{color:var(--muted);font-size:7px}.employee-mobile-nav{display:none}
.month-picker{display:grid;gap:6px;color:#53645f;font-size:8px;font-weight:900}.month-picker input{height:var(--input-h);border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 10px}.roster-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.roster-calendar article{min-height:150px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}.roster-calendar article.today{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}.roster-calendar header{display:flex;justify-content:space-between;color:var(--muted);font-size:8px}.roster-calendar header b{width:27px;height:27px;display:grid;place-items:center;color:var(--brand);background:var(--accent);border-radius:8px}.roster-calendar h3{font-size:11px;margin:16px 0 6px}.roster-calendar>article>strong{display:block;font-size:20px;color:var(--brand)}.roster-calendar>article>small{display:block;color:var(--muted);font-size:8px;margin:4px 0 10px}.roster-calendar em{display:block;color:var(--danger);font-size:7px;font-style:normal;margin-top:7px}.loading-line{text-align:center;color:var(--muted);font-size:9px}.employee-request-grid{display:grid;grid-template-columns:1fr 340px;gap:17px}.request-history,.device-self{padding:22px}.request-history>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:14px 0;border-top:1px solid var(--line)}.request-icon{width:33px;height:33px;display:grid;place-items:center;color:var(--brand);background:#e6f2ee;border-radius:9px;font-weight:900}.request-history>div>div{display:grid;gap:3px}.request-history strong{font-size:10px}.request-history p{color:var(--muted);font-size:8px;margin:0}.request-history small{color:#97a39f;font-size:7px}.device-self h3{font-size:18px;margin:6px 0}.device-self>p{color:var(--muted);font-size:9px;line-height:1.5}.device-self>div{display:grid;grid-template-columns:1fr auto;gap:5px;padding:12px 0;border-top:1px solid var(--line)}.device-self>div>span{font-size:9px;font-weight:800}.device-self>div>small{grid-column:1/-1;color:var(--muted);font-size:7px}

/* Modal/forms */
.modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:rgba(8,25,39,.58);backdrop-filter:blur(5px)}.modal{width:min(560px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:18px;box-shadow:0 30px 90px rgba(8,25,39,.3)}.modal.wide{width:min(760px,100%)}.modal>header{position:sticky;z-index:2;top:0;display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:22px 24px 17px;background:#fff;border-bottom:1px solid var(--line)}.modal>header h2{font-size:20px;margin:5px 0}.modal>header p{max-width:510px;color:var(--muted);font-size:9px;line-height:1.5;margin:0}.modal>header>button{width:31px;height:31px;flex:0 0 auto;border:1px solid var(--line);border-radius:8px;background:#f7f9f8;font-size:18px;cursor:pointer}.modal-form{display:grid;gap:14px;padding:21px 24px 24px}.field{display:grid;gap:6px}.field>span,.checkbox-field legend{color:#50615c;font-size:9px;font-weight:900}.field>small,.checkbox-field>small{color:var(--muted);font-size:7px}.field input,.field select,.field textarea{width:100%;min-height:var(--input-h);border:1px solid var(--line);border-radius:9px;background:#fbfcfb;padding:0 11px;font-size:10px;outline:none}.field textarea{min-height:86px;padding-top:10px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.filter-bar input:focus,.filter-panel input:focus{border-color:#7eb9a8;box-shadow:0 0 0 3px rgba(169,231,214,.25)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checkbox-field{margin:0;padding:13px;border:1px solid var(--line);border-radius:11px}.checkbox-field legend{padding:0 5px}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.check-grid label{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px;background:#f6f8f7}.check-grid label span{display:grid;gap:2px;font-size:9px;font-weight:800}.check-grid label small{color:var(--muted);font-size:7px;font-weight:500}.switch-grid{display:grid;gap:7px}.switch-grid>label{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid var(--line);border-radius:9px}.switch-grid>label span{display:grid;gap:3px}.switch-grid b{font-size:9px}.switch-grid small{color:var(--muted);font-size:7px}.simple-check{display:flex!important;grid-template-columns:auto 1fr;align-items:center;gap:7px;font-size:9px;font-weight:800}.coordinate-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:-5px}.coordinate-head>span{color:#50615c;font-size:8px;font-weight:900}.coordinate-head button{border:0;background:transparent;color:var(--green);font-size:8px;font-weight:900;cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:3px}.profile-photo-editor{display:flex;align-items:center;gap:14px}.photo-preview{width:85px;height:85px;display:grid;place-items:center;overflow:hidden;border-radius:20px;background:#edf4f1}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-preview span{font-size:27px;font-weight:900;color:var(--brand)}.profile-photo-editor label{position:relative;overflow:hidden}.profile-photo-editor input{position:absolute;inset:0;opacity:0}.warning-box{padding:12px;color:#75561b;background:#fff5d8;border:1px solid #f0dfa7;border-radius:9px}.warning-box b{font-size:9px}.warning-box p{font-size:8px;margin:3px 0 0}.form-success{margin:0;padding:8px 10px;color:#2d745c;background:#e3f3ed;border-radius:8px;font-size:8px}
.toast{position:fixed;z-index:200;right:22px;bottom:22px;max-width:min(440px,calc(100vw - 44px));display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:13px 14px;color:#fff;background:var(--brand-deep);border-radius:12px;box-shadow:0 18px 50px rgba(12,31,49,.25);animation:toastIn .25s ease}.toast.error{background:#713b36}.toast>span{width:22px;height:22px;display:grid;place-items:center;color:var(--brand);background:var(--accent);border-radius:50%;font-size:10px;font-weight:900}.toast.error>span{color:#733b36;background:#ffc9c1}.toast p{font-size:10px;font-weight:700;margin:0;line-height:1.4}.toast button{border:0;color:#a9bac6;background:transparent;font-size:17px;cursor:pointer}@keyframes toastIn{from{transform:translateY(10px);opacity:0}}
.feedback-backdrop{position:fixed;z-index:240;inset:0;display:grid;place-items:center;padding:18px;background:rgba(8,25,39,.6);backdrop-filter:blur(7px);animation:feedbackFade .18s ease}.feedback-dialog{position:relative;width:min(410px,100%);overflow:hidden;padding:30px 29px 25px;text-align:center;background:#fff;border:1px solid rgba(255,255,255,.8);border-radius:22px;box-shadow:0 30px 90px rgba(8,25,39,.34);animation:feedbackIn .26s cubic-bezier(.2,.8,.2,1)}.feedback-dialog::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--accent)}.feedback-dialog.error::before,.feedback-dialog.danger::before{background:#e67d70}.feedback-dialog.warning::before{background:#e7bb54}.feedback-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 18px;color:#245b49;background:linear-gradient(145deg,#daf6ec,var(--accent));border-radius:20px;font-size:28px;font-weight:950;box-shadow:0 12px 26px rgba(77,157,131,.2)}.feedback-dialog.error .feedback-icon,.feedback-dialog.danger .feedback-icon{color:#843f37;background:linear-gradient(145deg,#fff0ed,#ffc9c1);box-shadow:0 12px 26px rgba(177,81,70,.16)}.feedback-dialog.warning .feedback-icon{color:#765715;background:linear-gradient(145deg,#fff8e2,#ffe19b)}.feedback-dialog h2{font-size:24px;margin:6px 0 9px}.feedback-dialog>p{color:var(--muted);font-size:11px;line-height:1.65;margin:0 auto 22px}.feedback-dialog>.btn-primary{width:100%;min-height:43px}.feedback-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:21px}.feedback-actions button{min-height:42px}.danger-button{border:0;border-radius:9px;color:#fff;background:#a64f45;font-size:9px;font-weight:900;cursor:pointer}.danger-button:hover{background:#893f37}.feedback-input{display:grid;gap:7px;text-align:left}.feedback-input>span{color:#50615c;font-size:9px;font-weight:900}.feedback-input textarea{width:100%;min-height:90px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fbfcfb;resize:vertical;outline:none;font:inherit;font-size:10px}.feedback-input textarea:focus{border-color:#7eb9a8;box-shadow:0 0 0 3px rgba(169,231,214,.25)}@keyframes feedbackFade{from{opacity:0}}@keyframes feedbackIn{from{transform:translateY(14px) scale(.97);opacity:0}}

/* Loading/login */
.loading-screen,.state-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px}.loading-logo{width:58px;height:58px;display:grid;place-items:center;border-radius:17px;color:var(--accent);background:var(--brand);font-size:25px;font-weight:900;animation:pulse 1.4s ease-in-out infinite}.loading-screen p,.state-screen p{color:var(--muted);font-size:11px}.state-screen h1{font-size:24px;margin:17px 0 0}.state-screen .primary-button{margin-top:14px}@keyframes pulse{50%{transform:scale(.94);opacity:.75}}
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:#f8faf8}.login-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(42px,8vw,120px)}.brand-mark-large{width:55px;height:55px;border-radius:16px;font-size:24px;margin-bottom:27px}.login-card h1{max-width:650px;font-size:clamp(40px,5vw,69px);line-height:1.01;letter-spacing:-.06em;margin:10px 0 17px}.login-card>p{max-width:590px;color:var(--muted);font-size:14px;line-height:1.7}.login-button{min-height:52px;margin-top:15px}.login-points{display:flex;flex-wrap:wrap;gap:13px 20px;margin-top:25px;color:#718078;font-size:9px;font-weight:800}.login-points span::before{content:"✓";color:var(--green);margin-right:6px}.login-visual{position:relative;overflow:hidden;margin:18px;border-radius:24px;background:linear-gradient(145deg,var(--brand),#0c2238)}.login-visual::before{content:"";position:absolute;inset:0;opacity:.35;background:linear-gradient(40deg,transparent 48%,rgba(255,255,255,.06) 49%,rgba(255,255,255,.06) 51%,transparent 52%);background-size:90px 90px}.visual-orbit{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(169,231,214,.15);border-radius:50%}.orbit-one{width:520px;height:520px}.orbit-two{width:350px;height:350px;background:rgba(169,231,214,.02)}.map-pin{position:absolute;left:50%;top:50%;width:110px;height:110px;display:grid;place-items:center;transform:translate(-50%,-50%);border:1px solid rgba(169,231,214,.2);border-radius:50%;background:rgba(169,231,214,.08)}.map-pin span{position:relative;width:50px;height:50px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--accent);box-shadow:0 15px 30px rgba(0,0,0,.2)}.map-pin span::after{content:"";position:absolute;left:18px;top:18px;width:14px;height:14px;border-radius:50%;background:var(--brand)}.mini-card{position:absolute;z-index:2;min-width:210px;display:grid;grid-template-columns:auto 1fr;column-gap:9px;padding:15px;color:var(--ink);background:rgba(255,255,255,.94);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.17)}.mini-card strong{font-size:10px}.mini-card small{grid-column:2;color:var(--muted);font-size:8px;margin-top:4px}.mini-card-one{left:9%;top:22%}.mini-card-two{right:8%;bottom:19%}.mini-dot{width:10px;height:10px;border-radius:50%;margin-top:1px}.mini-dot.success{background:#45ac88;box-shadow:0 0 0 4px #ddf3eb}.mini-icon{width:31px;height:31px;grid-row:span 2;display:grid;place-items:center;border-radius:9px;color:var(--brand);background:var(--amber);font-size:8px;font-weight:900}

@media(max-width:1150px){.app-shell{grid-template-columns:215px 1fr}.sidebar{padding-inline:14px}.stat-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.roster-cards{grid-template-columns:repeat(4,1fr)}.outlet-grid,.shift-grid{grid-template-columns:1fr 1fr}.settings-fields.five{grid-template-columns:repeat(3,1fr)}.report-summary{grid-template-columns:repeat(3,1fr)}.employee-topbar{padding-inline:20px}.employee-main-grid{grid-template-columns:1fr}.employee-side{grid-template-columns:1fr 1fr}.roster-calendar{grid-template-columns:repeat(5,1fr)}}
@media(max-width:850px){.app-shell{display:block;padding-bottom:70px}.sidebar{position:fixed;z-index:45;left:0;right:0;bottom:0;top:auto;width:auto;height:66px;display:block;padding:6px;background:var(--brand-deep)}.sidebar>.brand,.sidebar .nav-label,.sidebar-foot{display:none}.sidebar nav{display:flex;overflow:auto;gap:3px;margin:0}.nav-item{min-width:76px;min-height:54px;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:4px;font-size:7px;text-align:center}.nav-item>span{width:auto;height:auto;border:0;font-size:7px}.nav-item>b{position:absolute;margin:0 0 29px 43px}.topbar{padding:13px 16px}.account-trigger>span:nth-child(2),.account-trigger>b,.demo-badge{display:none}.page-content{padding:26px 16px 42px}.hero-row,.page-intro{align-items:flex-start;flex-direction:column}.hero-row .primary-button{width:100%}.filter-panel{grid-template-columns:1fr 1fr}.filter-panel .search-filter{grid-column:1/-1}.filter-panel .primary-button{grid-column:1/-1}.approval-card{grid-template-columns:1fr}.approval-detail{padding:12px 0 0;border-left:0;border-top:1px solid var(--line)}.approval-actions{justify-content:flex-end}.two-column,.settings-layout,.maintenance-grid{grid-template-columns:1fr}.settings-card.full{grid-column:auto}.settings-fields.three,.settings-fields.five{grid-template-columns:1fr 1fr}.employee-topbar{height:70px;grid-template-columns:1fr auto;padding:0 14px}.employee-topbar>nav{display:none}.employee-topbar .brand small{display:none}.employee-content{width:calc(100% - 28px);padding:26px 0 88px}.employee-bottom,.employee-request-grid{grid-template-columns:1fr}.roster-calendar{grid-template-columns:repeat(3,1fr)}.employee-mobile-nav{position:fixed;z-index:45;left:0;right:0;bottom:0;height:66px;display:grid;grid-template-columns:repeat(4,1fr);padding:5px;background:var(--brand-deep)}.employee-mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;border-radius:8px;color:#91a5b4;background:transparent;font-size:7px;font-weight:800}.employee-mobile-nav button span{font-size:16px}.employee-mobile-nav button.active{color:var(--brand);background:var(--accent)}}
@media(max-width:620px){.topbar h1{font-size:17px}.topbar p{display:none}.page-intro h2,.hero-row h2{font-size:24px}.stat-grid{gap:9px}.stat-card{min-height:108px;padding:15px}.stat-card strong{font-size:27px}.activity-row{grid-template-columns:auto 1fr auto}.activity-row .route,.activity-row .times{display:none}.roster-cards{grid-template-columns:1fr 1fr}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar input,.filter-bar select{width:100%;min-width:0}.filter-bar>span{padding:4px;margin:0 0 0 auto}.bulk-bar{align-items:stretch;flex-direction:column}.bulk-bar select{min-width:0}.outlet-grid,.shift-grid{grid-template-columns:1fr}.filter-panel{grid-template-columns:1fr}.filter-panel .search-filter,.filter-panel .primary-button{grid-column:auto}.report-summary{grid-template-columns:1fr 1fr}.export-actions{flex-direction:column}.form-grid,.check-grid{grid-template-columns:1fr}.settings-fields.three,.settings-fields.five{grid-template-columns:1fr}.maintenance-card>div,.cleanup-fields{grid-template-columns:1fr;flex-direction:column}.cleanup-fields button{min-height:var(--input-h)}.employee-welcome{align-items:flex-start;flex-direction:column}.profile-greeting{align-items:flex-start}.avatar.large{width:58px;height:58px;border-radius:16px}.employee-side{grid-template-columns:1fr}.clock-card{padding:21px 17px}.clock-pin{margin:28px 0}.clock-pin>span{width:58px;height:58px}.clock-pin i{width:31px;height:31px}.clock-info{gap:5px}.clock-info div{padding-left:7px}.clock-card>footer{flex-direction:column}.mini-history>div{grid-template-columns:70px 1fr auto}.mini-history>div>.status-pill{display:none}.roster-calendar{grid-template-columns:1fr 1fr}.announcement-hero{padding:19px}.profile-banner{align-items:flex-start;flex-direction:column}.popover{position:fixed;left:12px;right:12px;top:78px;width:auto}.modal-backdrop{padding:10px}.modal{max-height:calc(100vh - 20px);border-radius:14px}.modal>header,.modal-form{padding-left:17px;padding-right:17px}.login-shell{display:block}.login-card{min-height:100vh;padding:35px 24px}.login-card h1{font-size:43px}.login-visual{display:none}}

/* Penyesuaian pembungkus untuk rilis PHP/XAMPP. Nilai inline berbasis px menjadi prioritas. */
body{--text-scale:1;--input-h:42px;--base-font-size:14px}
body[data-font="SMALL"]{--text-scale:.9}
body[data-font="LARGE"]{--text-scale:1.1}
body[data-input="COMPACT"]{--input-h:36px}
body[data-input="LARGE"]{--input-h:50px}
body[data-heading="UPPER"] h1,body[data-heading="UPPER"] h2,body[data-heading="UPPER"] h3{text-transform:uppercase;letter-spacing:.01em}
.file-inline{position:relative;overflow:hidden}.file-inline input{position:absolute;inset:0;opacity:0;cursor:pointer}

/* Toggle geser untuk pengaturan ya/tidak. */
.switch-grid>label{align-items:center;cursor:pointer}.switch-grid>label>input[type="checkbox"],.simple-check>input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:42px!important;height:24px!important;min-height:24px!important;flex:0 0 42px;margin:0;position:relative;border:0!important;border-radius:999px!important;background:#cbd5d1!important;box-shadow:inset 0 0 0 1px rgba(16,38,62,.08);cursor:pointer;transition:background .2s ease,box-shadow .2s ease}.switch-grid>label>input[type="checkbox"]::before,.simple-check>input[type="checkbox"]::before{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(16,38,62,.22);transition:transform .2s ease}.switch-grid>label>input[type="checkbox"]:checked,.simple-check>input[type="checkbox"]:checked{background:var(--brand)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent)}.switch-grid>label>input[type="checkbox"]:checked::before,.simple-check>input[type="checkbox"]:checked::before{transform:translateX(18px);background:var(--accent)}.switch-grid>label>input[type="checkbox"]:focus-visible,.simple-check>input[type="checkbox"]:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}
.check-grid input[type="checkbox"],.data-table input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:34px;height:20px;min-height:20px;flex:0 0 34px;margin:0;position:relative;border:0;border-radius:999px;background:#cbd5d1;box-shadow:inset 0 0 0 1px rgba(16,38,62,.08);cursor:pointer;transition:background .2s ease}.check-grid input[type="checkbox"]::before,.data-table input[type="checkbox"]::before{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(16,38,62,.22);transition:transform .2s ease}.check-grid input[type="checkbox"]:checked,.data-table input[type="checkbox"]:checked{background:var(--brand)}.check-grid input[type="checkbox"]:checked::before,.data-table input[type="checkbox"]:checked::before{transform:translateX(14px);background:var(--accent)}.check-grid input[type="checkbox"]:focus-visible,.data-table input[type="checkbox"]:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}
.feedback-dialog>p{font-size:13px}.feedback-dialog>.btn-primary{font-size:11px}.feedback-actions button{font-size:10px}.feedback-input textarea{font-size:11px}

/* KOGU Field 3.15 — license control and live synchronization */
.license-body{display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 12% 8%,rgba(169,231,214,.42),transparent 34%),#f2f6f5}.license-shell{width:min(1040px,100%);display:grid;grid-template-columns:.9fr 1.1fr;overflow:hidden;border:1px solid rgba(255,255,255,.8);border-radius:28px;background:#fff;box-shadow:0 30px 90px rgba(8,35,48,.18)}.license-copy{padding:54px;color:#fff;background:linear-gradient(145deg,#0d2e40,#173e4d)}.license-mark{display:grid;place-items:center;width:62px;height:62px;margin-bottom:38px;border-radius:19px;color:#143747;background:var(--accent);font-size:30px;font-weight:950}.license-copy .eyebrow{color:#aee5d4}.license-copy h1{max-width:400px;margin:9px 0 16px;font-size:37px;line-height:1.12}.license-copy>p{color:#c5dbe0;line-height:1.7}.license-copy dl{display:grid;gap:0;margin:35px 0 0}.license-copy dl div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12)}.license-copy dt{color:#9fb8bf}.license-copy dd{margin:0;text-align:right;font-weight:850}.license-copy dd.valid{color:#a8ead4}.license-copy dd.invalid{color:#ffc0b7}.license-card{padding:50px}.license-card header h2{margin:7px 0 8px;font-size:28px}.license-card header p{margin:0 0 25px;color:var(--muted)}.license-form{display:grid;gap:17px}.license-form label{display:grid;gap:8px;font-weight:850}.license-form textarea{min-height:150px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fbfa;font:11px/1.55 Consolas,monospace;resize:vertical;outline:0}.license-form textarea:focus{border-color:#75b9a4;box-shadow:0 0 0 4px rgba(169,231,214,.28)}.license-form label small{color:var(--muted);font-weight:500}.license-active{display:flex;gap:14px;align-items:center;margin:0 0 22px;padding:17px;border:1px solid #bce8d8;border-radius:14px;background:#f1fcf8}.license-active>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--accent);color:#184f3e;font-size:20px;font-weight:950}.license-active div{display:grid;gap:2px}.license-active small{color:var(--muted)}.license-contact{padding:18px;border-radius:14px;background:#fff6dd;color:#725717}.license-card footer{display:flex;justify-content:space-between;gap:18px;margin-top:27px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted)}.license-card footer a{color:var(--brand);font-weight:850}.license-status-card{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 25px;border-left:5px solid var(--accent)}.license-status-card h3{margin:5px 0}.license-status-card p{margin:0;color:var(--muted)}.license-status-card dl{display:flex;gap:30px;margin:0}.license-status-card dl div{display:grid;gap:3px}.license-status-card dt{color:var(--muted);font-size:10px}.license-status-card dd{margin:0;font-weight:900}.checkout-reminder-dialog .btn-primary{background:#8a681d}.checkout-reminder-dialog::before{background:#e7bb54}@media(max-width:760px){.license-body{padding:12px}.license-shell{grid-template-columns:1fr}.license-copy,.license-card{padding:30px}.license-copy h1{font-size:30px}.license-status-card{align-items:flex-start;flex-direction:column}.license-status-card dl{width:100%;justify-content:space-between}}

/* KOGU Field 3.2: formulir langsung di halaman, bukan modal. */
.inline-editor-wrap{padding:24px 28px 0;scroll-margin-top:18px}.inline-editor{max-width:920px;margin:0 auto;border:1px solid #cfe0da;box-shadow:0 18px 48px rgba(8,25,39,.1);overflow:hidden}.inline-editor>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px 18px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#f8fbfa,#eef7f3)}.inline-editor>header h2{margin:5px 0;font-size:22px}.inline-editor>header p{margin:0;color:var(--muted);font-size:10px}.inline-editor>header>button{width:34px;height:34px;flex:0 0 auto;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--muted);font-size:20px;cursor:pointer}.inline-editor .modal-form{grid-template-columns:1fr;padding:24px}.inline-editor .modal-actions{padding-top:6px;border-top:1px solid var(--line)}.inline-editor input:invalid[aria-invalid=true],.inline-editor select:invalid[aria-invalid=true],.inline-editor textarea:invalid[aria-invalid=true]{border-color:#dc7468;box-shadow:0 0 0 3px rgba(220,116,104,.14)}
.modal-form input,.modal-form select{height:var(--input-h);min-height:var(--input-h)}
@media(max-width:760px){.inline-editor-wrap{padding:14px 14px 0}.inline-editor>header{padding:18px}.inline-editor .modal-form{padding:18px}.inline-editor .form-grid,.inline-editor .check-grid{grid-template-columns:1fr}.inline-editor .modal-actions{position:sticky;bottom:0;padding:12px 0;background:#fff}.inline-editor .modal-actions button{flex:1}}
.data-table input[type="checkbox"]{appearance:auto!important;-webkit-appearance:checkbox!important;width:16px!important;height:16px!important;min-height:16px!important;margin:0!important;border-radius:2px!important;accent-color:var(--brand);cursor:pointer}.data-table input[type="checkbox"]::before{content:none!important}.data-table input[type="checkbox"]:checked::before{transform:none!important}.data-table input[type="checkbox"]:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}input[type="date"],input[type="month"]{cursor:pointer}input[type="date"]::-webkit-calendar-picker-indicator,input[type="month"]::-webkit-calendar-picker-indicator{cursor:pointer}
.modal-form input[aria-invalid="true"],.modal-form select[aria-invalid="true"],.modal-form textarea[aria-invalid="true"],.announcement-form input[aria-invalid="true"],.announcement-form select[aria-invalid="true"],.announcement-form textarea[aria-invalid="true"],.settings-layout input[aria-invalid="true"],.settings-layout select[aria-invalid="true"],.settings-layout textarea[aria-invalid="true"]{border-color:#c96d62!important;background:#fff7f5!important;box-shadow:0 0 0 3px rgba(201,109,98,.14)!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* KOGU Field 3.3: kesiapan radius, izin lokasi khusus, dan hasil import. */
.radius-readiness{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;margin:15px 0;padding:14px;border:1px solid #d6e2dd;border-radius:12px;background:#f7faf9;color:#314b42}.radius-readiness>div{display:grid;gap:4px}.radius-readiness strong{font-size:12px;color:var(--brand)}.radius-readiness small{font-size:9px;line-height:1.55;color:var(--muted)}.radius-readiness.ready{border-color:#9ed6c2;background:#ecf8f3}.radius-readiness.not-ready{border-color:#efc1b9;background:#fff5f3}.radius-readiness.not-ready strong{color:#984b42}.radius-readiness .btn-secondary{min-width:118px}.radius-request-summary{display:grid;gap:5px;padding:13px;border:1px solid #cfe2da;border-radius:10px;background:#eef8f4}.radius-request-summary b{font-size:10px;color:var(--brand)}.radius-request-summary span{font-size:12px;font-weight:900}.radius-request-summary small{font-size:9px;color:var(--muted)}.radius-history{grid-column:1/-1}.identity-badges .radius-free{color:#6b5319;background:#fff1c9}.settings-fields label>small{display:block;margin-top:5px;color:var(--muted);font-size:8px;line-height:1.45}.segmented-tabs{flex-wrap:wrap}.export-actions a{white-space:nowrap}
.profile-photo-actions{display:grid;justify-items:start;gap:7px}.profile-photo-actions>small{color:var(--muted);font-size:8px;line-height:1.45}.profile-photo-actions .btn-secondary{min-height:36px;display:flex;align-items:center;padding:0 13px;cursor:pointer}
@media(max-width:620px){.radius-readiness{grid-template-columns:1fr}.radius-readiness .btn-secondary{width:100%}.radius-history{grid-column:auto}}

/* KOGU Field 3.7: master divisi dan jabatan relasional. */
.organization-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:15px 0}.organization-stats article{padding:16px 18px;border:1px solid var(--line);border-radius:13px;background:#fff}.organization-stats span,.organization-stats small{display:block;color:var(--muted);font-size:8px}.organization-stats strong{display:block;margin:6px 0 3px;color:var(--brand);font-size:24px}.organization-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.organization-panel{padding:22px}.organization-panel .card-head{margin-bottom:16px}.organization-form{display:grid;gap:12px;padding:16px;border:1px solid #d9e5e0;border-radius:12px;background:#f7faf8}.organization-form label{display:grid;gap:6px;color:#53645f;font-size:9px;font-weight:900}.organization-form input:not([type=checkbox]),.organization-form select,.organization-list-head select{width:100%;height:var(--input-h);border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 11px;color:var(--ink);font-size:10px;outline:none}.organization-form input:focus,.organization-form select:focus,.organization-list-head select:focus{border-color:#79b7a6;box-shadow:0 0 0 3px rgba(169,231,214,.24)}.organization-form .simple-check{display:flex;align-items:center;gap:9px}.organization-form-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:3px}.organization-list{margin-top:18px}.organization-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px}.organization-list-head strong{font-size:10px}.organization-list-head>span{color:var(--muted);font-size:8px}.organization-list-head select{width:auto;min-width:155px;height:34px}.organization-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.organization-row>div:first-child{min-width:0;display:grid;gap:4px}.organization-row>div:first-child strong{overflow:hidden;text-overflow:ellipsis;font-size:10px;white-space:nowrap}.organization-row>div:first-child small{color:var(--muted);font-size:8px}.organization-row .row-actions{display:flex;gap:5px}.filter-panel.report-filter-extended{grid-template-columns:repeat(4,minmax(145px,1fr))}.filter-panel.report-filter-extended>.btn-primary{align-self:end}
@media(max-width:1050px){.organization-grid{grid-template-columns:1fr}.filter-panel.report-filter-extended{grid-template-columns:repeat(3,minmax(145px,1fr))}}
@media(max-width:850px){.organization-stats{grid-template-columns:1fr 1fr}.filter-panel.report-filter-extended{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.organization-stats{grid-template-columns:1fr}.organization-panel{padding:17px 14px}.organization-row{grid-template-columns:1fr auto}.organization-row .row-actions{grid-column:1/-1;justify-content:flex-end}.organization-form-actions{flex-direction:column-reverse}.organization-form-actions button{width:100%}.organization-list-head{align-items:stretch;flex-direction:column}.organization-list-head select{width:100%}.filter-panel.report-filter-extended{grid-template-columns:1fr}}

/* KOGU Field 3.9: izin check-in di luar roster dan batas keterlambatan. */
.roster-policy-settings .settings-fields{align-items:stretch}.settings-note{min-height:var(--input-h);display:grid;align-content:center;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#f7faf8}.settings-note b{color:var(--brand);font-size:10px}.settings-note small{color:var(--muted);font-size:8px;line-height:1.45}.roster-policy-settings .simple-check{min-height:var(--input-h);padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fbfcfb}.roster-policy-settings .simple-check>span{display:grid;gap:3px}.roster-policy-settings .simple-check b{font-size:9px}.roster-policy-settings .simple-check small{color:var(--muted);font-size:8px;line-height:1.4}.roster-window-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:13px 0;padding:12px 14px;border:1px solid #cfe2da;border-radius:11px;background:#eff8f4;color:#314b42}.roster-window-card>div{display:grid;gap:3px}.roster-window-card span:not(.status-pill){color:var(--muted);font-size:8px}.roster-window-card strong{color:var(--brand);font-size:18px}.roster-window-card small{color:var(--muted);font-size:8px;line-height:1.4}.quick-request-state{display:grid;gap:3px;margin-top:10px;padding:11px 12px;border:1px solid #f0dfa7;border-radius:9px;background:#fff7df}.quick-request-state.approved{border-color:#a8d9c7;background:#ecf8f3}.quick-request-state b{color:#75561b;font-size:9px}.quick-request-state.approved b{color:#2d745c}.quick-request-state small{color:var(--muted);font-size:8px;line-height:1.45}.roster-request-history{grid-column:1/-1}.roster-window-note{margin-top:12px!important;padding-top:10px;border-top:1px solid var(--line)}
@media(max-width:620px){.roster-window-card{align-items:flex-start;flex-direction:column}.roster-policy-settings .settings-fields{grid-template-columns:1fr}}

/* KOGU Field 3.10: kontrol tampilan roster pada akun karyawan. */
.employee-roster-visibility .card-head{margin-bottom:16px}.roster-visibility-toggle{min-height:66px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#f7faf8}.roster-visibility-toggle>span{display:grid;flex:1;gap:4px}.roster-visibility-toggle b{color:var(--brand);font-size:10px}.roster-visibility-toggle small{color:var(--muted);font-size:8px;line-height:1.5}.toggle-state{min-width:42px;border-radius:999px;padding:6px 9px;color:#687872;background:#e5ebe8;font-size:8px;font-style:normal;font-weight:900;text-align:center}.toggle-state::before{content:'OFF'}.roster-visibility-toggle>input[type="checkbox"]:checked~.toggle-state{color:#174d3b;background:var(--accent)}.roster-visibility-toggle>input[type="checkbox"]:checked~.toggle-state::before{content:'ON'}.employee-side.roster-hidden{grid-template-columns:1fr}.employee-mobile-nav.roster-hidden{grid-template-columns:repeat(3,1fr)}
@media(max-width:620px){.roster-visibility-toggle{align-items:flex-start;flex-wrap:wrap}.roster-visibility-toggle>span{min-width:calc(100% - 58px)}.toggle-state{margin-left:51px}}

/* KOGU Field 3.11: penggantian password karyawan oleh Super Admin. */
.password-reset-card{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid #cfe2da;border-radius:12px;background:linear-gradient(135deg,#f3faf7,#edf7f3)}.password-reset-icon{width:40px;height:40px;display:grid;place-items:center;flex:0 0 40px;border-radius:11px;color:var(--brand);background:var(--accent);font-size:20px;font-weight:950}.password-reset-card>div{min-width:0;display:grid;gap:4px}.password-reset-card b{overflow:hidden;text-overflow:ellipsis;color:var(--brand);font-size:11px;white-space:nowrap}.password-reset-card small{overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:9px;white-space:nowrap}.modal-form>label>small{display:block;margin-top:5px;color:var(--muted);font-size:8px;line-height:1.45}.password-force-change{min-height:66px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#f7faf8}.password-force-change>span{display:grid;gap:4px}.password-force-change b{color:var(--brand);font-size:10px}.password-force-change small{color:var(--muted);font-size:8px;line-height:1.5}

/* KOGU Field 3.12: hierarki role, aksi massal, akun nonaktif, email reset, dan validasi perangkat. */
.forgot-password-link{justify-self:end;margin-top:-5px;color:var(--brand);font-size:9px;font-weight:900;text-decoration:none}.forgot-password-link:hover{text-decoration:underline}.auth-back-link{display:inline-flex;margin-top:18px;color:var(--muted);font-size:9px;font-weight:900;text-decoration:none}.auth-primary-link{display:flex;align-items:center;justify-content:center;margin-top:18px;text-decoration:none}.alert-success{margin:14px 0;padding:12px 14px;border:1px solid #a8d9c7;border-radius:9px;color:#286b55;background:#ecf8f3;font-size:10px;line-height:1.55}.bulk-employee-manager{display:grid;grid-template-columns:auto minmax(170px,1fr) minmax(150px,1fr) minmax(160px,1fr) auto auto;align-items:center}.bulk-employee-manager select{min-width:0}.password-email-option{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:13px 14px;border:1px solid #d8e2de;border-radius:11px;background:#fbfcfb}.password-email-option b{color:var(--brand);font-size:10px}.password-email-option small{grid-column:1;color:var(--muted);font-size:8px;line-height:1.45}.password-email-option button{grid-column:2;grid-row:1/3;white-space:nowrap}.device-pending-button{color:#664b10!important;border-color:#e6c76c!important;background:#fff4cc!important}.device-filter-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px;padding:14px 17px;border:1px solid #acd8c8;border-radius:12px;background:#edf8f4}.device-filter-banner>div{display:grid;gap:4px}.device-filter-banner b{color:var(--brand);font-size:11px}.device-filter-banner small{color:var(--muted);font-size:8px}.employee-table tr:has(.status-pill.rejected){background:#fbfcfb}.employee-table tr:has(.status-pill.rejected) .person-cell{opacity:.72}

.deferred-approval-settings{border-color:#c8ddd5;background:linear-gradient(135deg,#fff 0%,#f4faf7 100%)}.deferred-policy-intro{margin:0 0 15px;color:var(--muted);font-size:9px;line-height:1.65}.deferred-policy-intro b{color:var(--brand)}.deferred-policy-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.deferred-policy-toggle{align-items:flex-start;min-height:112px;padding:15px;border:1px solid #d1e1db;border-radius:12px;background:#fff}.deferred-policy-toggle>span{display:grid;gap:6px;flex:1}.deferred-policy-toggle b{color:var(--brand);font-size:10px;line-height:1.45}.deferred-policy-toggle small{color:var(--muted);font-size:8px;line-height:1.55}.deferred-policy-toggle .toggle-state{margin-top:2px}.official-report-note{display:flex;align-items:center;gap:14px;margin:0 0 14px;padding:11px 14px;border:1px solid #b8dcca;border-radius:11px;background:#eff9f4}.official-report-note span{flex:none;padding:5px 8px;border-radius:999px;color:#fff;background:#2b725b;font-size:8px;font-weight:900}.official-report-note p{margin:0;color:#53655f;font-size:8px;line-height:1.5}.employee-approval-banner{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:13px 15px;border:1px solid #efd38b;border-radius:12px;background:#fff8e5}.employee-approval-banner>span{display:grid;place-items:center;flex:none;width:31px;height:31px;border-radius:10px;color:#7b5b16;background:#f9e5a8;font-weight:900}.employee-approval-banner>div{display:grid;gap:3px;flex:1}.employee-approval-banner b{color:#735313;font-size:10px}.employee-approval-banner p{margin:0;color:#766a4e;font-size:8px;line-height:1.45}.employee-approval-banner button{min-height:34px;padding:0 11px;border:1px solid #ddb958;border-radius:8px;color:#6d4e0b;background:#fff;font-size:8px;font-weight:900;cursor:pointer}.deferred-reason-field{display:grid!important;gap:6px!important;margin:13px 0!important}.deferred-reason-field textarea{min-height:76px;resize:vertical}.deferred-reason-field small{color:var(--muted);font-size:8px;line-height:1.45}.deferred-checkout-panel{display:grid;gap:4px;margin:12px 0;padding:12px 14px;border:1px solid #e8c86d;border-radius:11px;background:#fff7dc}.deferred-checkout-panel span{color:#8a671b;font-size:8px;font-weight:900}.deferred-checkout-panel b{color:#624a17;font-size:11px}.deferred-checkout-panel p{margin:0;color:#776b51;font-size:8px;line-height:1.5}.deferred-history-banner{margin-bottom:14px;padding:14px 17px;border:1px solid #d5bd6f;border-radius:12px;background:#fff8e2}.deferred-history-banner>div{display:grid;gap:4px}.deferred-history-banner span{color:#89691e;font-size:8px;font-weight:900}.deferred-history-banner b{color:#5f4918;font-size:11px}.deferred-history-banner small{color:#786d55;font-size:8px;line-height:1.5}.unofficial-attendance{background:#fffbef!important}.activity-row.unofficial-attendance{margin:0 -7px;padding-left:7px;padding-right:7px;border-radius:9px}.mini-history>div.unofficial-attendance{border-left:3px solid #dfb54b;padding-left:9px}

.early-checkout-options{display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px 13px;margin:9px 0 14px;padding:12px 13px;border:1px solid #ead18a;border-radius:11px;background:#fff9e8}.early-checkout-options>div{display:grid;gap:3px}.early-checkout-options>div span{color:#89691f;font-size:8px;font-weight:900}.early-checkout-options>div b{color:#614b1d;font-size:10px}.early-checkout-options>small{grid-column:1/-1;color:#776c55;font-size:8px;line-height:1.45}.early-checkout-options>.status-pill{justify-self:end}.early-checkout-button,.early-request-button{min-height:35px;padding:0 12px;border:1px solid #d1ab43;border-radius:8px;color:#674d0d;background:#fff;font-size:8px;font-weight:900;cursor:pointer}.early-checkout-button{color:#fff;border-color:#b98216;background:#b98216}.early-checkout-button.approved{border-color:#33765f;background:#33765f}.early-checkout-button:disabled,.early-request-button:disabled{opacity:.5;cursor:not-allowed}.early-checkout-button span{margin-left:5px}

@media(max-width:760px){.deferred-policy-grid{grid-template-columns:1fr}.deferred-policy-toggle{min-height:0}.employee-approval-banner{align-items:flex-start;flex-wrap:wrap}.employee-approval-banner>div{min-width:calc(100% - 48px)}.employee-approval-banner button{margin-left:43px}.official-report-note{align-items:flex-start;flex-direction:column;gap:8px}.early-checkout-options{grid-template-columns:1fr}.early-checkout-options>.status-pill,.early-checkout-button,.early-request-button{justify-self:stretch;width:100%}.early-checkout-options>small{grid-column:1}}
@media(max-width:1100px){.bulk-employee-manager{grid-template-columns:1fr 1fr 1fr}.bulk-employee-manager strong{grid-column:1/-1}.bulk-employee-manager .text-button{justify-self:end}}
@media(max-width:700px){.bulk-employee-manager{display:flex}.password-email-option{grid-template-columns:1fr}.password-email-option small,.password-email-option button{grid-column:1;grid-row:auto}.password-email-option button{width:100%}.device-filter-banner{align-items:stretch;flex-direction:column}.device-filter-banner button{width:100%}}

/* KOGU Field 3.13: blokir perangkat, histori keputusan, dan selfie kamera check-in. */
.checkin-selfie-settings .card-head{margin-bottom:16px}.selfie-setting-toggle{min-height:74px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#f7faf8,#eef8f4)}.selfie-setting-toggle>span{display:grid;flex:1;gap:4px}.selfie-setting-toggle b{color:var(--brand);font-size:10px}.selfie-setting-toggle small{color:var(--muted);font-size:8px;line-height:1.55}.selfie-setting-toggle>input[type="checkbox"]:checked~.toggle-state{color:#174d3b;background:var(--accent)}.selfie-setting-toggle>input[type="checkbox"]:checked~.toggle-state::before{content:'ON'}
.device-rejected-banner,.selfie-required-banner{display:flex;align-items:center;gap:13px;margin:0 0 16px;padding:15px 17px;border:1px solid #edb6ae;border-radius:14px;background:linear-gradient(135deg,#fff7f5,#ffefec);box-shadow:0 10px 26px rgba(123,55,48,.06)}.device-rejected-banner>div{display:flex;align-items:center;gap:13px}.device-rejected-banner>div>span,.selfie-required-banner>span{width:42px;height:42px;display:grid;place-items:center;flex:0 0 42px;border-radius:12px;color:#843f37;background:#ffd9d3;font-size:14px;font-weight:950}.device-rejected-banner b,.selfie-required-banner b{display:block;color:#7d3d36;font-size:11px}.device-rejected-banner p,.selfie-required-banner p{margin:4px 0 0;color:#775d59;font-size:9px;line-height:1.5}.selfie-required-banner{border-color:#acd8c8;background:linear-gradient(135deg,#f2faf7,#e7f6f0)}.selfie-required-banner>span{color:#225f4b;background:var(--accent);font-size:8px}.selfie-required-banner b{color:var(--brand)}.selfie-required-banner p{color:var(--muted)}.employee-action.device-denied{border-color:#e4a59c!important;background:#fff4f2!important}.employee-action.device-denied strong{color:#8d453d!important}
.approval-status-filter{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:13px 0 17px}.approval-status-filter button{min-height:34px;padding:0 13px;border:1px solid var(--line);border-radius:999px;color:#60716b;background:#fff;font-size:8px;font-weight:900;cursor:pointer}.approval-status-filter button.active{border-color:var(--brand);color:#fff;background:var(--brand)}.approval-status-filter>span{margin-left:auto;color:var(--muted);font-size:8px;font-weight:900}.approval-list.history-aware .approval-person>div{align-items:start}.approval-list.history-aware .approval-person .status-pill{margin-top:3px}.approval-detail em{display:block;margin-top:7px;padding:7px 9px;border-left:3px solid var(--accent);color:#53645f;background:#f3f8f6;font-size:8px;font-style:normal;line-height:1.45}.approval-actions{flex-wrap:wrap}.history-button{min-height:35px;padding:0 11px;border:1px solid #c9d9d3;border-radius:8px;color:#3d5b51;background:#f5f9f7;font-size:8px;font-weight:900;cursor:pointer}.history-button:hover{border-color:#8ebaaa;background:#eaf5f1}
.decision-timeline{display:grid;gap:0}.decision-timeline article{display:grid;grid-template-columns:34px 1fr;gap:12px;position:relative;padding:0 0 17px}.decision-timeline article:not(:last-child)::before{content:"";position:absolute;left:16px;top:31px;bottom:-2px;width:2px;background:#dce7e2}.decision-timeline article>span{width:34px;height:34px;display:grid;place-items:center;z-index:1;border:4px solid #fff;border-radius:50%;color:var(--brand);background:var(--accent);font-size:9px;font-weight:950}.decision-timeline article>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:#fbfcfb}.decision-timeline strong{font-size:9px}.decision-timeline small{color:var(--muted);font-size:7px}.decision-timeline p{grid-column:1/-1;margin:2px 0 0;color:#596a64;font-size:8px;line-height:1.45}
.request-history-full{grid-template-columns:minmax(0,1fr) 340px}.request-history-full .request-history>div{align-items:start}.request-attachment,.selfie-proof-link{display:inline-flex;width:max-content;margin-top:5px;color:#245f4d;font-size:8px;font-weight:900;text-decoration:none}.request-attachment:hover,.selfie-proof-link:hover{text-decoration:underline}.device-rejection-note{display:grid!important;grid-template-columns:1fr!important;gap:4px!important;margin:11px 0;padding:11px!important;border:1px solid #edb6ae!important;border-radius:10px;background:#fff4f2}.device-rejection-note b{color:#843f37;font-size:9px}.device-rejection-note small{grid-column:auto!important;color:#775d59!important;font-size:8px!important;line-height:1.45}.selfie-proof-link{display:block;margin-top:4px}
.camera-backdrop{overflow:auto;padding:18px}.camera-dialog{width:min(430px,100%);margin:auto;overflow:hidden;border:1px solid rgba(255,255,255,.8);border-radius:22px;background:#fff;box-shadow:0 30px 90px rgba(8,25,39,.4);animation:feedbackIn .26s cubic-bezier(.2,.8,.2,1)}.camera-dialog>header{padding:23px 24px 17px}.camera-dialog h2{margin:5px 0 6px;color:var(--ink);font-size:22px}.camera-dialog header p{margin:0;color:var(--muted);font-size:9px;line-height:1.5}.camera-preview{position:relative;width:100%;aspect-ratio:3/4;overflow:hidden;background:#07131c}.camera-preview video{width:100%;height:100%;display:block;object-fit:cover;transform:scaleX(-1)}.face-guide{position:absolute;left:50%;top:44%;width:58%;aspect-ratio:3/4;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.8);border-radius:48%;box-shadow:0 0 0 999px rgba(4,18,27,.2),0 0 24px rgba(169,231,214,.35)}.camera-watermark{position:absolute;left:12px;bottom:11px;padding:6px 9px;border-radius:7px;color:#fff;background:rgba(8,24,37,.65);font-size:7px;font-weight:900;letter-spacing:.04em}.camera-status{margin:0;padding:10px 24px 0;color:var(--muted);font-size:8px;text-align:center}.camera-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:9px;padding:14px 24px 23px}.camera-actions button{min-height:44px}.camera-actions button:disabled{opacity:.65;cursor:wait}
@media(max-width:850px){.request-history-full{grid-template-columns:1fr}.approval-list.history-aware .approval-actions{justify-content:flex-start}.camera-dialog{width:min(390px,100%)}}
@media(max-width:620px){.selfie-setting-toggle{align-items:flex-start;flex-wrap:wrap}.selfie-setting-toggle>span{min-width:calc(100% - 58px)}.selfie-setting-toggle .toggle-state{margin-left:51px}.device-rejected-banner,.selfie-required-banner{align-items:flex-start;padding:13px}.approval-status-filter{display:grid;grid-template-columns:1fr 1fr}.approval-status-filter button{width:100%}.approval-status-filter>span{grid-column:1/-1;margin:2px 0 0;text-align:right}.approval-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.approval-actions .history-button{grid-column:1/-1}.decision-timeline article>div{grid-template-columns:1fr}.decision-timeline article>div .status-pill{justify-self:start}.decision-timeline p{grid-column:1}.camera-backdrop{padding:8px}.camera-dialog{border-radius:16px}.camera-dialog>header{padding:18px 17px 13px}.camera-dialog h2{font-size:19px}.camera-preview{max-height:56vh}.camera-status{padding:9px 16px 0}.camera-actions{padding:12px 16px 17px}}

/* KOGU Field 3.19 — role Manager, penyelesaian 24 jam, dan saldo cuti. */
.leave-balance-card{width:min(1180px,calc(100% - 48px));margin:0 auto 18px;padding:17px 19px;border:1px solid #cfe4dc;border-radius:15px;background:linear-gradient(135deg,#f8fcfa,#eaf7f2);box-shadow:0 12px 30px rgba(24,50,79,.055)}.leave-balance-card header{display:flex;align-items:center;justify-content:space-between;gap:16px}.leave-balance-card header>div{display:grid;gap:4px}.leave-balance-card header span{color:#5c746b;font-size:7px;font-weight:950;letter-spacing:.12em}.leave-balance-card header b{color:var(--brand);font-size:15px}.leave-balance-card header>strong{padding:8px 11px;border-radius:10px;color:#194d3d;background:var(--accent);font-size:11px}.leave-balance-card>div{display:flex;gap:8px;margin-top:12px}.leave-balance-card>div span{flex:1;padding:9px 11px;border:1px solid rgba(59,111,91,.12);border-radius:9px;color:#60726b;background:rgba(255,255,255,.68);font-size:8px}.leave-balance-card>div b{margin-right:4px;color:#173f34;font-size:11px}.leave-balance-card.compact{width:100%;margin:0 0 13px;padding:13px 14px;box-shadow:none}.leave-balance-card.compact header b{font-size:12px}.leave-balance-card.compact>div{margin-top:9px}
.leave-special-category{padding:12px;border:1px dashed #c7dcd4;border-radius:10px;background:#f8fbfa}.leave-special-category.is-hidden{display:none}.settings-help{margin:14px 0 0;color:var(--muted);font-size:8px;line-height:1.55}.settings-fields.four{grid-template-columns:repeat(4,minmax(0,1fr))}.attendance-closing-settings,.leave-policy-settings{border-left:4px solid var(--accent)}
.stale-attendance-card{margin-bottom:var(--module-gap,16px);padding:19px}.stale-attendance-card .card-head{margin-bottom:10px}.stale-attendance-card>article{display:grid;grid-template-columns:minmax(180px,1.25fr) minmax(180px,1fr) auto;align-items:center;gap:14px;padding:12px 3px;border-top:1px solid var(--line)}.stale-attendance-card>article>div{display:grid;gap:4px}.stale-attendance-card strong,.stale-attendance-card b{font-size:9px}.stale-attendance-card small{color:var(--muted);font-size:8px}.stale-attendance-card .row-actions{display:flex;justify-content:flex-end;gap:6px}.stale-attendance-card button{min-height:34px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:8px;font-weight:900;cursor:pointer}.stale-attendance-card .danger-link{color:#9a443b;border-color:#edc6c0;background:#fff7f5}
.status-pill.permission{color:#315f83;background:#e8f2fa}.status-pill.sick{color:#8a5930;background:#fff1dc}.status-pill.special_leave{color:#684e88;background:#f1eafa}.status-pill.annual_leave{color:#22644f;background:#e4f5ee}.app-shell .employee-content{margin-inline:auto}.app-shell .employee-welcome{margin-top:0}
@media(max-width:900px){.settings-fields.four{grid-template-columns:1fr 1fr}.stale-attendance-card>article{grid-template-columns:1fr 1fr}.stale-attendance-card .row-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:620px){.leave-balance-card{width:calc(100% - 28px);padding:14px}.leave-balance-card>div{display:grid}.settings-fields.four{grid-template-columns:1fr}.stale-attendance-card>article{grid-template-columns:1fr}.stale-attendance-card .row-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.stale-attendance-card button{width:100%}}

/* KOGU Field 3.19.1 — bukti titik GPS checkout pada histori pengelola. */
.checkout-gps-link{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:max-content;min-height:27px;margin-top:6px;padding:0 9px;border:1px solid #b9d8cd;border-radius:8px;color:#165a46;background:#eef9f5;font-size:8px;font-weight:950;line-height:1;text-decoration:none;white-space:nowrap;transition:.18s ease}.checkout-gps-link:hover{border-color:#70ae98;background:#daf1e8;transform:translateY(-1px)}.checkout-gps-link span{font-size:12px;line-height:1}.checkout-gps-link.compact{min-height:23px;margin-top:4px;padding:0 7px;font-size:7px}.gps-checkout-meta{display:block!important;margin-top:4px;color:#61736c!important;font-size:7px!important;line-height:1.35}.approval-gps-evidence{display:grid;justify-items:start;margin-top:8px;padding:9px 10px;border:1px dashed #b9d8cd;border-radius:9px;background:#f5fbf8}.approval-gps-evidence .checkout-gps-link{margin-top:0}.activity-row .times .checkout-gps-link{justify-self:end}.activity-row .times .gps-checkout-meta{display:none!important}
@media(max-width:620px){.checkout-gps-link{white-space:normal;text-align:center}.activity-row .times .checkout-gps-link{justify-self:start}.approval-gps-evidence{width:100%}}

/* KOGU Field 3.14: kompresi, retensi, pembersihan, dan avatar pengganti selfie. */
.selfie-storage-settings .card-head{align-items:center}.selfie-storage-settings .settings-fields{align-items:stretch}.selfie-compression-note{min-height:92px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:14px 15px;border:1px solid #d7e7e1;border-radius:11px;background:linear-gradient(135deg,#f8fbfa,#edf7f3)}.selfie-compression-note b{color:var(--brand);font-size:10px}.selfie-compression-note small{color:var(--muted);font-size:8px;line-height:1.55}.selfie-cleanup-card{border-color:#e5d8c9;background:linear-gradient(145deg,#fff,#fffbf5)}.selfie-cleanup-fields{display:grid;grid-template-columns:1fr 1fr 1.15fr auto;align-items:end;gap:8px;margin-top:15px}.selfie-cleanup-fields label{display:grid;gap:6px}.selfie-cleanup-fields label>span{color:#53645f;font-size:8px;font-weight:900}.selfie-cleanup-fields input,.selfie-cleanup-fields select{width:100%;min-width:0;height:var(--input-h);border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 9px;font-size:9px}.selfie-cleanup-fields button{min-height:var(--input-h);white-space:nowrap}.btn-danger{border:0;border-radius:8px;color:#fff;background:var(--danger);padding:0 13px;font-size:9px;font-weight:900;cursor:pointer}.selfie-avatar{position:relative;text-decoration:none}.selfie-avatar>span{position:absolute;inset:0;display:grid;place-items:center}.selfie-avatar>img{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:cover}.selfie-avatar.placeholder{box-shadow:inset 0 0 0 1px rgba(24,50,79,.08)}.selfie-avatar:not(.placeholder):hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 55%,transparent)}
@media(max-width:900px){.selfie-cleanup-fields{grid-template-columns:1fr 1fr}.selfie-cleanup-fields label:nth-child(3),.selfie-cleanup-fields button{grid-column:1/-1}.selfie-cleanup-fields button{width:100%}}
@media(max-width:620px){.selfie-storage-settings .soft-badge{display:none}.selfie-cleanup-fields{grid-template-columns:1fr}.selfie-cleanup-fields label:nth-child(3),.selfie-cleanup-fields button{grid-column:auto}}

/* KOGU Field 3.16 — design override dan footer settings */
.design-override-settings .card-head,.footer-settings .card-head{align-items:center;margin-bottom:18px}.design-control-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.custom-css-field{display:grid;gap:7px;margin-top:18px}.custom-css-field>span{color:#53645f;font-size:9px;font-weight:900}.custom-css-field textarea{width:100%;min-height:190px;padding:14px;border:1px solid var(--line);border-radius:11px;background:#0e2733;color:#d9f1e9;font:11px/1.65 Consolas,"Courier New",monospace;resize:vertical;outline:0}.custom-css-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(169,231,214,.23)}.custom-css-field small{color:var(--muted);font-size:8px;line-height:1.5}.footer-setting-toggle{min-height:70px;margin-bottom:18px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#f7faf8,#eef8f4)}.footer-setting-toggle>span{display:grid;flex:1;gap:4px}.footer-setting-toggle b{color:var(--brand);font-size:10px}.footer-setting-toggle small{color:var(--muted);font-size:8px;line-height:1.5}.footer-setting-toggle>input[type="checkbox"]:checked~.toggle-state{color:#174d3b;background:var(--accent)}.footer-setting-toggle>input[type="checkbox"]:checked~.toggle-state::before{content:'ON'}.footer-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.footer-control-grid label:first-child{grid-column:1/-1}.footer-live-preview{margin-top:19px;padding:12px;border:1px dashed #aebfba;border-radius:12px;background:#f7faf9}.footer-live-preview>span{display:block;margin:0 0 8px;color:var(--muted);font-size:7px;font-weight:950;letter-spacing:.14em}.footer-live-preview .app-footer{min-height:auto;padding:13px 15px;border:1px solid var(--line);border-radius:9px;background:#fff}@media(max-width:850px){.design-control-grid,.footer-control-grid{grid-template-columns:1fr 1fr!important}}@media(max-width:620px){.design-control-grid,.footer-control-grid{grid-template-columns:1fr!important}.footer-control-grid label:first-child{grid-column:auto}.footer-setting-toggle{align-items:flex-start;flex-wrap:wrap}.footer-setting-toggle>span{min-width:calc(100% - 58px)}.footer-setting-toggle .toggle-state{margin-left:51px}.footer-live-preview .app-footer{padding:12px}}

/* KOGU Field 3.17 — split shift dan SMTP hosting. */
.split-target-grid{display:grid;grid-template-columns:minmax(260px,.55fr) 1fr;gap:18px;align-items:stretch}.split-policy-note{display:grid;align-content:center;gap:6px;padding:16px 18px;border:1px solid #cfe8df;border-radius:12px;color:#315e51;background:#eef9f5}.split-policy-note b{font-size:10px}.split-policy-note small{line-height:1.55}.smtp-settings{border-left:4px solid var(--accent)}.smtp-settings .soft-badge.ready{color:#246b57;background:#def3ea}.smtp-setting-toggle{margin-bottom:18px}.smtp-control-grid{display:grid;grid-template-columns:2fr .65fr 1fr;gap:14px}.smtp-control-grid label:nth-child(4),.smtp-control-grid label:nth-child(5){grid-column:span 2}.smtp-test-row{margin-top:18px;padding:15px;display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:12px;border:1px dashed #bbd4cb;border-radius:12px;background:#f6faf8}.smtp-test-row label{display:grid;gap:6px}.smtp-test-row label span{font-size:8px;font-weight:900}.smtp-test-row input{width:100%;height:var(--input-h);padding:0 11px;border:1px solid var(--line);border-radius:9px}.smtp-test-row small{grid-column:1/-1;color:var(--muted);font-size:8px}.split-shift-panel{position:relative;z-index:1;margin:14px 0;padding:13px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border:1px solid rgba(169,231,214,.2);border-radius:12px;background:rgba(169,231,214,.075)}.split-shift-panel>div:first-child{display:grid;gap:4px}.split-shift-panel>div:first-child span{color:var(--accent);font-size:7px;font-weight:950;letter-spacing:.12em}.split-shift-panel>div:first-child b{font-size:10px}.split-shift-panel>div:first-child small{color:#9fb2bf;font-size:8px;line-height:1.45}.split-shift-panel>button{min-height:38px;padding:0 13px;border:1px solid var(--accent);border-radius:9px;color:var(--accent);background:transparent;font-size:8px;font-weight:900;cursor:pointer}.split-shift-panel>button:disabled{opacity:.5}.split-shift-panel.on-break{display:block;border-color:rgba(245,194,91,.35);background:rgba(245,194,91,.08)}.split-shift-panel.on-break>div:first-child span{color:#f4c76c}.split-break-history{grid-column:1/-1!important;margin-top:8px;display:flex!important;gap:7px!important;flex-wrap:wrap}.split-break-history>span{padding:7px 9px;display:grid;gap:2px;border-radius:8px;color:#d8e6e8;background:rgba(255,255,255,.065)}.split-break-history b{font-size:8px}.split-break-history small{color:#91a8b4;font-size:7px}.employee-action.split-resume{color:#173c36;background:#f4c76c}.selfie-required-banner[hidden]{display:none!important}.rule-chips .split-chip{color:#315f83;background:#e4f0f8}.report-summary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
@media(max-width:760px){.split-target-grid,.smtp-control-grid{grid-template-columns:1fr}.smtp-control-grid label:nth-child(4),.smtp-control-grid label:nth-child(5){grid-column:auto}.smtp-test-row{grid-template-columns:1fr}.smtp-test-row .btn-secondary{width:100%}.split-shift-panel{grid-template-columns:1fr}.split-shift-panel>button{width:100%}}

/* KOGU Performance 4.0.0 */
.edition-chip{margin:2px 18px 12px;padding:8px 10px;border:1px solid rgba(255,255,255,.14);border-radius:999px;color:#b7f1df;font-size:10px;font-weight:800;letter-spacing:.12em;text-align:center}.kpi-page{--kpi-blue:#18324f;--kpi-mint:#a9e7d6}.kpi-period-picker{display:flex;flex-direction:column;gap:7px;min-width:190px}.kpi-period-picker span{font-size:11px;font-weight:800;letter-spacing:.08em;color:#6d7d77}.kpi-period-picker input{min-height:44px;border:1px solid #dce7e2;border-radius:12px;padding:0 14px;background:#fff;font:inherit;color:#18324f}.kpi-own-card{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px 24px;margin-bottom:var(--module-gap,16px);border-radius:var(--card-radius,16px);background:linear-gradient(120deg,#18324f,#245e68);color:#fff;box-shadow:0 18px 48px rgba(24,50,79,.16)}.kpi-own-card h3{margin:5px 0 1px;font-size:32px}.kpi-own-card p{margin:0;color:#cfe9e1}.kpi-own-card .eyebrow{color:#a9e7d6}.kpi-own-card.compact{margin:8px 0 18px;padding:17px 19px}.kpi-own-card.compact h3{font-size:24px}.kpi-score-hero{display:grid;grid-template-columns:1.2fr 1fr auto;gap:18px;align-items:center;margin-bottom:var(--module-gap,16px);padding:26px;border-radius:22px;background:linear-gradient(135deg,#f0fbf7,#fff 58%,#fff7e6);border:1px solid #dcece5}.kpi-score-hero>div{display:flex;flex-direction:column;gap:5px}.kpi-score-hero span{font-size:10px;font-weight:900;letter-spacing:.12em;color:#71827b}.kpi-score-hero strong{font-size:42px;line-height:1;color:#18324f}.kpi-score-hero strong.word{font-size:24px}.kpi-score-hero b{color:#13745f}.kpi-score-hero p{margin:0;color:#65756f}.kpi-trend{padding:12px 10px 4px}.kpi-trend svg{width:100%;height:auto;min-height:190px}.kpi-trend .kpi-grid line{stroke:#e5eee9;stroke-width:1}.kpi-trend polyline{fill:none;stroke:#1a806e;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.kpi-trend circle{fill:#fff;stroke:#1a806e;stroke-width:3}.kpi-trend>div{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;margin-top:-10px}.kpi-trend>div span{text-align:center;font-size:10px;color:#83918c}.kpi-trend>div small{display:block;margin-top:4px;font-weight:800;color:#29463d}.kpi-status{display:inline-flex;align-items:center;width:max-content;padding:6px 10px;border-radius:999px;background:#edf2f0;color:#5c6964;font-size:11px;font-weight:800}.kpi-status.draft{background:#fff3d9;color:#895e08}.kpi-status.submitted{background:#e8effc;color:#315f9e}.kpi-status.final{background:#dff5ed;color:#13745f}.kpi-analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--module-gap,16px)}.kpi-analytics-grid .wide{grid-column:1/-1}.ranking-list>div,.late-ranking>div{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #edf2f0}.ranking-list>div:last-child,.late-ranking>div:last-child{border-bottom:0}.ranking-list>div>b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#edf7f3;color:#1a705e}.ranking-list span,.late-ranking span{display:flex;flex-direction:column}.ranking-list small,.late-ranking small{margin-top:3px;color:#718078}.ranking-list em{font-style:normal;font-weight:900;font-size:18px;color:#18324f}.late-ranking>div{grid-template-columns:1fr auto auto}.late-ranking>div>b{padding:5px 9px;border-radius:9px;background:#fff2da;color:#875f10}.late-ranking em{font-style:normal;color:#bd543e}.kpi-master-form{margin-bottom:var(--module-gap,16px)}.kpi-master-form>label{display:flex;flex-direction:column;gap:7px;margin-top:14px;font-weight:700;color:#43564f}.kpi-master-form textarea,.kpi-master-form input,.kpi-master-form select{font:inherit}.kpi-master-form .form-grid.three{grid-template-columns:1fr 2fr .7fr}.kpi-form-actions{display:flex;align-items:end;justify-content:flex-end;gap:14px;margin-top:16px}.kpi-form-actions>label{max-width:120px}.kpi-target-text{display:block;max-width:460px;white-space:normal;line-height:1.45;color:#566860}.kpi-master-table{min-width:1050px}.kpi-master-table td small{display:block;margin-top:4px}.kpi-score-form{width:min(960px,92vw)}.kpi-review-summary{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px;padding:14px 18px;margin:-4px 0 14px;border-radius:16px;background:#18324f;color:#fff}.kpi-review-summary .kpi-status{grid-row:1/3}.kpi-review-summary strong{font-size:28px;text-align:right}.kpi-review-summary small{text-align:right;color:#cde6de}.kpi-indicator-list{display:grid;gap:12px;max-height:56vh;overflow:auto;padding-right:5px}.kpi-indicator-list article{padding:16px;border:1px solid #dfe9e4;border-radius:16px;background:#fff}.kpi-indicator-list header{display:grid;grid-template-columns:auto 1fr 110px;align-items:start;gap:12px}.kpi-indicator-list header>span{padding:6px 9px;border-radius:8px;background:#e7f5ef;color:#146e5d;font-weight:900;font-size:11px}.kpi-indicator-list header>div{display:flex;flex-direction:column}.kpi-indicator-list header small{margin-top:4px;color:#76847e}.kpi-indicator-list header label,.kpi-indicator-list article>label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:800;color:#60726b}.kpi-indicator-list input{min-height:38px}.kpi-indicator-list p{margin:10px 0;color:#596a64;line-height:1.48}.kpi-indicator-list textarea{min-height:64px}.kpi-score-form>.modal-actions{position:sticky;bottom:0;padding-top:14px;background:linear-gradient(transparent,#fff 16%)}
@media(max-width:900px){.kpi-score-hero{grid-template-columns:1fr 1fr}.kpi-score-hero>button{grid-column:1/-1}.kpi-analytics-grid{grid-template-columns:1fr}.kpi-analytics-grid .wide{grid-column:auto}.kpi-master-form .form-grid.three{grid-template-columns:1fr}.kpi-trend>div small{display:none}}
@media(max-width:650px){.kpi-own-card{align-items:flex-start;flex-direction:column}.kpi-score-hero{grid-template-columns:1fr}.kpi-score-hero>button{grid-column:auto}.kpi-score-hero strong{font-size:34px}.kpi-indicator-list header{grid-template-columns:auto 1fr}.kpi-indicator-list header label{grid-column:1/-1}.kpi-form-actions{align-items:stretch;flex-direction:column}.kpi-form-actions>label{max-width:none}.kpi-form-actions button{width:100%}.kpi-trend{overflow-x:auto}.kpi-trend svg,.kpi-trend>div{min-width:560px}}
