:root{font-family:system-ui,-apple-system,"Noto Sans Thai",sans-serif;color:#1c2d24;background:#f5f7f4;font-synthesis:none}
*{box-sizing:border-box}
html{min-width:300px}
body{margin:0;min-height:100vh}
a{color:#12652f}
button,input{font:inherit}
.ui-icon{display:block;width:24px;height:24px;flex:none}
.app-header{background:#fff;box-shadow:0 1px 0 #dce7df}
.header-inner{max-width:1000px;margin:auto;padding:10px 20px;min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.brand{display:inline-flex;align-items:center;gap:8px;color:#173825;text-decoration:none;font-size:1.16rem;font-weight:800;letter-spacing:-.035em;white-space:nowrap}
.brand img{width:39px;height:39px;object-fit:contain}
.brand-light{font-weight:550;color:#34794b}
.header-actions{display:flex;align-items:center;gap:9px}
.header-actions form{margin:0}
.header-logout,.header-login{display:inline-flex;align-items:center;justify-content:center;min-width:49px;min-height:40px;padding:0 11px;border:1px solid #dde9e0;border-radius:12px;background:#fff;color:#245d39;text-decoration:none;font-size:.86rem;font-weight:700;cursor:pointer}
.header-logout{width:44px;min-width:44px;height:40px;padding:0;border-color:transparent;background:transparent}
.header-logout-icon{position:relative;display:block;width:36px;height:36px;overflow:hidden;border-radius:11px}
.header-logout-icon img{position:absolute;top:0;left:-6px;width:48px;height:48px;max-width:none;filter:hue-rotate(230deg) saturate(.9)}
.header-login{padding:0 15px}
main{max-width:1000px;margin:0 auto;padding:28px 20px 46px}
footer{max-width:1000px;margin:auto;padding:0 20px 20px;color:#8a9c8f;font-size:.72rem;letter-spacing:.02em}
h1,h2,p{margin-top:0}
h1{font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.16;letter-spacing:-.035em}
h2{font-size:1.12rem;line-height:1.3;letter-spacing:-.02em}
p{color:#5d6e63;line-height:1.55}
small,.muted,.status{color:#74867a}
.eyebrow,.section-kicker{display:block;color:#197744;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.hero{padding:6px 0 19px}
.hero h1{margin:7px 0 8px}
.hero p{margin:0 0 13px}
.panel,.entry-panel{background:#fff;border:1px solid #dce8df;border-radius:20px;box-shadow:0 10px 28px rgba(25,68,39,.04);padding:24px}
.form-card{max-width:480px}
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;background:#12652f;color:#fff;min-height:47px;padding:10px 17px;font-weight:750;text-decoration:none;cursor:pointer}
.button .ui-icon{width:18px;height:18px}
.button.ghost,button.ghost{background:#e9f5ec;color:#145a30}
.button.outline{background:#fff;color:#12652f;border:1px solid #badac4}
button:disabled{opacity:.5;cursor:not-allowed}
input{width:100%;padding:13px 14px;border:1px solid #cad8ce;border-radius:11px;background:#fff;color:#183222;font-size:1.05rem}
input:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #a1dcb4;outline-offset:2px}
label{display:block;margin-bottom:7px;font-weight:700}
.field{margin:18px 0}
.actions,.entry-actions{display:flex;gap:10px;flex-wrap:wrap}
.error{background:#fff1ee;color:#a12822;padding:12px;border-radius:10px}
.success{background:#edf8ef;padding:16px;border-radius:11px}
.success p{margin:8px 0 16px}
.link-copy{overflow-wrap:anywhere;font-size:.78rem}
.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pill{display:inline-block;border-radius:999px;background:#e5f4e8;color:#12652f;padding:5px 10px;font-size:.74rem;font-weight:750}
.inbox-item{display:block;color:inherit;text-decoration:none;border-bottom:1px solid #e8eee9;padding:17px 0}
.inbox-item:last-child{border-bottom:0}
.inbox-item.unread{border-left:4px solid #188349;padding-left:13px}
.inbox-item strong{display:block;margin:5px 0}
.empty{text-align:center;padding:44px 18px;color:#75887a}
.status{font-size:.82rem}
.back-link{display:inline-block;margin-bottom:17px;color:#39714b;text-decoration:none;font-size:.83rem;font-weight:750}
.inbox-heading{padding:3px 0 17px}
.inbox-heading-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.inbox-heading h1{margin:5px 0 5px}
.inbox-heading p{margin:0}
.page-icon{display:grid;place-items:center;flex:none;width:58px;height:58px;border-radius:18px;background:#e3f2e7;color:#147341}
.page-icon .ui-icon{width:28px;height:28px}
.inbox-panel{padding:10px 22px}
.empty-state{display:flex;min-height:178px;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.empty-icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:10px;border-radius:16px;background:#ecf6ee;color:#5b9b6c}
.empty-state strong{font-size:1.05rem}
.empty-state p{margin:3px 0 0;font-size:.88rem}
.push-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:15px;padding:17px 20px;border:1px solid #dfe9e2;border-radius:17px;background:#fff}
.push-panel strong{font-size:.9rem}
.push-panel p{margin:2px 0 0;font-size:.79rem}
.push-panel .status{flex-basis:100%;margin:0}

/* Employee home */
.home-main{max-width:900px;padding-top:22px}
.welcome-card{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:182px;padding:25px 32px;overflow:hidden;border-radius:25px;background:linear-gradient(112deg,#0c4728 0%,#146b39 76%,#26864d 100%);color:#fff;box-shadow:0 14px 35px rgba(10,71,37,.17)}
.welcome-card::after{content:"";position:absolute;z-index:-1;width:290px;height:290px;right:-75px;top:-166px;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 35px rgba(255,255,255,.035),0 0 0 78px rgba(255,255,255,.035)}
.welcome-copy{min-width:0}
.welcome-kicker{display:block;margin-bottom:12px;color:#c8e8d0;font-size:.73rem;font-weight:800;letter-spacing:.11em}
.welcome-card h1{margin:0;color:#fff;font-size:clamp(1.5rem,3.5vw,2.25rem);line-height:1.1}
.welcome-name{display:block;margin-top:2px;overflow-wrap:anywhere}
.employee-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
.employee-meta span{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.12);color:#e3f3e7;font-size:.72rem;font-weight:700}
.portrait-frame{width:110px;height:110px;flex:none;overflow:hidden;display:grid;place-items:center;border:3px solid rgba(255,255,255,.8);border-radius:50%;background:#dce9dd;color:#2c6641;font-size:2.4rem;font-weight:700;box-shadow:0 10px 25px rgba(3,42,21,.3)}
.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 25%;transform:scale(1.65);transform-origin:50% 27%}
.welcome-public{min-height:215px}
.welcome-public h1{font-size:clamp(1.9rem,4vw,2.7rem)}
.welcome-public p{margin:12px 0 0;color:#d8eddf}
.welcome-mark{width:145px;height:145px;flex:none;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.13)}
.welcome-mark img{width:90%;height:90%;object-fit:contain;filter:brightness(0) invert(1)}
.entry-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px}
.entry-panel h2{font-size:1.3rem;margin:5px 0}
.entry-panel p{margin:0}
.workspace-section{margin-top:21px}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.section-title h2{margin:0;font-size:1.05rem}
.section-aside{color:#698071;font-size:.75rem;font-weight:700}
.planned-aside{color:#77887b}
.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.quick-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:133px;padding:16px 18px;overflow:hidden;border:1px solid #cde6d4;border-radius:19px;background:#e9f5ec;color:#164b2d;text-decoration:none;box-shadow:0 4px 14px rgba(30,95,53,.04)}
.quick-inbox{border-color:#dfe8df;background:#fff}
.quick-tiger{border-color:#dfe8df;background:#fff}
.quick-planned{opacity:.62}
.quick-icon{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:#d0ead7;color:#156738}
.quick-tiger .quick-icon{background:#ebf4e8;color:#4b7946}
.quick-icon .ui-icon{width:20px;height:20px}
.quick-icon img{display:block;width:26px;height:26px;object-fit:contain}
.quick-inbox .quick-icon{overflow:hidden;background:transparent}
.quick-inbox .quick-icon img{width:37px;height:37px;border-radius:12px;object-fit:cover}
.quick-arrow{position:absolute;right:16px;top:18px;color:#43845a}
.quick-arrow .ui-icon{width:19px;height:19px}
.quick-card strong{margin-top:auto;font-size:1.02rem;line-height:1.25}
.quick-detail{margin-top:2px;color:#547c61;font-size:.79rem;font-weight:600}
.quick-tiger .quick-detail{color:#74877a}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.service-tile{position:relative;display:grid;grid-template-columns:31px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;column-gap:9px;min-height:75px;padding:12px 13px;border:1px solid #e0e9e1;border-radius:16px;background:#fff;color:#34513d}
.service-tile>.ui-icon{grid-row:1/3;align-self:center;width:22px;height:22px;color:#689375}
.service-tile>.machine-pairing-icon{grid-row:1/3;align-self:center;width:30px;height:30px;border-radius:6px}
.service-tile>.product-icon{grid-row:1/3;align-self:center;width:30px;height:30px;border-radius:8px;object-fit:cover}
.service-tile strong{overflow-wrap:anywhere;font-size:.86rem;line-height:1.25}
.service-tile span{margin-top:2px;color:#8a9b8d;font-size:.69rem;line-height:1.2}
.service-tile>.mt-review-badge{position:absolute;top:5px;right:6px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#d92838;color:#fff;font-size:.67rem;font-weight:800;line-height:1;margin:0;box-shadow:0 0 0 2px #fff}
.service-link{border-color:#e0e9e1;background:#fff;color:#34513d;text-decoration:none}
.service-link:hover{border-color:#64aa7c;background:#fff}
.service-link>.ui-icon,.service-link span{color:#25764a}
.install-link{display:flex;align-items:center;gap:10px;min-height:49px;margin-top:15px;padding:8px 13px;border:1px solid #cfe2d4;border-radius:14px;background:#fff;color:#1b5c34;text-decoration:none;font-size:.84rem}
.install-link-icon{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:9px;background:#e5f3e8;color:#166b3c}
.install-link-icon .ui-icon{width:18px;height:18px}
.install-link-arrow{margin-left:auto;color:#599369}
.install-link-arrow .ui-icon{width:17px;height:17px}
.is-standalone .install-link{display:none}
@media(display-mode:standalone){.install-link{display:none}}
[hidden]{display:none!important}
.install-main{max-width:830px;padding-top:19px}
.install-heading h1{margin:4px 0 5px;font-size:1.8rem}
.install-heading p{margin:0;font-size:.9rem}
.install-heading .back-link{margin-bottom:12px}
.install-address{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:9px 10px 9px 15px;border:1px solid #d9e9dd;border-radius:13px;background:#fff;color:#175d33;font-size:.86rem;font-weight:750}
.install-address span{overflow-wrap:anywhere}
.install-address button{min-height:32px;padding:5px 10px;flex:none;border-radius:8px;font-size:.74rem}
.install-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 9px;color:#37764a;font-size:.78rem;font-weight:750}
.install-dots{display:flex;gap:5px}
.install-dots i{width:17px;height:5px;border-radius:99px;background:#d9e7dc}
.install-dots i.active{background:#168449}
.install-step{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,250px);gap:22px;align-items:center;padding:19px;border:1px solid #dce9df;border-radius:20px;background:#fff;box-shadow:0 8px 25px rgba(20,74,39,.04)}
.install-copy{align-self:start}
.install-number{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#e4f3e8;color:#176d3d;font-size:.83rem;font-weight:850}
.install-copy h2{margin:14px 0 7px;font-size:1.27rem}
.install-copy p{margin:0 0 9px;font-size:.91rem}
.install-copy strong{color:#175f37}
.install-copy .install-after{margin-top:18px;padding:12px;border-radius:11px;background:#eef7f0;color:#235c36;font-size:.83rem}
.install-shot{display:grid;place-items:center;max-height:560px;overflow:hidden;border:1px solid #e4e8e4;border-radius:17px;background:#f8faf8}
.install-shot img{display:block;max-width:100%;max-height:560px;object-fit:contain}
.install-shot{position:relative}
.touch-box{position:absolute;z-index:2;left:var(--x);top:var(--y);width:var(--w);height:var(--h);border:3px solid #20c760;border-radius:11px;box-shadow:0 0 0 2px rgba(4,63,26,.78),0 0 18px rgba(39,220,103,.5);pointer-events:none}
.ios-annotated .ios-image-box{position:relative;display:block;height:560px;aspect-ratio:414/900}
.ios-annotated .ios-image-box img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}
.notification-shot{display:block;width:100%;height:auto;max-height:none}
.notification-shot img{display:block;width:100%;height:auto;max-width:none;max-height:none;object-fit:contain}
.android-guide .install-shot{position:relative;display:block;width:100%;height:500px}
.android-guide .install-shot img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center top}
.android-guide .install-step:nth-child(3) .install-shot img{object-position:center bottom}
.android-guide .install-step:nth-child(4) .install-shot img{object-position:center center}
.android-guide .notification-shot{height:auto;max-height:none}
.android-guide .notification-shot img{position:static;width:100%;height:auto;max-height:none;object-fit:contain}
.install-controls{display:flex;gap:10px;margin-top:13px}
.install-controls button{flex:1}
.install-footnote{margin:12px 0 0;color:#758679;font-size:.72rem}
.install-privacy{margin-top:10px;padding:11px 14px;border:1px solid #dce9df;border-radius:12px;background:#fff;color:#4e6655;font-size:.78rem}
.install-privacy summary{color:#255e38;font-weight:750;cursor:pointer}
.install-privacy p{margin:10px 0 0;font-size:.78rem;line-height:1.55}
.platform-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}
.platform-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:188px;padding:22px;border:1px solid #dce9df;border-radius:20px;background:#fff;color:#1c3e29;text-decoration:none;box-shadow:0 8px 24px rgba(19,67,36,.04)}
.platform-card:hover{border-color:#89c99e;background:#fbfefb}
.platform-symbol{display:grid;place-items:center;width:58px;height:58px;margin-bottom:auto;border-radius:17px;background:#eef3ef}
.platform-symbol img{display:block;width:34px;height:34px}
.platform-android .platform-symbol{background:#e7f5e9}
.platform-android .platform-symbol img{filter:invert(34%) sepia(50%) saturate(844%) hue-rotate(89deg) brightness(86%)}
.platform-desktop .platform-symbol{background:#e6f2eb}
.platform-card strong{margin-top:16px;font-size:1.2rem}
.platform-card span:not(.platform-symbol){color:#6c8273;font-size:.8rem}
.platform-card b{position:absolute;right:20px;bottom:23px;color:#358c52;font-size:1.25rem}
.install-choice-note{margin:16px 0 0;color:#6a806f;font-size:.82rem}
.pc-install-ready{margin-top:16px;padding:13px 16px;border-radius:12px;background:#e1f3e7;color:#155f34;font-weight:750}
.pc-install-action{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:15px;margin-top:18px;padding:19px;border:1px solid #cfe5d5;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(19,67,36,.06)}
.pc-install-icon img{display:block;width:54px;height:54px;border-radius:13px}
.pc-install-action h2{margin:0 0 4px}.pc-install-action p{margin:0;font-size:.82rem}
.pc-install-action button{white-space:nowrap}
.pc-install-status{min-height:18px;margin:8px 0;color:#286842;font-size:.8rem}
.pc-install-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.pc-install-method{padding:18px;border:1px solid #dce9df;border-radius:15px;background:#fff}
.pc-install-method h2{margin:11px 0 6px;font-size:1rem}
.pc-install-method p,.pc-install-method li{font-size:.82rem;line-height:1.55}
.pc-install-method p{margin:0}
.pc-install-method ul{margin:8px 0 0;padding-left:20px}
.pc-install-method li+li{margin-top:5px}
.platform-guide-label{display:inline-flex;align-items:center;gap:6px}
.platform-guide-label img{width:16px;height:16px;filter:invert(32%) sepia(50%) saturate(844%) hue-rotate(89deg) brightness(86%)}
.android-visual{display:grid;place-items:center;width:100%;height:500px;overflow:hidden;border:1px solid #dbe8df;border-radius:17px;background:radial-gradient(circle at 55% 15%,#f8fdf9,#e7f2e9)}
.android-phone{width:225px;height:425px;overflow:hidden;border:6px solid #26372b;border-radius:29px;background:#f8faf8;box-shadow:0 16px 40px rgba(21,63,34,.2)}
.android-status{display:flex;justify-content:space-between;padding:12px 15px 5px;color:#233c2c;font-size:.72rem;font-weight:800}
.android-status span{letter-spacing:2px}
.android-bar{display:flex;align-items:center;gap:6px;margin:8px 7px;padding:7px;border-radius:12px;background:#e5ece7;color:#405f48;font-size:.64rem}
.android-bar span:nth-child(2){flex:1;overflow:hidden;white-space:nowrap}
.android-lock{font-size:1rem}
.android-bar b{display:grid;place-items:center;width:24px;height:25px;border-radius:50%;color:#183725;font-size:1.5rem;line-height:1}
.android-bar b.android-highlight{background:#c4efce;box-shadow:0 0 0 3px #39b967}
.android-page{display:flex;flex-direction:column;align-items:center;gap:8px;margin:38px 13px 0;padding:27px 8px;border-radius:15px;background:linear-gradient(145deg,#0e522d,#248348);color:#fff;text-align:center}
.android-page img{width:56px;height:56px;border-radius:14px}
.android-page strong{font-size:1rem}
.android-page small{color:#d5efdc;font-size:.68rem}
.android-menu-panel{display:flex;flex-direction:column;gap:2px;margin:8px 11px 0;padding:11px;border-radius:12px;background:#fff;box-shadow:0 7px 25px rgba(22,54,30,.18);color:#344b39;font-size:.74rem}
.android-menu-panel span,.android-menu-panel strong{padding:9px 8px}
.android-menu-panel strong{border:2px solid #2fa65a;border-radius:8px;background:#e8f7eb;color:#146334}
.android-finished{display:flex;flex-direction:column;align-items:center;gap:9px;color:#174f2d}
.android-finished img{width:118px;height:118px;border-radius:27px;box-shadow:0 10px 26px rgba(34,80,46,.15)}
.android-finished strong{font-size:1.05rem}
.android-finished span{margin-top:18px;padding:8px 12px;border-radius:99px;background:#d8efe0;font-size:.77rem;font-weight:750}

/* Supervised tablet enrollment */
.enrollment-body{background:#edf4ee}
.enrollment-main{max-width:700px;min-height:100dvh;margin:auto;padding:24px 24px 30px}
.enrollment-top{display:flex;align-items:center;gap:9px;color:#18462b;font-weight:850;font-size:1.1rem}
.enrollment-top img{width:36px;height:36px;object-fit:contain}
.enrollment-top a{margin-left:auto;color:#427353;font-size:.8rem;font-weight:700;text-decoration:none}
.enrollment-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:23px 0 16px}
.enrollment-progress span{padding:9px 7px;border-radius:10px;background:#dce8df;color:#6b8070;text-align:center;font-size:.75rem;font-weight:750}
.enrollment-progress span.active{background:#d0ecda;color:#155c33}
.enrollment-card{padding:30px;border:1px solid #d9e8dc;border-radius:23px;background:#fff;box-shadow:0 14px 45px rgba(12,73,36,.07)}
.enrollment-card h1{margin:7px 0 8px;font-size:clamp(1.8rem,4vw,2.4rem)}
.enrollment-card p{margin-bottom:20px}
.enrollment-card form>label:not(.enrollment-consent){margin:15px 0 7px}
.enrollment-card form>input{min-height:55px;font-size:1.12rem}
.enrollment-card form>button{width:100%;min-height:54px;margin-top:20px;font-size:1.05rem}
.enrollment-name-search{margin-top:24px;padding-top:16px;border-top:1px solid #e3ede5}
.enrollment-results{margin-top:18px}
.enrollment-results>strong{display:block;margin-bottom:8px;color:#18462b}
.enrollment-results form>button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:54px;margin:0 0 7px;padding:10px 14px;border:1px solid #dceadd;border-radius:12px;background:#f4faf5;color:#173f28;text-align:left;font-size:.98rem}
.enrollment-results form>button small{display:block;margin-top:2px;color:#587366;font-size:.78rem}
.enrollment-results p{margin:0;color:#587366}
.enrollment-review{width:min(92vw,470px);max-height:90dvh;margin:auto;padding:25px;border:1px solid #d9e8dc;border-radius:20px;background:#fff;color:#1c2d24;box-shadow:0 24px 70px rgba(9,45,25,.25)}
.enrollment-review::backdrop{background:rgba(12,36,23,.55)}
.enrollment-review h2{margin:8px 0 18px;font-size:1.35rem}
.enrollment-review-row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #e5ede6;font-size:.9rem}
.enrollment-review-row span{flex:none;color:#687d6d}
.enrollment-review-row strong{text-align:right;overflow-wrap:anywhere}
.enrollment-review-check{display:flex;align-items:center;gap:9px;margin:20px 0;font-weight:700;font-size:.9rem}
.enrollment-review-check input{width:20px;height:20px;flex:none}
.enrollment-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.enrollment-review-actions button{min-height:48px;padding:8px;border:1px solid #cadccc;border-radius:10px;background:#f3f8f4;color:#1d5c37;font-weight:750}
.enrollment-review-actions button:last-child{border-color:#156737;background:#156737;color:#fff}
.enrollment-person{display:flex;align-items:center;gap:22px;margin:22px 0;padding:18px;border:1px solid #dceadd;border-radius:17px;background:#f4faf5}
.enrollment-person img,.enrollment-no-photo{width:96px;height:112px;flex:none;border-radius:12px;object-fit:cover;object-position:center 20%;background:#e0eae2}
.enrollment-no-photo{display:grid;place-items:center;color:#708777;text-align:center;font-size:.8rem}
.enrollment-person small{display:block;margin-bottom:7px}
.enrollment-person strong{display:block;color:#183d28;font-size:1.55rem;line-height:1.2}
.enrollment-back{display:block;margin-top:18px;text-align:center;font-size:.9rem;font-weight:700}
.enrollment-optional{margin-top:23px;padding:17px;border:1px solid #e0eae2;border-radius:15px;background:#f8fbf8}
.enrollment-optional>label{margin:0 0 7px}
.enrollment-optional small{display:block;margin-top:8px;font-size:.76rem}
.enrollment-consent{display:flex;align-items:flex-start;gap:9px;margin:13px 0 0!important;font-size:.83rem;font-weight:500;line-height:1.4}
.enrollment-consent input{width:18px;height:18px;flex:none;margin:2px 0 0}
.enrollment-done{text-align:center}
.enrollment-done>span{display:grid;place-items:center;width:60px;height:60px;margin:0 auto 16px;border-radius:50%;background:#d3efdb;color:#116c38;font-size:2rem}
.enrollment-qr{display:grid;place-items:center;width:fit-content;margin:15px auto 12px;padding:12px;border:1px solid #d9e8dd;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(13,79,43,.08)}
.enrollment-qr img{display:block;width:min(48vw,230px);height:auto;aspect-ratio:1}
.enrollment-done>strong{display:block;color:#173f28;font-size:1rem}
.enrollment-done>small{display:block;max-width:360px;margin:4px auto 0;line-height:1.45}
.enrollment-install-address{display:block;margin:12px auto 0;overflow-wrap:anywhere;color:#1b6b3b;font-size:.77rem;font-weight:700}
.enrollment-done .button{margin-top:19px}
.enrollment-operator{margin-top:15px;color:#6c8272;text-align:center;font-size:.73rem}
.roster-main{max-width:900px;margin:auto;padding:24px 22px 34px}
.roster-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:30px 0 18px}
.roster-heading h1{margin:6px 0 3px}
.roster-heading p{margin:0}
.roster-enroll-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 16px;border-radius:11px;background:#156737;color:#fff;text-align:center;text-decoration:none;font-size:.87rem;font-weight:750;white-space:nowrap}
.roster-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:17px}
.roster-summary>div{display:flex;flex-direction:column;gap:3px;padding:16px;border:1px solid #dceadd;border-radius:15px;background:#fff}
.roster-summary strong{color:#145a33;font-size:1.55rem;line-height:1}
.roster-summary span{color:#617768;font-size:.76rem;font-weight:700}
.roster-panel{padding:18px;border:1px solid #dceadd;border-radius:18px;background:#fff;box-shadow:0 10px 35px rgba(12,73,36,.05)}
.roster-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.roster-panel-head h2{margin:0 0 14px}
.roster-panel-head a{font-size:.8rem;font-weight:700;text-decoration:none}
.roster-search-label{display:block;margin:2px 0 7px;color:#3d5d49;font-size:.78rem;font-weight:750}
.roster-search{width:100%;min-height:46px;padding:10px 13px;border:1px solid #cbded0;border-radius:10px;background:#fbfdfb;font-size:.95rem}
.roster-filters{display:flex;gap:7px;overflow-x:auto;margin-top:14px;padding-bottom:3px}
.roster-filters button{flex:none;min-height:36px;padding:6px 11px;border:1px solid #d6e4da;border-radius:999px;background:#fff;color:#3b6750;font-size:.78rem;font-weight:750;cursor:pointer}
.roster-filters button[aria-pressed="true"]{border-color:#156737;background:#156737;color:#fff}
.roster-visible-count{margin:12px 0 4px;color:#6b8070;font-size:.77rem}
.roster-list{margin-top:4px}
.roster-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:65px;padding:9px 2px;border-bottom:1px solid #edf1ed}
.roster-row[hidden]{display:none}
.roster-avatar{width:43px;height:43px;border-radius:11px;object-fit:cover;object-position:center 20%;background:#e3eee6}
.roster-avatar-empty{display:grid;place-items:center;color:#3e7953;font-size:1rem;font-weight:800}
.roster-person{min-width:0}
.roster-person strong{display:block;overflow:hidden;color:#1c3526;font-size:.89rem;text-overflow:ellipsis;white-space:nowrap}
.roster-person span{display:block;margin-top:2px;color:#728676;font-size:.75rem}
.roster-status{max-width:150px;padding:5px 9px;border-radius:99px;text-align:center;font-size:.71rem;font-weight:800;line-height:1.25}
.roster-status-enrolled{background:#e1f4e6;color:#166234}
.roster-status-pending{background:#fff2dc;color:#885307}
.roster-status-disabled{background:#edf0ef;color:#66736b}
.roster-status-review{background:#ffe9e4;color:#9a402e}
.roster-empty{padding:20px 5px;text-align:center}
@media(max-width:620px){.enrollment-main{padding:15px 14px 25px}.enrollment-progress{margin:15px 0 12px}.enrollment-progress span{font-size:.65rem}.enrollment-card{padding:21px}.enrollment-person{gap:13px;padding:12px}.enrollment-person img,.enrollment-no-photo{width:73px;height:88px}.enrollment-person strong{font-size:1.13rem}}
@media(max-width:620px){.roster-main{padding:15px 14px 24px}.roster-heading{align-items:start;flex-direction:column;margin:22px 0 14px}.roster-heading h1{font-size:1.7rem}.roster-summary{grid-template-columns:repeat(2,1fr)}.roster-summary>div{padding:12px}.roster-panel{padding:14px}.roster-row{grid-template-columns:40px minmax(0,1fr);gap:3px 10px}.roster-avatar{width:40px;height:40px;grid-row:1/span 2}.roster-person strong{font-size:.85rem}.roster-status{grid-column:2;justify-self:start;padding:3px 8px;font-size:.68rem}}

@media(max-width:620px){
  .header-inner{padding:9px 16px;min-height:60px}
  .brand{font-size:1.07rem}.brand img{width:35px;height:35px}
  main{padding:22px 16px 36px}
  footer{padding:0 16px 15px}
  .panel{padding:19px}
  .inbox-panel{padding:8px 18px}
  .push-panel{padding:14px}
  .push-panel button{width:100%}
  .home-main{padding:12px 16px 15px}
  .welcome-card{min-height:132px;padding:16px 18px;border-radius:20px;gap:9px}
  .welcome-card::after{width:210px;height:210px;top:-132px;right:-70px}
  .welcome-kicker{margin-bottom:9px;font-size:.61rem}
  .welcome-card h1{font-size:1.4rem;line-height:1.12}
  .employee-meta{gap:5px;margin-top:10px}
  .employee-meta span{min-height:21px;padding:2px 7px;font-size:.65rem}
  .portrait-frame{width:83px;height:83px}
  .welcome-public{min-height:165px}
  .welcome-public h1{font-size:1.6rem}
  .welcome-public p{margin-top:8px;font-size:.85rem}
  .welcome-mark{width:83px;height:83px}
  .entry-panel{display:block;padding:20px}
  .entry-panel p{font-size:.9rem}
  .entry-actions{margin-top:17px}
  .workspace-section{margin-top:16px}
  .section-title{margin-bottom:8px}
  .section-title h2{font-size:.99rem}
  .quick-grid{gap:8px}
  .quick-card{min-height:105px;padding:10px 12px;border-radius:15px}
  .quick-icon{width:31px;height:31px;border-radius:10px}
  .quick-icon .ui-icon{width:18px;height:18px}
  .quick-arrow{right:10px;top:12px}
  .quick-arrow .ui-icon{width:16px;height:16px}
  .quick-card strong{font-size:.86rem}
  .quick-detail{font-size:.7rem}
  .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .service-tile{grid-template-columns:24px minmax(0,1fr);column-gap:6px;min-height:64px;padding:8px 9px;border-radius:13px}
  .service-tile>.ui-icon{width:19px;height:19px}
  .service-tile>.machine-pairing-icon{width:24px;height:24px;border-radius:5px}
  .service-tile>.product-icon{width:24px;height:24px;border-radius:6px}
  .service-tile strong{font-size:.76rem}
  .service-tile span{font-size:.63rem}
  .install-link{min-height:42px;margin-top:11px;padding:5px 10px;font-size:.78rem}
  .install-link-icon{width:28px;height:28px}
  .install-main{padding:12px 16px 80px}
  .install-heading .back-link{margin-bottom:8px}
  .install-heading h1{font-size:1.38rem}
  .install-heading p{font-size:.77rem;line-height:1.35}
  .install-address{margin-top:10px}
  .install-progress{margin:11px 0 7px}
  .install-step{display:flex;flex-direction:column;gap:9px;padding:12px}
  .install-copy{width:100%}
  .install-number{display:none}
  .install-copy h2{margin:0 0 3px;font-size:1rem}
  .install-copy p{margin:0;font-size:.77rem;line-height:1.4}
  .install-copy .install-after{margin-top:8px;padding:8px;font-size:.73rem}
  .install-shot{width:100%;height:min(43dvh,420px)}
  .install-shot img{width:auto;height:min(43dvh,420px);max-width:100%;max-height:none;object-fit:contain}
  .ios-annotated .ios-image-box{height:min(43dvh,420px)}
  .notification-shot{height:auto}
  .notification-shot img{width:100%;height:auto}
  .android-guide .install-shot{height:min(43dvh,420px)}
  .android-guide .notification-shot{height:auto}
  .install-controls{position:fixed;z-index:5;left:16px;right:16px;bottom:max(8px,env(safe-area-inset-bottom));max-width:800px;margin:0 auto;padding:7px;border:1px solid #dce9df;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 9px 26px rgba(22,67,35,.16)}
  .install-controls button{min-height:40px;padding:7px 12px;font-size:.81rem}
  .install-footnote{margin-top:7px;font-size:.65rem;line-height:1.3}
  .install-privacy{margin-top:8px;padding:9px 11px;font-size:.7rem}
  .install-privacy p{font-size:.71rem}
  .platform-grid{gap:10px;margin-top:15px}
  .platform-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .platform-desktop{grid-column:1/-1;min-height:110px}
  .platform-card{min-height:165px;padding:15px;border-radius:17px}
  .platform-symbol{width:48px;height:48px;border-radius:14px}
  .platform-symbol img{width:29px;height:29px}
  .platform-card strong{margin-top:12px;font-size:1.02rem}
  .platform-card b{right:13px;bottom:16px}
  .install-choice-note{font-size:.75rem}
  .pc-install-action{grid-template-columns:48px minmax(0,1fr);gap:11px;padding:14px}
  .pc-install-icon img{width:48px;height:48px}
  .pc-install-action button{grid-column:1/-1}
  .pc-install-methods{grid-template-columns:1fr}
  .pc-install-method{padding:14px}
  .android-visual{height:min(43dvh,420px)}
  .android-phone{width:205px;height:min(40dvh,385px)}
  body:has(.home-main .workspace-section) footer{display:none}
  body:has(.install-main) footer{display:none}
}
@media(max-width:360px) and (max-height:650px){
  .home-main{padding-top:9px;padding-bottom:9px}
  .welcome-card{min-height:117px;padding:12px 15px}
  .welcome-kicker{margin-bottom:5px}
  .welcome-card h1{font-size:1.28rem}
  .employee-meta{margin-top:7px}
  .portrait-frame{width:72px;height:72px}
  .workspace-section{margin-top:11px}
  .section-title{margin-bottom:6px}
  .quick-card{min-height:91px}
  .service-tile{min-height:57px;padding:6px 8px}
}
@media(max-width:330px) and (max-height:600px){
  .quick-card{min-height:84px}
  .service-tile{min-height:53px}
  .service-tile span{display:none}
  .service-tile>.ui-icon{grid-row:1/2}
  .service-tile>.machine-pairing-icon{grid-row:1/2}
}
@media(max-width:330px) and (max-height:600px){
  .service-tile>.mt-review-badge{display:grid}
}
