.app{min-height:100vh;display:flex;flex-direction:column}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:var(--spacing-md)}.login-card{background:#fff;border-radius:8px;padding:40px;max-width:400px;width:100%;box-shadow:0 10px 25px #0003;text-align:center}.login-card h1{margin-bottom:6px;color:var(--color-primary)}.title-group{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.build-badge,.build-label{display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#334155;background:#94a3b82e;border:1px solid rgba(100,116,139,.28);border-radius:999px;padding:4px 10px}.build-label{margin:0 0 var(--spacing-md)}.login-card p{color:var(--color-text-muted);margin-bottom:var(--spacing-lg)}.login-card .button{width:100%}.login-section{text-align:left}.login-section h3{color:var(--color-primary);margin-bottom:var(--spacing-md);text-align:center}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;color:var(--color-text)}.form-group input{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:4px;font-size:14px;box-sizing:border-box}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #667eea1a}.quick-login{background:var(--color-background);padding:var(--spacing-md);border-radius:4px;margin-bottom:var(--spacing-md)}.quick-login p{margin-bottom:var(--spacing-md);font-size:14px;color:var(--color-text)}.test-user-buttons{display:flex;flex-direction:column;gap:var(--spacing-sm)}.test-user-buttons .button{margin:0}.error-message{color:var(--color-danger);background:#ef44441a;padding:8px 12px;border-radius:4px;margin-bottom:var(--spacing-md);font-size:14px}.auth-info{background:var(--color-background);padding:var(--spacing-md);border-radius:4px;margin-top:var(--spacing-md);font-size:12px;color:var(--color-text-muted)}.auth-info p{margin:0}main{flex:1;padding-bottom:var(--spacing-xl)}.change-log-snapshot{display:flex;flex-direction:column;gap:4px;min-width:220px}.change-log-row{display:grid;grid-template-columns:110px 1fr;gap:8px;padding:4px 6px;border-radius:4px}.change-log-key{font-weight:600;font-size:12px;color:var(--color-text-muted)}.change-log-value{font-size:12px;word-break:break-word}.change-log-row-before{background:#dc35451f;border:1px solid rgba(220,53,69,.35)}.change-log-row-after{background:#28a7451f;border:1px solid rgba(40,167,69,.35)}@media (min-width: 768px){main{padding-bottom:var(--spacing-2xl)}}@media (max-width: 767px){.title-group{flex-direction:column;align-items:flex-start;gap:6px}}:root{--color-primary: #0066cc;--color-primary-dark: #004399;--color-success: #28a745;--color-danger: #dc3545;--color-warning: #ffc107;--color-light: #f8f9fa;--color-dark: #212529;--color-text: #333;--color-text-muted: #6c757d;--color-border: #dee2e6;--color-bg: #fff;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 20px;--border-radius: 4px;--transition: all .2s ease-in-out}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);color:var(--color-text);font-size:var(--font-size-base);line-height:1.5}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:var(--spacing-md)}h1{font-size:clamp(20px,5vw,28px)}h2{font-size:clamp(18px,4vw,24px)}h3{font-size:clamp(16px,3vw,20px)}p{margin-bottom:var(--spacing-md)}body{overflow-x:hidden;max-width:100vw}.container{width:100%;padding:var(--spacing-sm) var(--spacing-md);margin:0 auto;overflow-x:hidden}@media (min-width: 768px){.container{padding:var(--spacing-lg);max-width:1000px}}@media (min-width: 1024px){.container{padding:var(--spacing-lg) var(--spacing-xl);max-width:1600px}}.header{background-color:var(--color-primary);color:#fff;padding:var(--spacing-lg) var(--spacing-md);box-shadow:0 2px 4px #0000001a;overflow-x:hidden}.header h1{margin-bottom:var(--spacing-sm);color:#fff;word-break:break-word}.header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-md)}.title-group{display:flex;align-items:center;gap:var(--spacing-sm)}.app-footer{text-align:center;padding:var(--spacing-md);font-size:.75rem;color:var(--color-text-muted);opacity:.6;-webkit-user-select:none;user-select:none}.tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);border-bottom:2px solid var(--color-border);overflow-x:auto;padding:0 var(--spacing-md)}.tab{padding:var(--spacing-md) var(--spacing-lg);background:none;border:none;cursor:pointer;font-size:var(--font-size-lg);color:var(--color-text-muted);transition:var(--transition);border-bottom:3px solid transparent;font-weight:500;min-height:44px;white-space:nowrap;flex-shrink:0}.tab:hover{color:var(--color-primary)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.form{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}label{font-weight:500;font-size:clamp(12px,2vw,14px);color:var(--color-text);margin-bottom:2px}input[type=text],input[type=number],input[type=date],input[type=time],textarea,select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:clamp(14px,2vw,16px);font-family:inherit;min-height:40px;transition:var(--transition);width:100%;max-width:100%}@media (min-width: 768px){input[type=text],input[type=number],input[type=date],input[type=time],textarea,select{padding:var(--spacing-md);font-size:var(--font-size-base);min-height:44px}}input[type=text]:focus,input[type=number]:focus,input[type=date]:focus,input[type=time]:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0066cc1a}textarea{min-height:100px;resize:vertical}button,.button{padding:var(--spacing-md) var(--spacing-lg);min-height:44px;border:none;border-radius:var(--border-radius);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:var(--transition);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);text-decoration:none;width:100%}button:hover,.button:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000026}button:active,.button:active{transform:translateY(0)}.button-primary{background-color:var(--color-primary);color:#fff}.button-primary:hover{background-color:var(--color-primary-dark)}.button-secondary{background-color:var(--color-light);color:var(--color-text);border:1px solid var(--color-border)}.button-secondary:hover{background-color:#e9ecef}.button-danger{background-color:var(--color-danger);color:#fff}.button-danger:hover{background-color:#c82333}.button-small{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);min-height:32px;flex:1}@media (min-width: 768px){.button-small{width:auto;flex:0 1 auto}}.button-group{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.button-group .button{flex:1;min-width:120px}@media (min-width: 768px){button,.button{width:auto}}.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:var(--spacing-sm);margin-bottom:var(--spacing-md);box-shadow:0 1px 3px #0000000d;overflow-x:hidden}@media (min-width: 768px){.card{padding:var(--spacing-lg)}}.card-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.card-title{font-size:var(--font-size-xl);font-weight:600;margin:0}.card-content{display:flex;flex-direction:column;gap:var(--spacing-md)}.table-container{display:none;overflow-x:auto}.entries-card{overflow-x:visible}.missing-days-panel{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);border:1px solid rgba(255,193,7,.45);border-radius:var(--border-radius);background:#fff8e1}.missing-days-note{margin-bottom:var(--spacing-sm);color:var(--color-text-muted);font-size:var(--font-size-sm)}.missing-days-header-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;justify-content:flex-end}.missing-days-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--spacing-sm)}.missing-days-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(222,226,230,.8)}.missing-days-item-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;justify-content:flex-end}.missing-days-item:last-child{border-bottom:none}.missing-days-meta{display:block;color:var(--color-text-muted);font-size:var(--font-size-sm)}.missing-days-restore{width:auto}.missing-days-empty{margin-bottom:0}.entries-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.entries-table-container table{min-width:980px}.entries-table-container th,.entries-table-container td{white-space:nowrap}.entries-action-group{display:flex;gap:var(--spacing-sm);justify-content:flex-end;flex-wrap:wrap}.entries-inline-times{display:grid;gap:var(--spacing-xs)}.entries-paid-toggle{display:inline-flex;align-items:center;gap:var(--spacing-sm);font-weight:500}.entries-paid-date-input{margin-top:var(--spacing-sm)}.entries-col-actions .button{width:100%}table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}thead{background-color:var(--color-light)}th{padding:var(--spacing-md);text-align:left;font-weight:600;color:var(--color-text);border-bottom:2px solid var(--color-border)}td{padding:var(--spacing-md);border-bottom:1px solid var(--color-border)}tbody tr:hover{background-color:#0066cc05}.entries-row-editing{background-color:#0066cc0f}.badge{display:inline-block;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500}.badge-paid{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.badge-unpaid{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.badge-overdue{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.entry-card{background:var(--color-bg);border:1px solid var(--color-border);border-left:4px solid var(--color-border);border-radius:var(--border-radius);padding:var(--spacing-md);margin-bottom:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.entry-card.paid{border-left-color:#51cf66;background-color:#f0fdf4}.entry-card.unpaid{border-left-color:#ff8787;background-color:#fffbfb}.entry-card.overdue{border-left-color:#ffd43b;background-color:#fffef0}.entry-card.editing{border-left-color:var(--color-primary);box-shadow:0 0 0 2px #0066cc1f}.entry-editing-banner{align-self:flex-start;background:#0066cc1f;color:var(--color-primary-dark);border:1px solid rgba(0,102,204,.24);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;letter-spacing:.02em}.entry-header{display:flex;justify-content:space-between;align-items:start;gap:var(--spacing-sm)}.entry-edit-stack{display:grid;gap:var(--spacing-xs)}.entry-inline-input{max-width:180px;margin-left:auto}.entry-edit-times{display:grid;gap:var(--spacing-xs);justify-items:end}.entry-edit-status{justify-items:end}.entry-date{font-weight:600;font-size:var(--font-size-lg)}.entry-sitter{color:var(--color-text-muted);font-size:var(--font-size-sm)}.entry-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(0,0,0,.05)}.entry-row-editing{align-items:flex-start}.entry-row:last-child{border-bottom:none}.entry-label{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:500}.entry-value{font-weight:600;text-align:right}.entry-cost{font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary)}.entry-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.entry-actions button{flex:1;padding:var(--spacing-md)}.card-view{display:block}.table-view{display:none}@media (min-width: 768px){.card-view{display:none}.table-view,.table-container{display:block}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}.form-group-full,.button-group{grid-column:1 / -1}button,.button{width:auto}}@media (min-width: 1024px){.container{max-width:1600px}.entries-table-container{overflow-x:visible}.entries-table-container table{min-width:0;table-layout:fixed}.entries-desktop-table th,.entries-desktop-table td{padding:8px 6px;font-size:13px}.entries-table-container th,.entries-table-container td{white-space:normal;vertical-align:top}.entries-col-select{width:36px}.entries-col-date{width:72px}.entries-col-sitter,.entries-col-location{width:96px}.entries-col-time{width:120px}.entries-col-hours{width:56px}.entries-col-rate,.entries-col-cost{width:72px}.entries-col-status{width:78px}.entries-col-actions{width:170px}.entries-action-group{flex-direction:column;align-items:stretch}.entries-action-group .button{min-width:0;white-space:normal}.entries-col-actions input,.entries-col-date input,.entries-col-sitter input,.entries-col-location input,.entries-col-time input,.entries-col-hours input,.entries-col-rate input{width:100%}.form{grid-template-columns:repeat(3,1fr)}.form-group-full{grid-column:1 / -1}.main-content{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--spacing-2xl)}.main-content>div{min-width:0}}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--color-text-muted)}.mb-small{margin-bottom:var(--spacing-sm)}.mb-medium{margin-bottom:var(--spacing-md)}.mb-large{margin-bottom:var(--spacing-lg)}.mt-medium{margin-top:var(--spacing-md)}.mt-large{margin-top:var(--spacing-lg)}.flex{display:flex;gap:var(--spacing-md)}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;justify-content:center;align-items:center}.flex-column{flex-direction:column}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:slideIn .2s ease-in-out}@media print{.no-print{display:none}body{background:#fff}.card,.entry-card,table{box-shadow:none;border:1px solid #000}}
