*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:15px;color:#1a1a2e;background:#f4f6fb;line-height:1.5}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1100px;margin:0 auto;padding:2rem 1.5rem}.nav{background:#1e293b;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:56px;position:sticky;top:0;z-index:100}.nav-brand{color:#f1f5f9;font-weight:700;font-size:1.1rem}.nav-links{display:flex;gap:1.5rem;align-items:center}.nav-links a{color:#94a3b8;font-size:.9rem}.nav-links a:hover{color:#f1f5f9;text-decoration:none}.btn-link{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:.9rem}.btn-link:hover{color:#f87171}.btn-primary{background:#2563eb;color:#fff;border:none;padding:.5rem 1.25rem;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;display:inline-block}.btn-primary:hover{background:#1d4ed8;text-decoration:none}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#e2e8f0;color:#334155;border:none;padding:.5rem 1.25rem;border-radius:6px;cursor:pointer;font-size:.9rem}.btn-secondary:hover{background:#cbd5e1}.btn-danger{background:#ef4444;color:#fff;border:none;padding:.4rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem}.btn-danger:hover{background:#dc2626}.form{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 1px 3px #00000014;max-width:600px}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-weight:500;margin-bottom:.35rem;font-size:.9rem;color:#475569}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.55rem .75rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.95rem;outline:none;transition:border-color .15s;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#2563eb}.form-actions{display:flex;gap:.75rem;margin-top:1.5rem}.error{color:#ef4444;font-size:.875rem;margin-top:.4rem}.success{color:#16a34a;font-size:.875rem;margin-top:.4rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-header h1{font-size:1.5rem}.ticket-table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px #00000014}.ticket-table th{background:#f1f5f9;text-align:left;padding:.75rem 1rem;font-size:.85rem;color:#64748b;font-weight:600}.ticket-table td{padding:.75rem 1rem;border-top:1px solid #f1f5f9;font-size:.9rem}.ticket-table tr:hover td{background:#f8fafc}.status{display:inline-block;padding:.2rem .6rem;border-radius:99px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.status-new{background:#dbeafe;color:#1d4ed8}.status-triaged{background:#fef3c7;color:#92400e}.status-in_progress{background:#d1fae5;color:#065f46}.status-waiting_on_tenant{background:#fce7f3;color:#9d174d}.status-done{background:#dcfce7;color:#166534}.status-cancelled{background:#f1f5f9;color:#64748b}.priority-low{color:#16a34a;font-weight:500}.priority-medium{color:#ca8a04;font-weight:500}.priority-high{color:#ea580c;font-weight:600}.priority-urgent{color:#dc2626;font-weight:700}.ticket-detail{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 1px 3px #00000014}.ticket-meta{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.5rem;font-size:.875rem;color:#64748b}.ticket-meta span strong{color:#334155}.ticket-body{margin-bottom:2rem;line-height:1.7}.inline-controls{margin-bottom:1.5rem}.inline-control{display:flex;gap:.75rem;align-items:center;margin-bottom:.75rem}.inline-control label{font-size:.875rem;color:#475569;min-width:90px;font-weight:500}.inline-control select{padding:.4rem .6rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem;font-family:inherit}.comments{margin-top:2rem}.comments h3{margin-bottom:1rem}.comment{padding:.9rem 1rem;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:.75rem;background:#fff}.comment.internal{border-color:#fbbf24;background:#fffbeb}.comment-header{display:flex;justify-content:space-between;font-size:.78rem;color:#94a3b8;margin-bottom:.4rem}.comment-header .internal-badge{background:#fef3c7;color:#92400e;font-size:.7rem;font-weight:600;padding:.1rem .4rem;border-radius:4px}.comment-body{font-size:.9rem;white-space:pre-wrap}.comment-form{margin-top:1.5rem}.comment-form h4{margin-bottom:.75rem}.comment-form textarea{width:100%;padding:.75rem;border:1px solid #cbd5e1;border-radius:6px;resize:vertical;font-family:inherit;font-size:.9rem;min-height:80px}.comment-form textarea:focus{outline:none;border-color:#2563eb}.comment-type-toggle{display:flex;gap:.5rem;margin-bottom:.75rem}.comment-type-toggle button{padding:.3rem .8rem;border-radius:6px;cursor:pointer;font-size:.8rem;border:1px solid #cbd5e1;background:#f8fafc;color:#475569}.comment-type-toggle button.active{background:#1e293b;color:#fff;border-color:#1e293b}.attachments{margin-top:2rem}.attachments h3{margin-bottom:.75rem}.attachment-list{list-style:none}.attachment-list li{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:.5rem;font-size:.875rem;background:#fff}.attachment-list li span{flex:1}.upload-area{margin-bottom:.75rem}.upload-area label{display:inline-block;padding:.45rem 1rem;background:#f1f5f9;border:1px dashed #94a3b8;border-radius:6px;cursor:pointer;font-size:.875rem}.upload-area label:hover{background:#e2e8f0}.buildings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.building-card{background:#fff;padding:1.5rem;border-radius:10px;box-shadow:0 1px 3px #00000014}.building-card h3{margin-bottom:.25rem;font-size:1.05rem}.building-card .address{font-size:.875rem;color:#64748b;margin-bottom:.75rem}.building-card-actions{display:flex;gap:.5rem;margin-top:.75rem}.filters{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap;background:#fff;padding:.75rem 1rem;border-radius:8px;box-shadow:0 1px 2px #0000000f}.filters select,.filters input{padding:.4rem .75rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem;font-family:inherit}.badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.72rem;font-weight:600}.badge-active{background:#dcfce7;color:#166534}.badge-inactive{background:#fee2e2;color:#991b1b}.login-page{max-width:420px;margin:5rem auto;padding:0 1.5rem;text-align:center}.login-page h1{margin-bottom:.5rem;font-size:1.75rem}.login-page>p{color:#64748b;margin-bottom:2rem;font-size:.95rem}.login-form{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 1px 3px #00000014;text-align:left}.login-forgot{background:none;border:none;padding:0;color:#2563eb;font-size:.85rem;cursor:pointer;text-decoration:none}.login-forgot:hover{text-decoration:underline}.loading{text-align:center;padding:4rem;color:#94a3b8;font-size:1rem}.section-divider{border:none;border-top:1px solid #e2e8f0;margin:2rem 0}.lang-toggle{display:flex;gap:.2rem;align-items:center}.lang-btn{background:none;border:1px solid #475569;color:#94a3b8;padding:.18rem .45rem;border-radius:4px;cursor:pointer;font-size:.72rem;font-weight:700;letter-spacing:.05em;line-height:1.4}.lang-btn:hover{color:#f1f5f9;border-color:#94a3b8}.lang-btn.active,.lang-btn[aria-pressed=true]{background:#2563eb;border-color:#2563eb;color:#fff}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-spinner{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:auth-spin .75s linear infinite;margin:0 auto}@media (max-width: 640px){.container{padding:1rem}.filters{flex-direction:column}.ticket-table{display:block;overflow-x:auto}.page-header{flex-direction:column;gap:1rem;align-items:flex-start}.ticket-meta{flex-direction:column;gap:.5rem}}
