.login-container{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;background:linear-gradient(135deg,#1e3a5f,#2c5282);overflow-x:hidden;overflow-y:auto}.login-container h2{font-size:2rem;font-weight:700;color:#fff;margin-bottom:2rem;text-align:center}.login-form{display:flex;flex-direction:column;width:100%;max-width:400px;background:#fff;padding:2rem;border-radius:12px;box-shadow:0 10px 25px #0003}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;font-size:.9375rem;color:#374151}.form-group input{width:100%;padding:.875rem 1rem;border:2px solid #d1d5db;border-radius:8px;box-sizing:border-box;font-size:1rem;transition:border-color .15s}.login-btn{background-color:#2563eb;color:#fff;border:none;padding:1rem;border-radius:8px;cursor:pointer;font-size:1.0625rem;font-weight:600;margin-top:.5rem;transition:background-color .15s,transform .1s}.login-btn:hover{background-color:#1d4ed8}.login-btn:active{transform:scale(.98)}.error-message{color:#dc2626;margin-bottom:1rem;padding:.875rem 1rem;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;font-size:.9375rem}@media (max-width: 480px){.login-container{padding:1rem}.login-container h2{font-size:1.75rem;margin-bottom:1.5rem}.login-form{padding:1.5rem}.form-group input{padding:.75rem .875rem;font-size:1rem}.login-btn{padding:.875rem;font-size:1rem}}.tenant-form{margin-bottom:1.5rem}.tenant-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1rem;margin-bottom:1rem}.tenant-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.tenant-label{font-weight:500;color:#374151}.form-group{margin-bottom:.75rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:.875rem;font-weight:500;color:#4b5563;margin-bottom:.25rem}.form-group input{width:100%;padding:.625rem .75rem;font-size:1rem;border:1px solid #d1d5db;border-radius:6px;background:#fff;transition:border-color .15s,box-shadow .15s}.form-group input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group input::placeholder{color:#9ca3af}.btn-secondary{width:100%;padding:.75rem 1rem;font-size:.9375rem;font-weight:500;color:#374151;background:#fff;border:1px dashed #d1d5db;border-radius:8px;cursor:pointer;transition:background-color .15s,border-color .15s}.btn-secondary:hover{background:#f3f4f6;border-color:#9ca3af}.btn-add-tenant{margin-top:.5rem}.wear-level-picker{margin-bottom:1rem}.wear-label{display:block;font-size:.875rem;font-weight:500;color:#4b5563;margin-bottom:.5rem}.wear-options{display:flex;gap:.5rem}.wear-option{flex:1;display:flex;flex-direction:column;align-items:center;padding:.5rem .25rem;border:2px solid var(--wear-color);border-radius:8px;background:var(--wear-bg);cursor:pointer;transition:all .15s ease}.wear-option:hover{transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}.wear-option.selected,.wear-option.selected .wear-number,.wear-option.selected .wear-text{color:#fff}.wear-number{font-size:1.25rem;font-weight:700;color:var(--wear-color);line-height:1}.wear-text{font-size:.625rem;font-weight:500;color:var(--wear-color);text-align:center;margin-top:.25rem;line-height:1.2}@media (max-width: 360px){.wear-options{flex-wrap:wrap}.wear-option{flex:0 0 calc(50% - .25rem)}}.defect-chips{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.defect-title{font-size:.9375rem;font-weight:600;color:#374151;margin-bottom:.75rem}.defect-list{margin-bottom:1rem}.defect-item{background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;padding:.75rem;margin-bottom:.5rem}.defect-item-header{display:flex;justify-content:space-between;align-items:center}.defect-type-badge{font-size:.875rem;font-weight:600;color:#92400e}.btn-remove-small{width:24px;height:24px;background:#fecaca;color:#dc2626;border:none;border-radius:50%;font-size:.75rem;cursor:pointer}.defect-details{margin-top:.75rem}.defect-input{width:100%;padding:.5rem .625rem;font-size:.875rem;border:1px solid #d1d5db;border-radius:6px;margin-bottom:.5rem}.defect-input:focus{outline:none;border-color:#2563eb}.defect-actions{display:flex;gap:.5rem}.btn-photo,.btn-done{flex:1;padding:.5rem;font-size:.875rem;font-weight:500;border:none;border-radius:6px;cursor:pointer}.btn-photo{background:#e0e7ff;color:#3730a3}.btn-done{background:#d1fae5;color:#065f46}.defect-summary{margin-top:.5rem;font-size:.8125rem;color:#78350f;cursor:pointer}.defect-location{font-weight:500}.defect-location:after{content:" • "}.defect-notes{font-style:italic}.btn-add-details{margin-top:.5rem;padding:.25rem .5rem;font-size:.75rem;color:#92400e;background:none;border:1px dashed #fcd34d;border-radius:4px;cursor:pointer}.defect-photo-preview{margin-top:.5rem}.defect-photo-preview img{width:80px;height:60px;object-fit:cover;border-radius:4px}.defect-categories{display:flex;flex-direction:column;gap:.5rem}.defect-category{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.category-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.875rem;font-weight:500;color:#374151;background:#f9fafb;border:none;cursor:pointer;transition:background-color .15s}.category-toggle:hover{background:#f3f4f6}.category-toggle.expanded{background:#e5e7eb}.toggle-icon{font-size:1rem;font-weight:600;color:#6b7280}.category-defects{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem;background:#fff}.defect-chip{padding:.375rem .75rem;font-size:.8125rem;font-weight:500;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:9999px;cursor:pointer;transition:all .15s}.defect-chip:hover{background:#fef3c7;border-color:#fcd34d;color:#92400e}.defect-chip:active{transform:scale(.95)}.room-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:1rem;overflow:hidden;box-shadow:0 1px 3px #0000000d}.room-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#f9fafb;cursor:pointer;-webkit-user-select:none;user-select:none}.room-header:hover{background:#f3f4f6}.room-title-area{display:flex;align-items:center;gap:.75rem}.room-name{font-size:1rem;font-weight:600;color:#1f2937;margin:0;display:flex;align-items:center;gap:.5rem}.edit-icon{font-size:.75rem;opacity:0;transition:opacity .15s}.room-name:hover .edit-icon{opacity:.6}.room-name-input{font-size:1rem;font-weight:600;color:#1f2937;padding:.25rem .5rem;border:1px solid #2563eb;border-radius:4px;background:#fff;width:150px}.photo-count{font-size:.75rem;color:#6b7280;background:#e5e7eb;padding:.125rem .5rem;border-radius:9999px}.room-actions{display:flex;align-items:center;gap:.5rem}.btn-remove-room{width:32px;height:32px;background:transparent;border:none;border-radius:6px;cursor:pointer;opacity:.5;transition:opacity .15s,background-color .15s}.btn-remove-room:hover{opacity:1;background:#fee2e2}.expand-icon{font-size:.75rem;color:#6b7280}.room-content{padding:1rem;border-top:1px solid #e5e7eb}.room-photos{margin-bottom:1rem}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.5rem}.photo-item{position:relative;aspect-ratio:4/3;border-radius:8px;overflow:hidden}.photo-item img{width:100%;height:100%;object-fit:cover}.btn-remove-photo{position:absolute;top:4px;right:4px;width:20px;height:20px;background:#0009;color:#fff;border:none;border-radius:50%;font-size:.625rem;cursor:pointer;opacity:0;transition:opacity .15s}.photo-item:hover .btn-remove-photo{opacity:1}.btn-add-photo{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:4/3;background:#f3f4f6;border:2px dashed #d1d5db;border-radius:8px;cursor:pointer;transition:all .15s}.btn-add-photo:hover{background:#e5e7eb;border-color:#9ca3af}.btn-add-photo .camera-icon{font-size:1.5rem;margin-bottom:.25rem}.btn-add-photo span:last-child{font-size:.75rem;font-weight:500;color:#6b7280}.room-notes{margin-bottom:1rem}.room-notes label{display:block;font-size:.875rem;font-weight:500;color:#4b5563;margin-bottom:.375rem}.room-notes textarea{width:100%;padding:.625rem .75rem;font-size:.9375rem;font-family:inherit;border:1px solid #d1d5db;border-radius:8px;resize:vertical;min-height:60px}.room-notes textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.room-wear-levels{margin-bottom:.5rem}.room-list{margin-bottom:1.5rem}.room-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-title{font-size:1.125rem;font-weight:600;color:#1e3a5f;margin:0}.room-count{font-size:.875rem;color:#6b7280;background:#f3f4f6;padding:.25rem .625rem;border-radius:9999px}.room-wrapper{display:flex;gap:.5rem;margin-bottom:0}.room-reorder{display:flex;flex-direction:column;gap:.25rem;padding-top:1rem}.btn-reorder{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:.625rem;color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;cursor:pointer;transition:all .15s}.btn-reorder:hover:not(:disabled){background:#e5e7eb;color:#374151}.btn-reorder:disabled{opacity:.3;cursor:not-allowed}.room-wrapper>.room-card{flex:1}.add-room-section{margin-top:1rem;padding-top:1rem;border-top:1px dashed #e5e7eb}.default-rooms{margin-bottom:.75rem}.quick-add-label{display:block;font-size:.8125rem;color:#6b7280;margin-bottom:.5rem}.default-room-chips{display:flex;flex-wrap:wrap;gap:.5rem}.default-room-chip{padding:.375rem .75rem;font-size:.8125rem;font-weight:500;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:9999px;cursor:pointer;transition:all .15s}.default-room-chip:hover{background:#f0fdf4;border-color:#86efac;color:#166534}.btn-add-custom-room{width:100%;padding:.75rem 1rem;font-size:.9375rem;font-weight:500;color:#374151;background:#fff;border:1px dashed #d1d5db;border-radius:8px;cursor:pointer;transition:all .15s}.btn-add-custom-room:hover{background:#f9fafb;border-color:#9ca3af}.add-room-form{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1rem}.add-room-form .room-name-input{width:100%;padding:.625rem .75rem;font-size:1rem;border:1px solid #d1d5db;border-radius:6px;margin-bottom:.75rem}.add-room-form .room-name-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.add-room-buttons{display:flex;gap:.5rem}.btn-cancel,.btn-add{flex:1;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .15s}.btn-cancel{background:#e5e7eb;color:#374151}.btn-cancel:hover{background:#d1d5db}.btn-add{background:#2563eb;color:#fff}.btn-add:hover:not(:disabled){background:#1d4ed8}.btn-add:disabled{opacity:.5;cursor:not-allowed}.meter-form{margin-bottom:1.5rem}.meter-card{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:1rem;margin-bottom:1rem}.meter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.meter-type{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#0369a1}.meter-icon{font-size:1.25rem}.meter-fields{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@media (max-width: 480px){.meter-fields{grid-template-columns:1fr}}.form-group{margin-bottom:0}.form-group label{display:block;font-size:.8125rem;font-weight:500;color:#4b5563;margin-bottom:.25rem}.form-group input{width:100%;padding:.5rem .625rem;font-size:.9375rem;border:1px solid #d1d5db;border-radius:6px;background:#fff}.form-group input:focus{outline:none;border-color:#0369a1;box-shadow:0 0 0 3px #0369a11a}.meter-photo{margin-top:.75rem}.photo-preview{position:relative;display:inline-block}.photo-preview img{width:100px;height:75px;object-fit:cover;border-radius:6px;border:1px solid #bae6fd}.btn-remove-photo{position:absolute;top:-8px;right:-8px;width:22px;height:22px;background:#dc2626;color:#fff;border:2px solid #fff;border-radius:50%;font-size:.625rem;cursor:pointer}.btn-add-photo{padding:.5rem .75rem;font-size:.8125rem;color:#0369a1;background:#fff;border:1px dashed #7dd3fc;border-radius:6px;cursor:pointer;transition:all .15s}.btn-add-photo:hover{background:#e0f2fe;border-color:#38bdf8}.btn-icon{width:28px;height:28px;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.875rem;transition:background-color .15s}.btn-remove{background:#fee2e2;color:#dc2626}.btn-remove:hover{background:#fecaca}.add-meter-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.btn-add-meter{display:flex;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:#374151;background:#fff;border:1px dashed #d1d5db;border-radius:8px;cursor:pointer;transition:all .15s}.btn-add-meter:hover{background:#f0f9ff;border-color:#7dd3fc;color:#0369a1}.no-meters-hint{font-size:.875rem;color:#6b7280;font-style:italic;margin-top:.5rem}.key-form{margin-bottom:1.5rem}.section-title{font-size:1.125rem;font-weight:600;color:#1e3a5f;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #e5e7eb}.key-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1rem}@media (max-width: 400px){.key-grid{grid-template-columns:1fr}}.key-item{display:flex;flex-direction:column;align-items:center;padding:.75rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;transition:all .15s}.key-item.has-keys{background:#ecfdf5;border-color:#6ee7b7}.key-label{font-size:.8125rem;font-weight:500;color:#374151;margin-bottom:.5rem;text-align:center}.key-counter{display:flex;align-items:center;gap:.25rem}.btn-counter{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:600;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;transition:all .15s}.btn-counter:hover:not(:disabled){background:#e5e7eb;border-color:#9ca3af}.btn-counter:disabled{opacity:.4;cursor:not-allowed}.key-count-input{width:44px;height:32px;text-align:center;font-size:1rem;font-weight:600;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:6px;-moz-appearance:textfield}.key-count-input::-webkit-outer-spin-button,.key-count-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.key-count-input:focus{outline:none;border-color:#2563eb}.custom-keys{margin-bottom:1rem}.custom-keys-title{font-size:.875rem;font-weight:500;color:#6b7280;margin-bottom:.5rem}.custom-key-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:.5rem}.custom-key-label{flex:1;padding:.375rem .5rem;font-size:.875rem;border:1px solid #d1d5db;border-radius:4px;background:#fff}.custom-key-label:focus{outline:none;border-color:#2563eb}.btn-remove-custom{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#fee2e2;color:#dc2626;border:none;border-radius:50%;font-size:.75rem;cursor:pointer}.btn-remove-custom:hover{background:#fecaca}.btn-add-custom{width:100%;padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:#374151;background:#fff;border:1px dashed #d1d5db;border-radius:8px;cursor:pointer;transition:all .15s}.btn-add-custom:hover{background:#f3f4f6;border-color:#9ca3af}.signature-pad{margin-bottom:1rem}.signature-pad.disabled{opacity:.6;pointer-events:none}.signature-label{display:block;font-size:.9375rem;font-weight:600;color:#374151;margin-bottom:.5rem}.canvas-container{position:relative;background:#fff;border:2px solid #d1d5db;border-radius:8px;overflow:hidden}.signature-canvas{display:block;width:100%;height:120px;touch-action:none;cursor:crosshair}.canvas-placeholder{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.9375rem;color:#9ca3af;pointer-events:none;-webkit-user-select:none;user-select:none}.signature-controls{display:flex;gap:.5rem;margin-top:.5rem}.btn-clear,.btn-confirm{flex:1;padding:.625rem 1rem;font-size:.875rem;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .15s}.btn-clear{background:#f3f4f6;color:#374151}.btn-clear:hover:not(:disabled){background:#e5e7eb}.btn-clear:disabled{opacity:.5;cursor:not-allowed}.btn-confirm{background:#2563eb;color:#fff}.btn-confirm:hover:not(:disabled){background:#1d4ed8}.btn-confirm:disabled{opacity:.5;cursor:not-allowed}.signature-pad.signed .canvas-container{border-color:#22c55e;background:#f0fdf4}.signature-preview{padding:.5rem}.signature-preview img{width:100%;height:100px;object-fit:contain;background:#fff;border-radius:4px}.signature-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem;font-size:.75rem;color:#6b7280}.signer-name{font-weight:500;color:#374151}.signature-gps{color:#22c55e}.protocol-form{display:flex;flex-direction:column;min-height:100vh;background:#f9fafb}.protocol-header{display:flex;align-items:center;gap:1rem;padding:1rem;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:100}.protocol-type-badge{padding:.375rem .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:4px}.protocol-type-badge[data-type=einzug]{background:#d1fae5;color:#065f46}.protocol-type-badge[data-type=auszug]{background:#fee2e2;color:#991b1b}.protocol-info{flex:1}.protocol-info h2{font-size:1rem;font-weight:600;color:#1f2937;margin:0;line-height:1.3}.protocol-info p{font-size:.875rem;color:#6b7280;margin:0}.btn-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:#6b7280;background:#f3f4f6;border:none;border-radius:50%;cursor:pointer}.btn-close:hover{background:#e5e7eb;color:#374151}.step-indicator{display:flex;overflow-x:auto;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #e5e7eb;gap:.25rem;-webkit-overflow-scrolling:touch}.step-indicator::-webkit-scrollbar{display:none}.step{display:flex;flex-direction:column;align-items:center;padding:.5rem .75rem;background:none;border:none;cursor:pointer;flex-shrink:0;min-width:60px;opacity:.5;transition:opacity .15s}.step:hover{opacity:.8}.step.active{opacity:1}.step.completed{opacity:.8}.step-number{width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:#6b7280;background:#e5e7eb;border-radius:50%;margin-bottom:.25rem}.step.active .step-number{background:#2563eb;color:#fff}.step.completed .step-number{background:#22c55e;color:#fff}.step.completed .step-number:after{content:"✓"}.step-label{font-size:.625rem;font-weight:500;color:#6b7280;white-space:nowrap}.step.active .step-label{color:#2563eb}.error-list{margin:1rem;padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b}.error-list strong{display:block;margin-bottom:.5rem}.error-list ul{margin:0;padding-left:1.25rem}.error-list li{font-size:.875rem;margin-bottom:.25rem}.form-content{flex:1;padding:1rem;overflow-y:auto;width:100%}@media (min-width: 768px){.form-content{padding:1.5rem}}@media (min-width: 1200px){.form-content{padding:2rem}}.form-section{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 1px 3px #0000000d}@media (min-width: 768px){.form-section{padding:1.5rem 2rem}}.section-title{font-size:1.125rem;font-weight:600;color:#1e3a5f;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #e5e7eb}.form-group label{display:block;font-size:.9375rem;font-weight:500;color:#374151;margin-bottom:.5rem}.radio-group{display:flex;flex-direction:column;gap:.5rem}.radio-option{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .15s}.radio-option:hover{background:#f3f4f6}.radio-option:has(input:checked){background:#eff6ff;border-color:#3b82f6}.radio-option input{width:18px;height:18px;accent-color:#2563eb}.radio-option span{font-size:.9375rem;color:#374151}.notes-textarea{width:100%;padding:.75rem;font-size:1rem;font-family:inherit;border:1px solid #d1d5db;border-radius:8px;resize:vertical;min-height:150px}.notes-textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-footer{padding:1rem;background:#fff;border-top:1px solid #e5e7eb;position:sticky;bottom:0}.nav-buttons{display:flex;gap:.5rem;margin-bottom:.75rem}.btn-prev,.btn-next,.btn-submit{flex:1;padding:.875rem 1rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .15s}.btn-prev{background:#f3f4f6;color:#374151}.btn-prev:hover{background:#e5e7eb}.btn-next{background:#2563eb;color:#fff}.btn-next:hover{background:#1d4ed8}.btn-submit{background:#22c55e;color:#fff}.btn-submit:hover:not(:disabled){background:#16a34a}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.btn-save-draft{width:100%;padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:#6b7280;background:none;border:1px dashed #d1d5db;border-radius:6px;cursor:pointer;transition:all .15s}.btn-save-draft:hover{background:#f9fafb;border-color:#9ca3af;color:#374151}@media (max-width: 480px){.protocol-header{padding:.75rem}.protocol-info h2{font-size:.9375rem}.form-content,.form-section{padding:.75rem}}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;width:100%;height:100%;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#f8fafc;color:#1f2937;line-height:1.5;min-height:100vh;width:100%;overflow-x:hidden;position:relative}.app-fullscreen{min-height:100vh;display:flex;flex-direction:column;width:100%;overflow-x:hidden}.app-container{display:flex;min-height:100vh;background:#f8fafc}.app-sidebar{width:280px;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;z-index:100;box-shadow:2px 0 8px #00000005}.sidebar-header{padding:2rem 1.5rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.sidebar-logo{font-size:1.5rem;font-weight:700;color:#1e3a5f;background:linear-gradient(135deg,#1e3a5f,#2563eb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-mobile-close{display:none;background:none;border:none;color:#64748b;cursor:pointer;padding:.5rem;border-radius:6px;transition:background .2s}.btn-mobile-close:hover{background:#f1f5f9}.sidebar-nav{flex:1;padding:1.5rem 1rem;display:flex;flex-direction:column;gap:.5rem}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;font-size:.9375rem;font-weight:500;color:#64748b;background:transparent;border:none;border-radius:10px;cursor:pointer;transition:all .2s;text-align:left}.nav-item:hover{background:#f1f5f9;color:#334155}.nav-item.active{background:linear-gradient(135deg,#1e3a5f,#2563eb);color:#fff;box-shadow:0 4px 12px #2563eb40}.sidebar-footer{padding:1rem;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:1rem}.sidebar-status{display:flex;flex-direction:column;gap:.5rem}.status-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8125rem;border-radius:6px}.status-item.offline{background:#fef3c7;color:#92400e}.status-item.syncing{background:#dbeafe;color:#1e40af}.spinning{animation:spin 1s linear infinite}.sidebar-user{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#f8fafc;border-radius:10px}.user-info{display:flex;align-items:center;gap:.75rem;flex:1}.user-avatar{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#1e3a5f,#2563eb);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem}.user-details{flex:1;min-width:0}.user-name{font-size:.875rem;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.75rem;color:#64748b}.btn-logout-icon{background:none;border:none;color:#64748b;cursor:pointer;padding:.5rem;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-logout-icon:hover{background:#fff;color:#dc2626}.btn-mobile-menu{display:none;position:fixed;top:1rem;left:1rem;z-index:90;background:#fff;border:1px solid #e2e8f0;padding:.75rem;border-radius:10px;color:#1e3a5f;cursor:pointer;box-shadow:0 4px 12px #0000001a}.mobile-menu-overlay{display:none}.app-content{flex:1;margin-left:280px;display:flex;flex-direction:column;min-height:100vh}.content-header{background:#fff;border-bottom:1px solid #e2e8f0;padding:2rem 2.5rem;position:sticky;top:0;z-index:50;box-shadow:0 1px 3px #00000005}.header-title h2{font-size:1.875rem;font-weight:700;color:#1e293b;margin:0}.app-main{flex:1;padding:1.5rem;width:100%}@media (min-width: 768px){.app-main{padding:2rem}}.drafts-section{margin-bottom:2rem}.drafts-section h2{font-size:1rem;font-weight:600;color:#6b7280;margin-bottom:.75rem}.draft-list{display:grid;grid-template-columns:1fr;gap:.5rem}@media (min-width: 768px){.draft-list{grid-template-columns:repeat(2,1fr);gap:.75rem}}@media (min-width: 1200px){.draft-list{grid-template-columns:repeat(3,1fr);gap:1rem}}.draft-card{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:.25rem .75rem;padding:.75rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;text-align:left;transition:all .15s}.draft-card:hover{border-color:#2563eb;box-shadow:0 2px 8px #2563eb1a}.draft-type{grid-row:1 / 3;align-self:center;padding:.25rem .5rem;font-size:.625rem;font-weight:600;text-transform:uppercase;border-radius:4px}.draft-type.einzug{background:#d1fae5;color:#065f46}.draft-type.auszug{background:#fee2e2;color:#991b1b}.draft-address{font-size:.9375rem;font-weight:500;color:#1f2937}.draft-unit{font-size:.8125rem;color:#6b7280}.draft-date{grid-row:1 / 3;align-self:center;font-size:.75rem;color:#9ca3af}.new-protocol-section h2{font-size:1.125rem;font-weight:600;color:#1e3a5f;margin-bottom:1rem}.selection-step{margin-bottom:1.5rem}.selection-step h3{font-size:.875rem;font-weight:500;color:#6b7280;margin-bottom:.5rem}.property-list{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width: 768px){.property-list{grid-template-columns:repeat(2,1fr);gap:1.25rem}}@media (min-width: 1200px){.property-list{grid-template-columns:repeat(3,1fr)}}.property-card{display:flex;flex-direction:column;padding:1.25rem 1.5rem;background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;text-align:left;transition:all .3s cubic-bezier(.4,0,.2,1)}.property-card:hover{border-color:#2563eb;box-shadow:0 8px 16px #2563eb1a;transform:translateY(-2px)}.property-card.selected{border-color:#2563eb;background:linear-gradient(135deg,#eff6ff,#dbeafe);box-shadow:0 8px 16px #2563eb26}.property-address{font-size:1rem;font-weight:500;color:#1f2937}.property-city{font-size:.875rem;color:#6b7280}.unit-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}@media (min-width: 640px){.unit-list{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1024px){.unit-list{grid-template-columns:repeat(4,1fr);gap:.75rem}}.unit-card{padding:.75rem 1rem;font-size:.9375rem;font-weight:500;color:#374151;background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;text-align:center;transition:all .15s}.unit-card:hover{border-color:#93c5fd}.unit-card.selected{border-color:#2563eb;background:#eff6ff;color:#1e40af}.type-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}@media (min-width: 768px){.type-buttons{gap:1rem}}.type-btn{display:flex;flex-direction:column;align-items:center;padding:1.25rem 1rem;background:#fff;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;transition:all .15s}.type-btn:hover{border-color:#93c5fd}.type-btn.selected{border-width:3px}.type-btn.einzug.selected{border-color:#22c55e;background:#f0fdf4}.type-btn.auszug.selected{border-color:#ef4444;background:#fef2f2}.type-icon{display:flex;align-items:center;justify-content:center;margin-bottom:.5rem;color:#64748b}.type-btn.selected .type-icon{color:inherit}.type-btn.einzug.selected .type-icon{color:#16a34a}.type-btn.auszug.selected .type-icon{color:#dc2626}.type-label{font-size:1rem;font-weight:600;color:#1f2937}.type-desc{font-size:.75rem;color:#6b7280;margin-top:.25rem}.btn-start{width:100%;padding:1rem;font-size:1.125rem;font-weight:600;color:#fff;background:#2563eb;border:none;border-radius:12px;cursor:pointer;transition:background-color .15s;margin-top:1rem}.btn-start:hover{background:#1d4ed8}.btn-start:active{transform:scale(.98)}.offline-badge{padding:.25rem .5rem;font-size:.75rem;font-weight:500;background:#fef3c7;color:#92400e;border-radius:4px}.sync-badge{padding:.25rem .5rem;font-size:.75rem;font-weight:500;background:#dbeafe;color:#1e40af;border-radius:4px}.loading-indicator{padding:1rem;text-align:center;color:#6b7280}.error-message{padding:1rem;text-align:center;color:#dc2626;background:#fef2f2;border-radius:8px}.btn-retry{margin-top:.5rem;padding:.5rem 1rem;font-size:.875rem;color:#fff;background:#2563eb;border:none;border-radius:6px;cursor:pointer}.empty-state{padding:2rem 1rem;text-align:center;color:#6b7280}.new-protocol-section,.drafts-section{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 1px 3px #0000000d;border:1px solid #e2e8f0}.new-protocol-section h2,.drafts-section h2{font-size:1.25rem;font-weight:700;color:#1e293b;margin-bottom:1.5rem}.protocol-list-container{min-height:100vh;display:flex;flex-direction:column;background:#f3f4f6}.list-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#1e3a5f;color:#fff}.list-header h1{font-size:1.25rem;font-weight:600}.btn-back{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:#1e3a5f;background:#fff;border:none;border-radius:6px;cursor:pointer}.btn-refresh{width:2.5rem;height:2.5rem;font-size:1.25rem;color:#fff;background:transparent;border:2px solid rgba(255,255,255,.3);border-radius:8px;cursor:pointer;transition:background .15s}.btn-refresh:hover:not(:disabled){background:#ffffff1a}.btn-refresh:disabled{opacity:.5}.list-filters{padding:1rem;background:#fff;border-bottom:1px solid #e5e7eb}.filter-tabs{display:flex;gap:.25rem;margin-bottom:.75rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.filter-tabs::-webkit-scrollbar{display:none}.filter-tab{flex-shrink:0;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;color:#6b7280;background:#f3f4f6;border:none;border-radius:20px;cursor:pointer;white-space:nowrap;transition:all .15s}.filter-tab.active{color:#fff;background:#1e3a5f}.sort-control{display:flex;align-items:center;gap:.5rem}.sort-control label{font-size:.8125rem;color:#6b7280}.sort-control select{padding:.375rem .75rem;font-size:.8125rem;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer}.list-content{flex:1;padding:1rem;max-width:600px;margin:0 auto;width:100%}@media (min-width: 768px){.list-content{max-width:1400px;padding:2rem}}@media (min-width: 1200px){.list-content{max-width:1800px}}.loading-state,.error-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}.spinner{width:2rem;height:2rem;border:3px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.protocol-cards{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width: 768px){.protocol-cards{grid-template-columns:repeat(2,1fr);gap:1.25rem}}@media (min-width: 1200px){.protocol-cards{grid-template-columns:repeat(3,1fr);gap:1.5rem}}@media (min-width: 1600px){.protocol-cards{grid-template-columns:repeat(4,1fr)}}.protocol-card{position:relative;background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.protocol-card:hover{border-color:#2563eb;box-shadow:0 12px 24px #2563eb26;transform:translateY(-4px)}.card-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#f9fafb;border-bottom:1px solid #e5e7eb}.protocol-type{padding:.25rem .5rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;border-radius:4px}.protocol-type.einzug{background:#d1fae5;color:#065f46}.protocol-type.auszug{background:#fee2e2;color:#991b1b}.protocol-status{padding:.25rem .5rem;font-size:.6875rem;font-weight:500;border-radius:4px}.status-draft{background:#fef3c7;color:#92400e}.status-signed{background:#dbeafe;color:#1e40af}.status-finalized{background:#d1fae5;color:#065f46}.card-body{padding:.875rem 1rem}.card-address{font-size:1rem;font-weight:500;color:#1f2937;margin-bottom:.25rem}.card-unit{font-size:.875rem;color:#6b7280}.card-tenant{font-size:.8125rem;color:#9ca3af;margin-top:.375rem}.card-footer{display:flex;justify-content:space-between;align-items:center;padding:.625rem 1rem;background:#f9fafb;border-top:1px solid #e5e7eb}.card-date{display:flex;gap:.5rem;font-size:.75rem;color:#9ca3af}.card-actions{display:flex;gap:.5rem}.btn-pdf{padding:.375rem .625rem;font-size:.75rem;font-weight:600;color:#1e40af;background:#dbeafe;border:none;border-radius:4px;cursor:pointer;transition:background .15s}.btn-pdf:hover{background:#bfdbfe}.btn-delete{padding:.375rem .5rem;font-size:1rem;color:#dc2626;background:transparent;border:none;cursor:pointer;opacity:.6;transition:opacity .15s}.btn-delete:hover{opacity:1}.card-sync-badge{position:absolute;top:.75rem;right:4.5rem;padding:.125rem .375rem;font-size:.625rem;font-weight:500;color:#92400e;background:#fef3c7;border-radius:4px}.admin-panel{min-height:100vh;display:flex;flex-direction:column;background:#f3f4f6}.admin-header{display:flex;align-items:center;gap:1rem;padding:1rem;background:#1e3a5f;color:#fff}.admin-header h1{font-size:1.25rem;font-weight:600}.admin-tabs{display:flex;background:#fff;border-bottom:1px solid #e5e7eb}.admin-tab{flex:1;padding:1rem;font-size:.9375rem;font-weight:500;color:#6b7280;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:all .15s}.admin-tab.active{color:#1e3a5f;border-bottom-color:#1e3a5f}.admin-content{flex:1;padding:1rem;max-width:1000px;margin:0 auto;width:100%}@media (min-width: 1024px){.admin-content{max-width:1400px;padding:2rem}}@media (min-width: 1440px){.admin-content{max-width:1800px}}.tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.tab-header h2{font-size:1.125rem;font-weight:600;color:#1f2937}.btn-add{padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:#fff;background:#2563eb;border:none;border-radius:6px;cursor:pointer}.properties-list{display:grid;grid-template-columns:1fr;gap:.75rem}@media (min-width: 768px){.properties-list{grid-template-columns:repeat(2,1fr);gap:1rem}}@media (min-width: 1200px){.properties-list{grid-template-columns:repeat(3,1fr)}}.property-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem}.property-info{margin-bottom:.75rem}.property-info .property-address{font-size:1rem;font-weight:500;color:#1f2937}.property-info .property-city{font-size:.875rem;color:#6b7280}.property-info .property-units{font-size:.75rem;color:#9ca3af;margin-top:.25rem}.property-actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn-small{padding:.375rem .625rem;font-size:.75rem;font-weight:500;color:#374151;background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;cursor:pointer}.btn-small:hover{background:#e5e7eb}.btn-small.btn-danger{color:#dc2626;border-color:#fecaca;background:#fef2f2}.btn-small.btn-danger:hover{background:#fee2e2}.btn-small.btn-warning{color:#d97706;border-color:#fde68a;background:#fffbeb}.units-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e5e7eb}.unit-item{display:flex;gap:.5rem;align-items:center;padding:.375rem .625rem;background:#f3f4f6;border-radius:4px;font-size:.8125rem}.unit-number{font-weight:500;color:#1f2937}.unit-floor,.unit-type{color:#6b7280;font-size:.75rem}.users-list{display:grid;grid-template-columns:1fr;gap:.75rem}@media (min-width: 768px){.users-list{grid-template-columns:repeat(2,1fr);gap:1rem}}@media (min-width: 1200px){.users-list{grid-template-columns:repeat(3,1fr)}}.user-item{display:flex;justify-content:space-between;align-items:flex-start;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem}.user-item.inactive{opacity:.6}.user-info .user-name{font-size:1rem;font-weight:500;color:#1f2937;display:flex;align-items:center;gap:.5rem}.user-info .user-email{font-size:.875rem;color:#6b7280}.user-info .user-properties{font-size:.75rem;color:#9ca3af;margin-top:.25rem}.badge{display:inline-block;padding:.125rem .375rem;font-size:.625rem;font-weight:600;text-transform:uppercase;border-radius:4px}.badge.admin{background:#dbeafe;color:#1e40af}.badge.inactive{background:#fee2e2;color:#991b1b}.user-actions{display:flex;gap:.5rem;flex-wrap:wrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100}.modal{background:#fff;border-radius:12px;padding:1.5rem;width:100%;max-width:600px;max-height:80vh;overflow-y:auto}.modal h2{font-size:1.125rem;font-weight:600;color:#1f2937;margin-bottom:1rem}.modal-subtitle{font-size:.875rem;color:#6b7280;margin-bottom:1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.8125rem;font-weight:500;color:#374151;margin-bottom:.25rem}.form-group input,.form-group select{width:100%;padding:.625rem .75rem;font-size:1rem;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:6px}.form-group input:focus,.form-group select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-row{display:flex;gap:.75rem}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.btn-cancel{padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:#6b7280;background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer}.btn-submit{padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:#fff;background:#2563eb;border:none;border-radius:6px;cursor:pointer}.btn-submit:hover{background:#1d4ed8}.assignment-list{max-height:300px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:6px}.assignment-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid #e5e7eb;cursor:pointer}.assignment-item:last-child{border-bottom:none}.assignment-item:hover{background:#f9fafb}.assignment-item input[type=checkbox]{width:1rem;height:1rem}.assignment-label{font-size:.9375rem;color:#1f2937}.empty-hint{padding:2rem;text-align:center;color:#9ca3af}@media (max-width: 768px){.app-sidebar{transform:translate(-100%);transition:transform .3s ease}.app-sidebar.mobile-open{transform:translate(0);box-shadow:4px 0 24px #00000026}.btn-mobile-close{display:block}.btn-mobile-menu{display:flex}.mobile-menu-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:90;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app-content{margin-left:0}.content-header{padding:1.5rem 1rem}.header-title h2{font-size:1.5rem}.app-main{padding:1.5rem 1rem}.protocol-cards,.property-list,.draft-list{grid-template-columns:1fr}}@media (max-width: 400px){.unit-list,.type-buttons{grid-template-columns:1fr}.filter-tabs{gap:.125rem}.filter-tab{padding:.375rem .5rem;font-size:.75rem}.property-item,.user-item{flex-direction:column;gap:.75rem}.property-actions,.user-actions{width:100%}.new-protocol-section,.drafts-section{padding:1.25rem}}:root{font-family:Inter,Avenir,Helvetica,Arial,sans-serif;font-size:16px;line-height:24px;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
