@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--bg: #0F172A;--bg-card: #1E293B;--bg-hover: #334155;--text: #F8FAFC;--text-muted: #94A3B8;--text-dim: #64748B;--accent: #0891B2;--accent-hover: #06B6D4;--accent-light: rgba(8, 145, 178, .15);--success: #10B981;--warning: #F59E0B;--danger: #EF4444;--border: #334155;--radius: 12px;--font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;min-height:100vh;min-height:100dvh;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.app-layout{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;justify-content:space-around;align-items:center;background:var(--bg-card);border-top:1px solid var(--border);padding:6px 0 max(6px,env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;text-decoration:none;color:var(--text-dim);font-size:10px;font-weight:500;transition:color .2s;border-radius:8px}.bottom-nav a.active{color:var(--accent)}.bottom-nav a svg{width:22px;height:22px}.bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;color:var(--text-dim);font-size:10px;font-weight:500;transition:color .2s;border-radius:8px}.bottom-nav button.active,.bottom-nav button:hover{color:var(--accent)}.bottom-nav button svg{width:22px;height:22px}.page{flex:1;padding:16px 16px 80px;max-width:800px;margin:0 auto;width:100%}.card{background:var(--bg-card);border-radius:var(--radius);padding:16px;border:1px solid var(--border);transition:all .2s}.card:hover{border-color:var(--accent)}.card-flat{background:var(--bg-card);border-radius:var(--radius);padding:16px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-title{font-size:14px;font-weight:600;color:var(--text)}.card-subtitle{font-size:12px;color:var(--text-muted);margin-top:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all .2s;font-family:var(--font)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn-outline{background:transparent;color:var(--accent);border:1px solid var(--accent)}.btn-outline:hover{background:var(--accent-light)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:6px 14px;font-size:12px;border-radius:8px}.btn-lg{padding:14px 28px;font-size:16px;width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-clock{width:100%;padding:16px;border-radius:16px;font-size:18px;font-weight:700;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .3s;font-family:var(--font)}.btn-clock.clock-in{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-clock.clock-in:hover{transform:scale(1.02);box-shadow:0 8px 25px #10b9814d}.btn-clock.clock-out{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-clock.clock-out:hover{transform:scale(1.02);box-shadow:0 8px 25px #ef44444d}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stat-card{background:var(--bg-card);border-radius:var(--radius);padding:14px;border:1px solid var(--border);text-align:center}.stat-value{font-size:24px;font-weight:800;color:var(--accent)}.stat-label{font-size:11px;color:var(--text-muted);margin-top:2px;text-transform:uppercase;letter-spacing:.5px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600}.badge-active{background:#10b98126;color:#10b981}.badge-planning{background:#3b82f626;color:#3b82f6}.badge-completed{background:#a855f726;color:#a855f7}.badge-on-hold{background:#f59e0b26;color:#f59e0b}.badge-clocked{background:#10b98126;color:#10b981;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.timer-display{background:linear-gradient(135deg,var(--bg-card),#1a2640);border:2px solid var(--accent);border-radius:16px;padding:20px;text-align:center;margin-bottom:12px}.timer-time{font-size:42px;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:2px}.timer-label{font-size:12px;color:var(--text-muted);margin-top:4px}.timer-project{font-size:14px;color:var(--text);font-weight:600;margin-top:8px}.job-card{text-decoration:none;color:inherit;display:block}.job-card .card{cursor:pointer}.job-address{display:flex;align-items:flex-start;gap:8px;margin-top:8px}.job-address svg{flex-shrink:0;color:var(--text-dim);margin-top:2px}.job-address span{font-size:12px;color:var(--text-muted);line-height:1.4}.job-meta{display:flex;gap:12px;margin-top:10px;flex-wrap:wrap}.job-meta-item{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-dim)}.input-group{margin-bottom:16px}.input-group label{display:block;font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.input,.textarea,select.input{width:100%;padding:10px 14px;border-radius:10px;background:var(--bg);border:1px solid var(--border);color:var(--text);font-size:14px;font-family:var(--font);transition:border-color .2s;outline:none}.input:focus,.textarea:focus{border-color:var(--accent)}.textarea{resize:vertical;min-height:80px}.login-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#0f172a,#1e293b,#0f172a)}.login-card{width:100%;max-width:400px;background:var(--bg-card);border-radius:20px;padding:40px 32px;border:1px solid var(--border);box-shadow:0 20px 60px #0006}.login-logo{text-align:center;margin-bottom:32px}.login-logo h1{font-size:28px;font-weight:800}.login-logo h1 span{color:var(--accent)}.login-logo p{font-size:13px;color:var(--text-muted);margin-top:4px}.login-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:10px 14px;border-radius:10px;font-size:13px;margin-bottom:16px}.page-header{margin-bottom:20px}.page-header h1{font-size:22px;font-weight:800}.page-header p{font-size:13px;color:var(--text-muted);margin-top:2px}.time-entry{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-card);border-radius:10px;border:1px solid var(--border)}.time-entry-info{flex:1}.time-entry-project{font-size:13px;font-weight:600}.time-entry-detail{font-size:11px;color:var(--text-muted);margin-top:2px}.time-entry-hours{font-size:16px;font-weight:700;color:var(--accent)}.detail-section{margin-bottom:20px}.detail-section h3{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}.detail-row{display:flex;justify-content:space-between;padding:6px 0}.detail-label{font-size:13px;color:var(--text-dim)}.detail-value{font-size:13px;font-weight:500;color:var(--text);text-align:right;max-width:60%}.note-card{background:var(--bg);border-radius:10px;padding:12px;border:1px solid var(--border);margin-bottom:10px}.note-header{display:flex;justify-content:space-between;margin-bottom:6px}.note-author{font-size:12px;font-weight:600}.note-time{font-size:11px;color:var(--text-dim)}.note-content{font-size:13px;color:var(--text-muted);line-height:1.5}.note-type{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;margin-bottom:6px}.note-type-update{background:#3b82f626;color:#3b82f6}.note-type-issue{background:#ef444426;color:#ef4444}.note-type-safety{background:#f59e0b26;color:#f59e0b}.note-type-general{background:#a855f726;color:#a855f7}.profile-avatar{width:80px;height:80px;border-radius:50%;background:var(--accent-light);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;color:var(--accent);border:3px solid var(--accent);margin:0 auto 16px}.loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-muted)}.spinner{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:40px 20px;color:var(--text-dim)}.empty-state svg{width:48px;height:48px;margin-bottom:12px;opacity:.4}.empty-state h3{font-size:16px;font-weight:600;color:var(--text-muted);margin-bottom:4px}.empty-state p{font-size:13px}.progress-bar{height:6px;background:var(--bg);border-radius:3px;overflow:hidden;margin-top:8px}.progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .5s ease}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2394A3B8' fill='none' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}@media(min-width:768px){.stats-grid{grid-template-columns:repeat(4,1fr)}.page{padding:24px 24px 80px}}.more-overlay{position:fixed;inset:0;z-index:60;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease}.more-menu{position:fixed;bottom:0;left:0;right:0;z-index:70;background:var(--bg-card);border-top:1px solid var(--border);border-radius:20px 20px 0 0;padding:24px 20px max(24px,env(safe-area-inset-bottom));animation:slideUp .25s ease;max-width:500px;margin:0 auto}.more-menu button:hover{background:var(--bg-hover)!important;color:var(--accent)!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}
