
:root{font-family:Segoe UI,Arial,sans-serif;color:#1b3042;background:#f3f6f8;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:0;border-radius:10px;padding:12px 18px;background:#087f75;color:white;font-weight:600}button:hover{filter:brightness(.93)}button:disabled{opacity:.5;cursor:wait}button.secondary{background:#e9eff2;color:#294657}button.danger{background:#fff0ef;color:#a43432}a{color:#087f75}input,select{width:100%;border:1px solid #cbd8dd;border-radius:9px;padding:12px;background:white;color:#1b3042}label{display:block;font-size:14px;margin:16px 0 6px}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px}h2{font-size:20px}small,.muted{color:#6a7c89}.badge{display:inline-block;padding:5px 9px;border-radius:6px;background:#e5f6ef;color:#187052;font-size:12px;font-weight:600}.test{background:#fff4d9;color:#8d6715}.shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.sidebar{background:#132f3c;color:white;padding:30px 20px;display:flex;flex-direction:column;gap:30px}.logo{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:700;letter-spacing:-.5px}.logo span{background:#1bb397;border-radius:12px;padding:7px 11px;color:#fff}.brand small{display:block;margin:8px 0 0 50px;color:#a9c2cb;letter-spacing:2px;font-size:10px}.nav{display:grid;gap:8px}.nav button{text-align:left;background:transparent;color:#b8ccd4}.nav button.active{background:#24515d;color:white}.sidebar .bottom{margin-top:auto;font-size:13px;color:#a9c2cb;line-height:1.7}.main{padding:30px 40px;max-width:1450px;width:100%;margin:auto}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px;font-size:13px}.avatar{display:flex;align-items:center;gap:10px}.circle{background:#e2ebe9;color:#087f75;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.heading p{margin-bottom:0;color:#71808d}.grid{display:grid;grid-template-columns:1.3fr 1fr;gap:22px}.card{background:white;border:1px solid #e0e8ec;border-radius:16px;padding:25px;box-shadow:0 3px 9px #1a425004;margin-bottom:22px}.clock{text-align:center;padding:25px 0}.clock strong{display:block;font-size:50px;letter-spacing:-2px;font-weight:600;font-variant-numeric:tabular-nums}.clock p{color:#748592;margin-top:8px}.punch-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px}.punch-buttons button{padding:19px;text-align:left}.punch-buttons button span{display:block;font-size:12px;font-weight:400;margin-top:5px;opacity:.8}.punch-buttons button:nth-child(2),.punch-buttons button:nth-child(3){background:#edf4f3;color:#28716b}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:22px}.metric{background:#fff;border:1px solid #e0e8ec;border-radius:12px;padding:20px}.metric strong{font-size:28px;display:block;margin-top:10px}.timeline{display:flex;gap:14px;padding:15px 0;border-bottom:1px solid #eef1f3}.dot{width:10px;height:10px;flex-shrink:0;background:#0f9c8c;border-radius:50%;margin-top:6px}.timeline strong{font-size:14px}.timeline small{display:block;margin-top:5px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px;white-space:nowrap}th{text-align:left;color:#70838e;font-size:12px;font-weight:600;background:#f7f9fa}td,th{padding:15px 12px;border-bottom:1px solid #edf1f3}td button{padding:7px 10px;font-size:12px}.empty{padding:30px 0;color:#7a8c97;text-align:center}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.intro{background:#132f3c;color:white;padding:65px;display:flex;flex-direction:column;justify-content:space-between}.intro h1{font-size:52px;max-width:500px;line-height:1.13}.intro p{color:#b6ccd3;max-width:430px;line-height:1.8}.login-area{display:grid;place-items:center;padding:35px}.login-form{max-width:410px;width:100%}.login-form button{width:100%;margin-top:24px}.demo-box{border:1px solid #d8e3e6;padding:18px;border-radius:12px;margin-top:25px;line-height:1.7;font-size:13px}.demo-box button{margin:8px 6px 0 0;width:auto;padding:8px;font-size:12px}.error{color:#ac3434;font-size:14px;margin-top:12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#132f3c;color:white;padding:14px 24px;border-radius:12px;display:none;max-width:90%;z-index:10}dialog{border:0;border-radius:18px;padding:28px;max-width:540px;width:calc(100% - 30px);box-shadow:0 20px 80px #132f3c33}dialog::backdrop{background:#132f3c66}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.receipt{overflow-wrap:anywhere;line-height:1.8}.receipt dl{font-size:14px}.receipt dt{color:#758793}.receipt dd{margin:0 0 12px}.notice{padding:12px 16px;background:#fff7e7;border-radius:10px;font-size:12px;color:#86652a;line-height:1.6}.filters{display:flex;gap:12px;margin-bottom:20px}.filters input{max-width:250px}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{padding:18px;gap:15px}.brand small,.sidebar .bottom{display:none}.nav{display:flex;overflow-x:auto}.nav button{white-space:nowrap;font-size:13px;padding:10px}.main{padding:22px 18px}.grid{grid-template-columns:1fr}.top{margin-bottom:25px}.login{grid-template-columns:1fr}.intro{padding:25px}.intro>div:nth-child(2),.intro>small{display:none}.login-area{padding:30px 22px}.metrics{gap:8px}.metric{padding:14px}.metric strong{font-size:23px}.heading{gap:12px}h1{font-size:26px}.clock strong{font-size:44px}}@media print{.sidebar,.top,.heading button,.filters,#toast,.actions,button{display:none!important}.shell{display:block}.main{padding:0}.card{box-shadow:none}dialog{position:static;box-shadow:none;max-width:none}body:has(dialog[open]) .shell{display:none}.notice{display:none}}
/* Keep narrow layouts within the viewport. */
.main,.sidebar,.card,.metric,.grid>*{min-width:0}.grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.top{gap:16px;flex-wrap:wrap}.avatar{max-width:100%}.avatar>div{min-width:0}.table-wrap{max-width:100%}.nav{min-width:0}.filters>*{min-width:0}@media(max-width:900px){.grid{grid-template-columns:minmax(0,1fr)}.main{margin:0}.metric small{font-size:12px}.metric{overflow-wrap:anywhere}.heading{flex-wrap:wrap}.punch-buttons button{padding:16px 12px}.filters{flex-wrap:wrap}.filters input{max-width:100%}}
