*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--green: #20cd8d;--dark: #335355;--gray: #545f71;--light: #eef1f4;--white: #ffffff;--danger: #e74c3c;--font-main: "Inter", sans-serif;--font-brand: "Nunito", sans-serif}body{font-family:var(--font-main);background:#f0f4f0;min-height:100vh;overflow-x:hidden}#root{min-height:100vh}.phone-screen{max-width:430px;margin:0 auto;min-height:100vh;background:var(--dark);position:relative;overflow:hidden}.btn-primary{background:var(--green);color:#fff;border:none;border-radius:30px;padding:14px 24px;font-size:16px;font-weight:600;cursor:pointer;width:100%;box-shadow:0 4px 4px #00000040;transition:transform .1s,opacity .1s;font-family:var(--font-main)}.btn-primary:active{transform:scale(.97);opacity:.9}.btn-secondary{background:var(--gray);color:#fff;border:none;border-radius:30px;padding:14px 24px;font-size:16px;font-weight:600;cursor:pointer;width:100%;font-family:var(--font-main)}.btn-danger{background:var(--danger);color:#fff;border:none;border-radius:30px;padding:14px 24px;font-size:16px;font-weight:600;cursor:pointer;width:100%;font-family:var(--font-main)}.input-field{width:100%;padding:14px 16px;border-radius:8px;border:1px solid var(--gray);font-size:16px;font-family:var(--font-main);background:#ffffff1a;color:#fff;outline:none}.input-field::placeholder{color:#ffffff80}.input-field:focus{border-color:var(--green);background:#20cd8d1a}.input-label{color:#ffffffb3;font-size:14px;margin-bottom:6px;display:block}.card{background:#ffffff14;border-radius:16px;padding:16px;margin-bottom:12px}.badge-in{background:var(--green);color:#fff;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.badge-out{background:var(--gray);color:#fff;padding:4px 12px;border-radius:20px;font-size:12px}.back-btn{background:none;border:none;color:var(--green);font-size:24px;cursor:pointer;padding:8px}.spinner{width:40px;height:40px;border:3px solid rgba(32,205,141,.2);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.geo-allowed{background:#20cd8d33;border:2px solid var(--green);border-radius:16px;padding:16px;text-align:center;color:var(--green)}.geo-denied{background:#e74c3c33;border:2px solid var(--danger);border-radius:16px;padding:16px;text-align:center;color:var(--danger)}.geo-checking{background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:16px;padding:16px;text-align:center;color:#ffffffb3}.map-container{height:200px;border-radius:12px;overflow:hidden;margin:12px 0}.pin-container{display:flex;gap:12px;justify-content:center;margin:20px 0}.pin-digit{width:55px;height:65px;border-radius:12px;border:2px solid rgba(255,255,255,.3);background:#ffffff1a;font-size:28px;font-weight:700;color:#fff;text-align:center;outline:none;font-family:var(--font-main)}.pin-digit:focus{border-color:var(--green)}.screen-header{padding:60px 24px 20px;text-align:center}.brand-logo{font-family:var(--font-brand);font-style:italic;font-size:48px;color:var(--green);text-shadow:0 4px 4px rgba(0,0,0,.25)}.scroll-content{overflow-y:auto;padding-bottom:80px}.bottom-bar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;padding:16px 24px;background:linear-gradient(to top,var(--dark) 80%,transparent);display:flex;gap:12px}.worker-item{display:flex;align-items:center;justify-content:space-between;background:#ffffff14;border-radius:12px;padding:14px 16px;margin-bottom:10px}.worker-avatar{width:40px;height:40px;background:var(--green);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:16px;flex-shrink:0}.project-card{background:#20cd8d26;border:1px solid rgba(32,205,141,.3);border-radius:16px;padding:16px;margin-bottom:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:100;display:flex;align-items:flex-end;justify-content:center}.modal-sheet{background:#1a3a3c;border-radius:24px 24px 0 0;padding:24px 24px 40px;width:100%;max-width:430px;max-height:90vh;overflow-y:auto}.modal-handle{width:40px;height:4px;background:#ffffff4d;border-radius:2px;margin:0 auto 20px}.radius-options{display:flex;gap:10px;margin:8px 0}.radius-option{flex:1;padding:12px;border-radius:12px;border:2px solid rgba(255,255,255,.2);background:transparent;color:#fff;text-align:center;cursor:pointer;font-size:14px;font-family:var(--font-main);transition:all .2s}.radius-option.selected{border-color:var(--green);background:#20cd8d33;color:var(--green);font-weight:600}.tab-bar{display:flex;background:#ffffff0d;border-radius:12px;padding:4px;margin:0 24px 20px}.tab{flex:1;padding:10px;text-align:center;border:none;background:none;color:#ffffff80;font-size:14px;font-weight:600;border-radius:10px;cursor:pointer;font-family:var(--font-main);transition:all .2s}.tab.active{background:var(--green);color:#fff}.toast{position:fixed;top:20px;left:50%;transform:translate(-50%);background:var(--dark);color:#fff;padding:12px 24px;border-radius:30px;border:1px solid var(--green);font-size:14px;z-index:999;box-shadow:0 4px 20px #0006;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}
