
:root{--ink:#192d2a;--muted:#76817e;--line:#e4e9e5;--green:#246b54;--paper:#f6f7f4;--orange:#d6814b;--red:#b24a42;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--paper)}[hidden]{display:none!important}button,input,select{font:inherit}button,select{cursor:pointer}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #77b5a0;outline-offset:3px}button:disabled{opacity:.4;cursor:default}a{color:inherit;text-decoration:none}.brand{display:flex;align-items:center;gap:10px;letter-spacing:2px;font-size:17px;font-weight:750}.brand-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:37px;background:#c9e5d6;color:#203d33;border-radius:8px 8px 8px 0;font-size:24px;letter-spacing:-3px;padding-right:3px}.sidebar{width:228px;position:fixed;inset:0 auto 0 0;background:#173b31;color:#e4eee7;padding:32px 22px;display:flex;flex-direction:column}.sidebar .brand{padding-left:5px}.workspace-label{font-size:9px;letter-spacing:1.7px;color:#a3bcb0;margin:54px 10px 12px}.workspace-name{font-weight:600;margin:0 10px;font-size:14px}.workspace-name>span{display:block;color:#98b4a5;font-size:12px;margin-top:7px}nav{margin-top:28px}.nav-item{width:100%;text-align:left;display:flex;align-items:center;gap:13px;background:#2b5043;border:1px solid #4a6c5b;border-radius:7px;padding:13px 12px;color:white;font-size:13px}.nav-item>span{font-size:19px;line-height:15px}.nav-item i{width:5px;height:5px;border-radius:50%;background:#b8dfb9;margin-left:auto}.sidebar-bottom{margin-top:auto}.read-only{display:flex;gap:10px;margin:25px 4px;color:#c7d8cd;font-size:11px;line-height:1.5}.read-only>span{font-size:22px}.read-only small{display:block;font-size:10px;color:#90ac9c}.profile{border-top:1px solid #375749;padding-top:22px;display:flex;gap:10px;align-items:center}.avatar{display:grid;place-items:center;width:33px;height:33px;background:#3e6051;border-radius:50%;font-size:12px}.profile strong{display:block;font-size:12px;font-weight:500;max-width:110px;overflow:hidden;text-overflow:ellipsis}.profile small{display:block;font-size:10px;color:#98b4a5;margin-top:4px}.profile button{background:none;border:0;color:#c0d3c5;font-size:22px;margin-left:auto}main{margin-left:228px}.topbar{height:77px;padding:0 42px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#fbfcf9}.breadcrumbs{font-size:12px;color:#808985}.breadcrumbs span{margin:0 12px;color:#c6cdc8}.breadcrumbs strong{font-weight:500;color:#34483e}.topbar-right{display:flex;align-items:center;gap:20px}.zone{font-size:9px;letter-spacing:.9px;color:#89918b}#clock{font-size:12px;font-variant-numeric:tabular-nums}.content{max-width:1600px;margin:auto;padding:41px 42px 25px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:29px}.eyebrow{font-size:9px;letter-spacing:1.8px;color:#7c8c7c;font-weight:650}h1{font-size:34px;font-weight:550;letter-spacing:-1.5px;margin:10px 0}.title-dot{color:var(--orange)}.page-heading p{font-size:12px;color:var(--muted);margin:10px 0 0}.heading-actions{display:flex;gap:14px;align-items:center}.connection{font-size:11px;color:#376a50;display:flex;align-items:center;gap:8px}.pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:#62a581;box-shadow:0 0 0 4px #62a58115}.button{background:white;border:1px solid #dce3dc;border-radius:6px;padding:10px 14px;font-size:11px;display:inline-flex;align-items:center;gap:8px;font-weight:500}.button:hover{border-color:#6b907d}.overview{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:28px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:20px 22px;min-height:144px}.stat-label{font-size:9px;font-weight:600;letter-spacing:1px;color:#7c8780;display:flex;align-items:center;justify-content:space-between}.stat-label>span{font-size:17px;font-weight:400;color:#899c8e}.stat-number{font-size:36px;font-weight:500;letter-spacing:-1.4px;margin:9px 0 10px;font-variant-numeric:tabular-nums}.stat-foot{font-size:10px;color:#849087;display:flex;align-items:center;gap:6px}.legend-dot{display:inline-block;width:5px;height:5px;background:#a7b1a6;border-radius:50%}.green{color:#3a8e63!important}.red{color:#ba5b50!important}.green-bg{background:#79ae8d}.red-bg{background:#d0897d}.gate-statuses{display:flex;gap:11px;font-size:10px;color:#7c8780}.gate-statuses span{display:flex;align-items:center;gap:5px}.event-panel{border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}.panel-heading{padding:22px 23px;display:flex;justify-content:space-between;align-items:center}.panel-heading>div{display:flex;align-items:baseline;gap:14px}h2{font-size:15px;font-weight:600;margin:0}.panel-heading>div>span{font-size:10px;color:#8b958e}.filters{display:flex;gap:9px;padding:0 23px 20px;flex-wrap:wrap}.filters input,.filters select{border:1px solid #e1e7e1;background:#fff;color:#53615a;border-radius:5px;padding:9px 11px;font-size:11px;min-height:36px}.filters select{padding-right:25px}.filters input[type=date]{max-width:149px}.search{display:flex;align-items:center;border:1px solid #e1e7e1;border-radius:5px;flex:1;min-width:215px}.search span{font-size:22px;padding-left:10px;color:#88968a;line-height:15px}.search input{border:0;width:100%;outline-offset:0}.table-wrap{overflow-x:auto;min-height:250px}table{border-collapse:collapse;text-align:left;width:100%;white-space:nowrap}thead{background:#f6f8f4;border-top:1px solid #e8ece6;border-bottom:1px solid #e8ece6}th{font-size:8px;letter-spacing:.85px;font-weight:600;color:#849080;padding:13px 16px}th:first-child,td:first-child{padding-left:23px}th span{margin-left:7px}td{font-size:11px;padding:15px 16px;border-bottom:1px solid #f0f2ed;vertical-align:middle}tbody tr:hover{background:#fafbf8}td.time{font-variant-numeric:tabular-nums;color:#6d7a70;font-size:10px}td.reason{white-space:normal;min-width:190px;max-width:320px;color:#6b786e;font-size:10px;line-height:1.5}.gate-pill{border:1px solid #dbe3d8;background:#f8faf5;padding:3px 7px;border-radius:4px;font-size:9px;font-weight:600;letter-spacing:.5px}.card-ref{font-size:10px;font-family:Consolas,monospace;color:#64736a}.card-ref small{display:block;font-family:Inter,"Segoe UI",Arial,sans-serif;color:#9ba49c;font-size:8px;margin-top:3px}.direction{font-size:10px;color:#657468;display:inline-flex;gap:7px;align-items:center}.direction i{font-style:normal;font-size:15px}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;font-size:9px;border-radius:4px;font-weight:500}.badge.allowed{background:#edf6ee;color:#3a7852}.badge.refused{background:#fbefeb;color:#af6454}.attendance{font-size:9px;color:#8a958c}.attendance.warning{color:#b27b41}.duplicate{display:block;color:#9a8c6d;font-size:8px;margin-top:4px}.table-footer{display:flex;justify-content:space-between;align-items:center;padding:15px 23px;font-size:10px;color:#8c968d}.table-footer>div{display:flex;gap:12px;align-items:center}.pager{border:1px solid #e5e9e2;border-radius:4px;background:#fff;width:26px;height:25px}.bottom-note{display:flex;justify-content:space-between;margin-top:20px;font-size:9px;color:#919b91;gap:20px}.bottom-note>span:first-child{display:flex;gap:7px;align-items:center}.empty{text-align:center;padding:42px 20px;color:#889387}.empty>div{font-size:35px;color:#98b2a2}.empty h3{font-size:14px;font-weight:500;color:#485e4e}.empty p{font-size:11px}.feed-error{padding:13px 17px;background:#fff0e7;color:#9b603c;border:1px solid #e7d5c4;border-radius:6px;font-size:12px;margin-bottom:20px}.initial-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#748478;font-size:12px}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff}.login-story{padding:45px 65px;display:flex;flex-direction:column;justify-content:space-between;background:#173b31;color:#e3eee5;min-height:100vh;position:relative;overflow:hidden}.login-story:after{content:"";position:absolute;border:1px solid #ffffff0b;width:600px;height:600px;border-radius:50%;bottom:-390px;left:70px;pointer-events:none}.brand-light{font-size:9px;letter-spacing:1px;color:#a4bbaa;font-weight:400}.login-story .eyebrow{color:#a5c7ae;font-size:10px}.login-story h1{font-size:clamp(40px,4.2vw,65px);line-height:1.12;letter-spacing:-2.5px;font-weight:450;margin:24px 0}.login-story em{font-style:normal;color:#c7d8ac}.story-copy{font-size:13px;line-height:1.9;color:#a7c0ae;max-width:350px}.story-line{display:flex;align-items:center;gap:10px;font-size:11px;color:#bdd3bf;margin-top:35px}.story-footer{font-size:8px;letter-spacing:1.5px;color:#89a790;display:flex;justify-content:space-between}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:60px 45px}.login-form{width:100%;max-width:330px}.small-tag{font-size:9px;letter-spacing:1.5px;color:#7b927f}.login-form h2{font-size:31px;font-weight:500;letter-spacing:-1px;margin:16px 0 9px}.login-form>p{font-size:12px;color:#7b897e;margin:0 0 35px}.login-form label{font-size:11px;display:block;font-weight:500;margin:22px 0 9px}.login-form input{width:100%;border:1px solid #dce4da;border-radius:5px;padding:13px;font-size:12px;background:#fcfdfb}.password-wrap{position:relative}.password-wrap input{padding-right:55px}.password-wrap button{position:absolute;right:7px;top:7px;border:0;background:none;font-size:10px;color:#7b8d7e;padding:8px}.primary{width:100%;border:0;border-radius:5px;color:#fff;background:#245b43;padding:14px;margin-top:22px;font-size:12px;display:flex;justify-content:space-between}.primary:hover{background:#1b4a36}.login-form .error{margin:13px 0 0;color:#ad5749;font-size:11px}.login-form .login-help{text-align:center;font-size:10px;line-height:1.8;margin:25px 0;color:#91a08e}.login-note{border-top:1px solid #edf0e9;padding-top:23px;font-size:9px;text-align:center;color:#9ca697}@media(min-width:1550px){td{padding-top:18px;padding-bottom:18px}}@media(max-width:1150px){.sidebar{width:185px;padding:30px 14px}main{margin-left:185px}.content{padding:30px 24px}.topbar{padding:0 24px}.stat-card{padding:18px 15px}.panel-heading>div{display:block}.panel-heading>div>span{display:block;margin-top:5px}.zone{display:none}.heading-actions{gap:9px}.page-heading p{max-width:320px;line-height:1.6}}@media(max-width:800px){.sidebar{position:static;width:auto;flex-direction:row;align-items:center;padding:15px 20px;gap:25px}.sidebar .workspace-label,.workspace-name,.sidebar nav,.read-only{display:none}.sidebar-bottom{margin:0 0 0 auto}.profile{padding:0;border:0}.profile small{display:none}main{margin-left:0}.topbar{height:55px}.content{padding:27px 20px}.overview{grid-template-columns:repeat(2,1fr);gap:11px}.stat-card{min-height:126px}.page-heading{align-items:start;gap:10px}.page-heading h1{font-size:29px}.heading-actions{flex-direction:column;align-items:flex-end;margin-top:8px}.connection{white-space:nowrap;font-size:10px}.heading-actions .button{padding:7px 10px}.filters{padding:0 16px 17px;gap:7px}.search{flex-basis:100%}.filters select,.filters input[type=date]{flex:1;min-width:100px}.bottom-note{flex-direction:column;gap:8px}.login-shell{grid-template-columns:1fr}.login-story{min-height:320px;padding:25px 28px}.login-story h1{font-size:38px;margin:25px 0 16px}.login-story h1 br:first-child{display:none}.login-story .story-copy,.story-line,.story-footer{display:none}.login-story .eyebrow{margin:30px 0 0}.login-form-wrap{padding:35px 28px 45px}.login-form{max-width:400px}.brand-light{font-size:8px}}
.profile .account-link{font-size:9px;color:#aac8b2;margin:0;padding:0;text-align:left;text-decoration:underline}.login-form #cancel-password{margin:15px auto;display:block}
.table-wrap{max-height:550px;overflow:auto}thead{position:sticky;top:0;z-index:1}.login-story h1 br{margin-right:5px}
th{font-size:10px}td{font-size:12px}td.time,.card-ref,td.reason{font-size:11px}.attendance{font-size:10px}.stat-label{font-size:10px}.stat-foot{font-size:11px}.bottom-note{font-size:10px}.table-wrap{max-height:clamp(280px,calc(100vh - 555px),550px)}
