:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#243b36;background:#f5f6f2;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header{height:100px;border-bottom:1px solid #dfe5de;display:flex;align-items:center;justify-content:space-between;padding:0 6vw;background:#fff}.brand{font-size:44px;font-weight:800;display:flex;align-items:center;gap:14px;color:#173c34;text-decoration:none}.brand-dot{color:#97b769;margin-left:-18px}.brand>span:last-child{font-size:13px;letter-spacing:2px}.brand small{display:block;font-size:9px;letter-spacing:1.5px;margin-top:5px;color:#77837b}main{max-width:1120px;margin:48px auto;padding:0 24px;min-height:70vh}h1{font-size:clamp(28px,4vw,42px);letter-spacing:-1.5px;margin:10px 0 12px}h2{font-size:21px;margin:0 0 20px;letter-spacing:-.4px}h3{font-size:16px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#6b786e}.muted,small{color:#69786e;line-height:1.6}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.panel{background:#fff;border:1px solid #dfe6de;border-radius:20px;padding:30px;margin-bottom:22px}.login{max-width:460px;margin:60px auto}.login .panel{padding:36px}.grid{display:grid;grid-template-columns:1.15fr 1fr;gap:24px}.hero{background:#173c34;color:#fff;border:0}.hero .muted,.hero .eyebrow{color:#bed0bd}.clock{font-size:64px;font-weight:500;letter-spacing:-3px;margin:20px 0 8px;font-variant-numeric:tabular-nums}.pill{display:inline-block;border-radius:30px;background:#eef2e8;color:#355c40;padding:7px 12px;font-size:12px;font-weight:600}.hero .pill{background:#35564a;color:#def0d2}.warning{background:#fff3d8;border:1px solid #e9d59c;color:#72551c;border-radius:12px;padding:14px 18px;line-height:1.6;margin:15px 0}.steps{padding:0;list-style:none;counter-reset:step}.steps li{position:relative;padding:0 0 22px 42px;counter-increment:step;line-height:1.5}.steps li:before{content:counter(step);position:absolute;left:0;border:1px solid #dce4d7;border-radius:50%;width:26px;height:26px;text-align:center;line-height:26px;font-size:12px}.steps small{display:block}button,.button{border:0;border-radius:10px;padding:14px 20px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;background:#173c34;color:white;display:inline-block;text-decoration:none;text-align:center}button:hover,.button:hover{filter:brightness(1.12)}button:disabled{opacity:.45;cursor:wait}.hero button{background:#d0e9a5;color:#18392f;width:100%;margin-top:25px}.secondary{background:#edf1e8;color:#294539}.danger{background:#f8eeee;color:#9c3939}.small{padding:9px 12px;font-size:12px}.wide{width:100%}label{display:block;font-size:13px;font-weight:600;margin:16px 0 7px}input,select,textarea{width:100%;padding:13px;border:1px solid #cdd8ce;border-radius:9px;font:inherit;background:#fff;color:#243b36}input:focus,button:focus-visible,a:focus-visible{outline:3px solid #99be75;outline-offset:2px}form button{margin-top:20px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row>*{flex:1}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.tabs button{background:#e6ebe2;color:#244039}.tabs button.active{background:#173c34;color:#fff}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}th{text-align:left;color:#718070;font-size:11px;letter-spacing:.7px;text-transform:uppercase}td,th{padding:16px 12px;border-bottom:1px solid #ecf0e8}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.metric{background:#fff;border:1px solid #dfe6de;padding:22px;border-radius:14px}.metric strong{display:block;font-size:32px;margin-top:8px}.empty{text-align:center;padding:30px;color:#6b786e}.code{font-size:26px;letter-spacing:8px;text-align:center;font-variant-numeric:tabular-nums}#notice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#173c34;color:#fff;padding:16px 24px;border-radius:12px;box-shadow:0 8px 40px #0003;max-width:90vw;display:none;z-index:20}#notice.error{background:#873c32}footer{padding:30px 6vw;border-top:1px solid #dfe5de;color:#77816f;font-size:11px;display:flex;justify-content:space-between;gap:20px}.secret{overflow-wrap:anywhere;font-family:monospace;background:#eef2e8;padding:16px;border-radius:10px}.account-name{font-size:12px;margin-right:15px}details{margin-top:22px}summary{cursor:pointer;font-weight:600}.check{font-size:25px;color:#628449}a{color:#315b38}@media(max-width:700px){header{height:80px;padding:0 20px}.brand{font-size:34px}.brand>span:last-child{font-size:10px}.account-name{display:none}main{margin:28px auto;padding:0 18px}.grid{grid-template-columns:1fr}.panel{padding:24px}.intro{display:block}.intro .pill{margin-top:10px}.clock{font-size:58px}.metrics{gap:8px}.metric{padding:14px;font-size:11px}.metric strong{font-size:26px}.row{align-items:stretch}.row>*{min-width:120px}footer{display:block;line-height:2}footer span{display:block}.login{margin-top:30px}.login .panel{padding:25px}}

#account{display:flex;align-items:center;gap:8px}.admin-lock{font-size:18px;line-height:1;padding:9px 11px}td small{display:block}.hero small{color:#d0dfcd}@media(max-width:420px){.brand>span:last-child{display:none}.brand{gap:0}}

.phone-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:20px}.phone-actions button{margin-top:0;padding:13px 6px}.hero .phone-actions button{margin-top:0}.attendance-error{background:#fff0ed;border:1px solid #d69186;color:#873c32;line-height:1.6}

.phone-actions.two-actions{grid-template-columns:repeat(2,minmax(0,1fr))}

.device-full-id{overflow-wrap:anywhere}

.weekly-table input{min-width:125px}.weekly-table textarea{min-width:220px;max-width:400px;width:100%;padding:10px;border:1px solid #d1d5db;border-radius:8px;font:inherit;resize:vertical}.weekly-table small{display:block}

.code-method{margin:1rem 0;padding:1rem;border:1px solid var(--line,#ddd);border-radius:8px}.code-method label{display:inline-flex;align-items:center;gap:.4rem;margin-right:1rem}.code-method input{width:auto;margin:0}
