:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color:#1a1a1a;background-color:#f8f9fb}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.5rem;background:#fff;border-bottom:1px solid #e5e7eb}.app-brand{font-weight:700;color:#1a56db;text-decoration:none}.app-header-user{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.app-user-name{font-weight:600}.app-user-role{color:#6b7280}.app-logout{border:1px solid #d1d5db;background:#fff;border-radius:6px;padding:.35rem .75rem;cursor:pointer;font-size:.875rem}.app-logout:hover{background:#f3f4f6}.app-body{display:flex;flex:1;min-height:0}.app-sidebar{width:220px;flex-shrink:0;background:#fff;border-right:1px solid #e5e7eb;padding:1rem 0}.app-nav{list-style:none;margin:0;padding:0}.app-nav-link{display:flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;color:#374151;text-decoration:none;font-size:.875rem}.app-nav--nested{padding-left:.5rem}.app-nav--nested .app-nav-link{padding-left:2rem;font-size:.8125rem}.app-header-avatar{border-radius:50%;object-fit:cover}.app-nav-link:hover{background:#f3f4f6}.app-nav-link.is-active{background:#eff6ff;color:#1a56db;font-weight:600}.app-main{flex:1;padding:1.5rem;overflow:auto}a{color:#1a56db}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth-card{width:100%;max-width:400px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1.75rem;box-shadow:0 4px 12px #0000000f}.auth-card--wide{max-width:420px}.auth-avatar{display:block;margin:0 auto 1rem;border-radius:50%;object-fit:cover}.auth-button--google{background:#fff;color:#1f2937;border:1px solid #d1d5db;margin-bottom:.5rem}.auth-button--google:hover:not(:disabled){background:#f9fafb}.auth-divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:#9ca3af;font-size:.8rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#e5e7eb}.auth-label{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;font-size:.875rem;font-weight:500}.auth-label input,.auth-label select{padding:.5rem .65rem;border:1px solid #d1d5db;border-radius:6px;font:inherit}.auth-button{width:100%;padding:.6rem 1rem;background:#1a56db;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-button--secondary{background:#fff;color:#374151;border:1px solid #d1d5db;margin-top:.5rem}.auth-error{color:#b91c1c;font-size:.875rem}.auth-muted{color:#6b7280;font-size:.9rem}.home-modules{padding-left:1.25rem}.users-form{margin-bottom:2rem;padding:1.25rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.users-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.5rem 1rem}.users-form-actions{display:flex;gap:.75rem;flex-wrap:wrap}.users-form-actions .auth-button{width:auto}.users-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.users-table th,.users-table td{padding:.65rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb}.users-table th{background:#f9fafb;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#6b7280}.link-button{background:none;border:none;color:#1a56db;cursor:pointer;padding:0;font:inherit;text-decoration:underline}.inventory-module{display:flex;flex-direction:column;gap:1.25rem}.inventory-nav{display:flex;flex-wrap:wrap;gap:.5rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.inventory-nav-link{padding:.4rem .85rem;border-radius:6px;text-decoration:none;color:#374151;font-size:.875rem}.inventory-nav-link:hover{background:#f3f4f6}.inventory-nav-link.is-active{background:#eff6ff;color:#1a56db;font-weight:600}.inventory-panel{margin-bottom:1.5rem;padding:1.25rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.inventory-actions{display:flex;gap:.75rem;flex-wrap:wrap}.inventory-actions .auth-button{width:auto}.inventory-page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.inventory-page-header__btn{display:inline-block;width:auto;text-align:center;text-decoration:none;padding:.5rem 1rem}.inventory-cards{list-style:none;padding:0;margin:1rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.inventory-card{display:flex;flex-direction:column;gap:.35rem;padding:1rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;text-decoration:none;color:inherit}.inventory-card:hover{border-color:#1a56db}.inventory-card strong{color:#1a56db}.inventory-fieldset{margin:1rem 0;padding:1rem;border:1px solid #e5e7eb;border-radius:8px}.inventory-custom-fields{display:grid;gap:.75rem}.auth-label--row{flex-direction:row;align-items:center;gap:.5rem}.badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.badge--ok{background:#dcfce7;color:#166534}.badge--muted{background:#f3f4f6;color:#6b7280}.inventory-card--static{cursor:default;opacity:.85}.users-tabs{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.users-tab{padding:.4rem .85rem;border:1px solid #d1d5db;background:#fff;border-radius:6px;cursor:pointer;font-size:.875rem}.users-tab.is-active{background:#eff6ff;border-color:#1a56db;color:#1a56db;font-weight:600}.users-cell-user{display:flex;align-items:center;gap:.5rem}.users-avatar{border-radius:50%;object-fit:cover}.users-actions-cell{display:flex;flex-wrap:wrap;gap:.5rem}.dashboard-page{display:flex;flex-direction:column;gap:1.5rem}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.dashboard-header h1{margin:0 0 .25rem}.dashboard-refresh{width:auto}.stat-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.stat-card{padding:1rem 1.15rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.stat-card__label{margin:0;font-size:.8rem;color:#6b7280;text-transform:uppercase;letter-spacing:.03em}.stat-card__value{margin:.35rem 0 0;font-size:1.75rem;font-weight:700;line-height:1.2}.stat-card__hint{margin:.25rem 0 0;font-size:.75rem;color:#9ca3af}.stat-card--blue .stat-card__value{color:#1a56db}.stat-card--green .stat-card__value{color:#047857}.stat-card--amber .stat-card__value{color:#b45309}.stat-card--purple .stat-card__value{color:#6d28d9}.dashboard-quick h2{margin:0 0 .5rem;font-size:1rem}.status-badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.status-badge--available{background:#dcfce7;color:#166534}.status-badge--reserved{background:#ede9fe;color:#5b21b6}.status-badge--in-use{background:#dbeafe;color:#1e40af}.status-badge--maintenance,.status-badge--repair{background:#fef3c7;color:#92400e}.status-badge--sold{background:#f3f4f6;color:#374151}.status-badge--inactive{background:#f3f4f6;color:#6b7280}.row-muted{opacity:.65}.dashboard-section-title{margin:1.25rem 0 .5rem;font-size:1rem;font-weight:600;color:#374151}.reservation-filters{margin-bottom:1.25rem;padding:1rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.reservation-badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.reservation-badge--draft{background:#f3f4f6;color:#4b5563}.reservation-badge--confirmed{background:#dbeafe;color:#1e40af}.reservation-badge--in-progress{background:#ede9fe;color:#5b21b6}.reservation-badge--completed{background:#dcfce7;color:#166534}.reservation-badge--cancelled{background:#fee2e2;color:#991b1b}.reservation-conflicts{margin:1rem 0;padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b}.reservation-conflicts ul{margin:.5rem 0 0;padding-left:1.25rem}.reservation-item-picker{list-style:none;margin:0;padding:0;max-height:240px;overflow:auto}.reservation-item-picker li{padding:.35rem 0;border-bottom:1px solid #f3f4f6}.reservation-validated{align-self:center;color:#047857;font-size:.875rem;font-weight:600}.reservation-detail-grid{display:grid;grid-template-columns:140px 1fr;gap:.5rem 1rem;margin:1rem 0 1.5rem;padding:1rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.reservation-detail-grid dt{font-weight:600;color:#6b7280;font-size:.875rem}.reservation-detail-grid dd{margin:0}.item-reservation-hint{display:block;font-size:.75rem;color:#5b21b6;text-decoration:none}.item-reservation-hint:hover{text-decoration:underline}.inventory-panel--hint{margin-bottom:1rem}.inventory-panel__subtitle{margin:0;font-size:1rem}.calendar-page__intro{margin-bottom:1rem}.calendar-filters{margin-bottom:1rem;padding:1rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.calendar-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.calendar-toolbar__nav{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.calendar-toolbar__title{margin:0 0 0 .5rem;font-size:1.1rem}.calendar-viewport{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem;overflow-x:auto}.calendar-month__head,.calendar-month__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#e5e7eb}.calendar-month__head{margin-bottom:1px}.calendar-month__weekday{background:#f9fafb;padding:.35rem;text-align:center;font-size:.75rem;font-weight:600;color:#6b7280}.calendar-month__cell{background:#fff;min-height:88px;padding:.35rem;display:flex;flex-direction:column;gap:.25rem}.calendar-month__cell--muted{background:#f9fafb;opacity:.75}.calendar-month__day{font-size:.8rem;font-weight:600}.calendar-month__events{display:flex;flex-direction:column;gap:2px;flex:1}.calendar-month__more{font-size:.7rem;color:#6b7280}.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:.5rem}.calendar-week__col{border:1px solid #e5e7eb;border-radius:6px;min-height:160px;display:flex;flex-direction:column}.calendar-week__header{padding:.5rem;border-bottom:1px solid #e5e7eb;background:#f9fafb;display:flex;flex-direction:column;gap:.15rem}.calendar-week__weekday{font-size:.75rem;color:#6b7280;text-transform:capitalize}.calendar-week__day{font-size:1.1rem;font-weight:700}.calendar-week__events{padding:.5rem;display:flex;flex-direction:column;gap:.35rem;flex:1}.calendar-event{display:block;padding:.25rem .4rem;border-radius:4px;font-size:.7rem;text-decoration:none;color:inherit;border-left:3px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event--compact{padding:.15rem .35rem}.calendar-event__title{font-weight:600;display:block}.calendar-event__meta{display:block;opacity:.85;font-size:.65rem}.calendar-event--draft{background:#f3f4f6;border-left-color:#9ca3af}.calendar-event--confirmed{background:#dbeafe;border-left-color:#2563eb}.calendar-event--in-progress{background:#ede9fe;border-left-color:#7c3aed}.calendar-event--completed{background:#dcfce7;border-left-color:#16a34a}.calendar-event--cancelled{background:#fee2e2;border-left-color:#dc2626;opacity:.7}.calendar-day-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.calendar-day-list__item{padding:.75rem;border:1px solid #e5e7eb;border-radius:8px}.calendar-day-list__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.item-upcoming-reservations{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.item-upcoming-reservations li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.dashboard-occupancy{margin-top:1rem}.dashboard-occupancy-list{list-style:none;margin:0;padding:0;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.dashboard-occupancy-list li{padding:.65rem 1rem;border-bottom:1px solid #e5e7eb}.dashboard-occupancy-list li:last-child{border-bottom:none}.calendar-event--logistics{border-style:dashed}.calendar-event--log-pending{background:#fef9c3;border-left-color:#ca8a04}.calendar-event--log-scheduled{background:#ffedd5;border-left-color:#ea580c}.calendar-event--log-in-transit{background:#e0e7ff;border-left-color:#4f46e5}.calendar-event--log-delivered{background:#d1fae5;border-left-color:#059669}.calendar-event--log-returned{background:#f3e8ff;border-left-color:#9333ea}.calendar-event--log-cancelled{background:#f3f4f6;border-left-color:#9ca3af;opacity:.7}.logistics-badge,.logistics-type{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.logistics-badge--pending{background:#fef9c3;color:#854d0e}.logistics-badge--scheduled{background:#ffedd5;color:#9a3412}.logistics-badge--in-transit{background:#e0e7ff;color:#3730a3}.logistics-badge--delivered{background:#d1fae5;color:#065f46}.logistics-badge--returned{background:#f3e8ff;color:#6b21a8}.logistics-badge--cancelled{background:#f3f4f6;color:#6b7280}.logistics-type--delivery{background:#dbeafe;color:#1e40af}.logistics-type--pickup{background:#fce7f3;color:#9d174d}.logistics-type--transfer{background:#e5e7eb;color:#374151}.commercial-badge,.commercial-type{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.commercial-badge--draft{background:#f3f4f6;color:#4b5563}.commercial-badge--pending{background:#fef9c3;color:#854d0e}.commercial-badge--approved{background:#d1fae5;color:#065f46}.commercial-badge--rejected{background:#fee2e2;color:#991b1b}.commercial-badge--in-progress{background:#e0e7ff;color:#3730a3}.commercial-badge--completed{background:#dbeafe;color:#1e40af}.commercial-badge--cancelled{background:#f3f4f6;color:#6b7280}.commercial-type--quotation{background:#fef3c7;color:#92400e}.commercial-type--rental{background:#e0e7ff;color:#3730a3}.commercial-type--sale{background:#d1fae5;color:#065f46}.billing-badge,.billing-type{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.billing-badge--draft{background:#f3f4f6;color:#4b5563}.billing-badge--pending{background:#fef9c3;color:#854d0e}.billing-badge--issued{background:#d1fae5;color:#065f46}.billing-badge--cancelled{background:#f3f4f6;color:#6b7280}.billing-badge--error{background:#fee2e2;color:#991b1b}.billing-type--internal{background:#dbeafe;color:#1e40af}.billing-type--fiscal{background:#fce7f3;color:#9d174d}@media(max-width:768px){.calendar-week{grid-template-columns:1fr}.calendar-month__cell{min-height:64px}}
