@import url(https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Syne:wght@600;700;800&family=Inter:wght@400;500&display=swap);.login-root{align-items:center;background:var(--bg);background-image:radial-gradient(ellipse at 20% 50%,#38bdf80f 0,#0000 60%),radial-gradient(ellipse at 80% 20%,#38bdf80a 0,#0000 50%);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{animation:card-in .3s ease;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 24px 64px #00000080;max-width:400px;padding:40px 36px;width:100%}@keyframes card-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.login-logo{margin-bottom:32px;text-align:center}.login-icon{display:block;filter:drop-shadow(0 0 20px rgba(56,189,248,.4));font-size:48px;margin-bottom:10px}.login-title{color:var(--text);font-family:Syne,sans-serif;font-size:28px;font-weight:800;letter-spacing:-.5px;margin:0 0 4px}.login-sub{color:var(--muted);font-size:13px;margin:0}.login-form{gap:16px}.login-form,.login-form label{display:flex;flex-direction:column}.login-form label{color:var(--muted);font-size:12px;gap:6px;letter-spacing:.5px;text-transform:uppercase}.login-form input{background:var(--surface2);border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:Inter,sans-serif;font-size:15px;padding:12px 14px;transition:border-color .2s,box-shadow .2s}.login-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #38bdf81f;outline:none}input[inputmode=numeric]{font-family:DM Mono,monospace!important;font-size:24px!important;letter-spacing:6px;text-align:center}.login-btn{align-items:center;background:var(--accent);border:none;border-radius:10px;color:#0f1117;cursor:pointer;display:flex;font-family:Syne,sans-serif;font-size:15px;font-weight:700;justify-content:center;margin-top:4px;min-height:48px;padding:13px;transition:all .15s}.login-btn:hover:not(:disabled){background:#7dd3fc;transform:translateY(-1px)}.login-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.login-back{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:4px;text-align:center;transition:color .15s}.login-back:hover{color:var(--text)}.login-error{align-items:center;animation:shake .3s ease;background:#ef44441f;border:1px solid #ef44444d;border-radius:10px;color:#fca5a5;display:flex;font-size:13px;gap:8px;margin-bottom:8px;padding:12px 14px}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}.login-notice{background:var(--surface2);border:1px solid var(--border);border-radius:10px;font-size:13px;padding:14px}.login-notice strong{color:var(--text);display:block;margin-bottom:4px}.login-notice p{color:var(--muted);line-height:1.5;margin:0}.mfa-notice{align-items:flex-start;display:flex;gap:12px}.mfa-icon{flex-shrink:0;font-size:22px;margin-top:1px}.qr-container{background:#fff;border-radius:12px;display:flex;justify-content:center;padding:16px}.secret-code{background:var(--surface2);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:6px;padding:12px 14px}.secret-label{color:var(--muted);font-size:11px;letter-spacing:.5px;text-transform:uppercase}.secret-value{color:var(--accent);font-family:DM Mono,monospace;font-size:13px;line-height:1.6;word-break:break-all}.spinner{animation:spin .7s linear infinite;border:2px solid #0f11174d;border-radius:50%;border-top-color:#0f1117;display:inline-block;height:18px;width:18px}@keyframes spin{to{transform:rotate(1turn)}}:root{--bg:#0f1117;--surface:#181c27;--surface2:#1f2535;--border:#2a3048;--text:#e2e8f0;--muted:#64748b;--accent:#38bdf8;--radius:10px;--shadow:0 4px 24px #0006}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{background:#0f1117;background:var(--bg);color:#e2e8f0;color:var(--text);font-family:Inter,sans-serif;font-size:14px;line-height:1.6;min-height:100vh}.app{margin:0 auto;max-width:1100px;padding:0 20px 60px}.app-header{border-bottom:1px solid #2a3048;border-bottom:1px solid var(--border);margin-bottom:24px;padding:32px 0 24px}.header-content{justify-content:space-between;margin-bottom:20px}.header-content,.header-title{align-items:center;display:flex}.header-title{gap:14px}.header-icon{filter:drop-shadow(0 0 12px rgba(56,189,248,.3));font-size:36px}.header-title h1{color:#e2e8f0;color:var(--text);font-family:Syne,sans-serif;font-size:26px;font-weight:800;letter-spacing:-.5px}.header-sub{color:#64748b;color:var(--muted);font-size:13px;margin-top:1px}.stats-row{display:flex;flex-wrap:wrap;gap:12px}.stat-chip{align-items:center;background:#181c27;background:var(--surface);border:1px solid #2a3048;border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;min-width:80px;padding:10px 20px}.stat-num{font-family:DM Mono,monospace;font-size:22px;font-weight:500;line-height:1}.stat-label{color:#64748b;color:var(--muted);font-size:11px;letter-spacing:.5px;margin-top:3px;text-transform:uppercase}.toolbar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.search-input{background:#181c27;background:var(--surface);border:1px solid #2a3048;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);color:#e2e8f0;color:var(--text);flex:1 1;font-family:Inter,sans-serif;font-size:14px;min-width:200px;padding:9px 14px;transition:border-color .2s}.search-input:focus{border-color:#38bdf8;border-color:var(--accent);outline:none}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{color:#64748b;color:var(--muted);font-size:11px;letter-spacing:.5px;text-transform:uppercase}select{background:#181c27;background:var(--surface);border:1px solid #2a3048;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);color:#e2e8f0;color:var(--text);cursor:pointer;font-family:Inter,sans-serif;font-size:13px;padding:9px 12px;transition:border-color .2s}select:focus{border-color:#38bdf8;border-color:var(--accent);outline:none}.task-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.task-card{background:#181c27;background:var(--surface);border:1px solid #2a3048;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);padding:18px;position:relative;transition:border-color .2s,transform .15s}.task-card:hover{border-color:#3a4560;transform:translateY(-1px)}.task-card.complete{opacity:.65}.task-card.canceled{opacity:.5}.task-card.overdue{border-color:#ef444444;box-shadow:0 0 0 1px #ef444422}.task-card-header{align-items:flex-start;display:flex;gap:8px;justify-content:space-between;margin-bottom:10px}.task-title-row{align-items:center;display:flex;flex:1 1;gap:8px}.priority-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.task-title{color:#e2e8f0;color:var(--text);font-family:Syne,sans-serif;font-size:15px;font-weight:600;line-height:1.3}.task-card-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.task-card:hover .task-card-actions{opacity:1}.task-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.category-tag{background:#1f2535;background:var(--surface2);border:1px solid #2a3048;border:1px solid var(--border);border-radius:4px;color:#64748b;color:var(--muted);font-family:DM Mono,monospace;font-size:11px;padding:2px 7px}.badge{border-radius:100px;font-size:11px;font-weight:500;letter-spacing:.3px;padding:2px 8px;text-transform:uppercase}.recurrence-tag{background:#38bdf814;border:1px solid #38bdf833;border-radius:4px;color:#38bdf8;color:var(--accent);font-size:11px;padding:2px 7px}.due-date,.recurrence-tag{font-family:DM Mono,monospace}.due-date{color:#64748b;color:var(--muted);font-size:12px}.overdue-text{color:#ef4444}.task-notes{color:#64748b;color:var(--muted);font-size:13px;margin-top:10px;white-space:pre-wrap;word-break:break-word}.quick-status,.task-notes{border-top:1px solid #2a3048;border-top:1px solid var(--border);padding-top:10px}.quick-status{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.btn-status{background:none;border:none;border-radius:4px;cursor:pointer;font-family:Inter,sans-serif;font-size:11px;padding:2px 6px;transition:background .15s}.btn-status:hover{background:#1f2535;background:var(--surface2)}.btn{align-items:center;border:none;border-radius:10px;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-family:Inter,sans-serif;font-size:13px;font-weight:500;gap:6px;padding:9px 18px;transition:all .15s}.btn-primary{background:#38bdf8;background:var(--accent);color:#0f1117}.btn-primary:hover{background:#7dd3fc}.btn-ghost{background:#0000;border:1px solid #2a3048;border:1px solid var(--border);color:#64748b;color:var(--muted)}.btn-ghost:hover{background:#1f2535;background:var(--surface2);color:#e2e8f0;color:var(--text)}.btn-icon{background:none;border:none;border-radius:6px;cursor:pointer;font-size:14px;opacity:.7;padding:4px 6px;transition:all .15s}.btn-icon:hover{background:#1f2535;background:var(--surface2);opacity:1}.btn-icon.danger:hover{background:#ef444422}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.modal{animation:modal-in .2s ease;background:#181c27;background:var(--surface);border:1px solid #2a3048;border:1px solid var(--border);border-radius:14px;box-shadow:0 4px 24px #0006;box-shadow:var(--shadow);max-width:520px;width:100%}@keyframes modal-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{align-items:center;border-bottom:1px solid #2a3048;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:20px 24px 16px}.modal-header h2{font-family:Syne,sans-serif;font-size:18px;font-weight:700}.modal-form{gap:16px;padding:20px 24px}.modal-form,.modal-form label{display:flex;flex-direction:column}.modal-form label{color:#64748b;color:var(--muted);font-size:12px;gap:6px;letter-spacing:.5px;text-transform:uppercase}.modal-form input,.modal-form select,.modal-form textarea{background:#1f2535;background:var(--surface2);border:1px solid #2a3048;border:1px solid var(--border);border-radius:8px;color:#e2e8f0;color:var(--text);font-family:Inter,sans-serif;font-size:14px;padding:10px 12px;transition:border-color .2s}.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus{border-color:#38bdf8;border-color:var(--accent);outline:none}.modal-form textarea{resize:vertical}.form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.modal-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:4px}.state-msg{color:#64748b;color:var(--muted);font-size:15px;grid-column:1/-1;padding:60px 20px;text-align:center}.state-msg.error{color:#ef4444}.state-msg.empty{align-items:center;display:flex;flex-direction:column;gap:14px}.state-msg.empty span{font-size:48px}.error-banner{background:#ef444420;border:1px solid #ef444440;border-radius:8px;color:#fca5a5;font-size:13px;padding:10px 14px}.header-actions{align-items:center;display:flex;gap:10px}.btn-logout{font-size:16px;padding:9px 12px}@media (max-width:600px){.header-content{align-items:flex-start;flex-direction:column;gap:16px}.form-row,.task-grid{grid-template-columns:1fr}.toolbar{flex-direction:column}.search-input{min-width:0;min-width:auto}}.property-dashboard{align-items:stretch;border-bottom:1px solid #2a3048;border-bottom:1px solid var(--border);display:flex;gap:20px;margin-bottom:24px;padding-bottom:24px}.house-photo{border:1px solid #2a3048;border:1px solid var(--border);border-radius:12px;flex-shrink:0;height:150px;object-fit:cover;width:200px}.property-info{display:flex;flex:1 1;flex-direction:column;gap:12px}.property-address{color:#64748b;color:var(--muted);font-size:13px;margin-top:2px}.weather-widget{background:#1f2535;background:var(--surface2);border:1px solid #2a3048;border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:10px;padding:12px 16px}.weather-error,.weather-loading{align-items:center;color:#64748b;color:var(--muted);display:flex;font-size:13px;gap:8px}.weather-spinner{animation:spin .7s linear infinite;border:2px solid #2a3048;border-top-color:#38bdf8;border:2px solid var(--border);border-radius:50%;border-top-color:var(--accent);display:inline-block;height:14px;width:14px}.weather-current{align-items:center;display:flex;gap:14px}.weather-emoji{flex-shrink:0;font-size:36px;line-height:1}.weather-temps{display:flex;flex-direction:column;gap:2px}.weather-temp{font-family:Syne,sans-serif;font-size:26px;font-weight:700;line-height:1}.weather-desc,.weather-temp{color:#e2e8f0;color:var(--text)}.weather-desc{font-size:13px}.weather-feels{color:#64748b;color:var(--muted);font-family:DM Mono,monospace;font-size:11px}.weather-forecast{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.weather-day{align-items:center;background:#181c27;background:var(--surface);border:1px solid #2a3048;border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;flex-shrink:0;gap:3px;min-width:52px;padding:8px 6px}.weather-day-name{color:#64748b;color:var(--muted);font-family:DM Mono,monospace;font-size:10px;letter-spacing:.5px}.weather-day-emoji{font-size:18px}.weather-rain{color:#60a5fa;font-family:DM Mono,monospace;font-size:10px}.weather-day-hi{color:#e2e8f0;color:var(--text);font-size:13px;font-weight:600}.weather-day-lo{color:#64748b;color:var(--muted);font-size:11px}.btn-settings{font-size:16px;padding:9px 12px}.photo-upload-section{display:flex;flex-direction:column;gap:8px}.photo-upload-label{color:#64748b;color:var(--muted);font-size:12px;letter-spacing:.5px;text-transform:uppercase}.photo-upload-area{align-items:flex-start;display:flex;gap:16px}.photo-preview{border:1px solid #2a3048;border:1px solid var(--border);border-radius:8px;object-fit:cover}.photo-placeholder,.photo-preview{flex-shrink:0;height:90px;width:120px}.photo-placeholder{align-items:center;border:1px dashed #2a3048;border:1px dashed var(--border);border-radius:8px;color:#64748b;color:var(--muted);display:flex;flex-direction:column;font-size:22px;gap:4px;justify-content:center}.photo-upload-controls{display:flex;flex-direction:column;gap:8px}.photo-file-btn{cursor:pointer}.upload-status{color:#38bdf8;color:var(--accent);font-size:12px}.photo-hint{margin:0}.field-hint,.photo-hint{color:#64748b;color:var(--muted);font-size:11px}.field-hint{font-style:italic;letter-spacing:0;margin-top:2px;text-transform:none}@media (max-width:768px){.property-dashboard{flex-direction:column}.house-photo{height:180px;width:100%}}
/*# sourceMappingURL=main.0f2a5001.css.map*/