/* Vues MariaDB natives — composants sobres, sans données de remplacement. */
.db-alert{display:flex;align-items:flex-start;gap:14px;margin:0 0 18px;padding:15px 17px;border:1px solid rgba(164,61,48,.2);border-radius:18px;background:#fff4f1;color:#7f2f24}.db-alert i{font-size:22px}.db-alert strong{display:block}.db-alert p{margin:4px 0 0;font-size:13px;line-height:1.45}.db-empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:28px;border:1px dashed rgba(42,37,33,.18);border-radius:22px;background:rgba(255,255,255,.62);text-align:center;color:var(--staysy-muted,#71675f)}.db-empty i{font-size:28px;color:var(--staysy-pine,#1e4e45)}.db-empty strong{color:var(--staysy-ink,#2a2521);font-size:16px}.db-empty span{max-width:540px;font-size:13px;line-height:1.5}.db-empty code{font-family:"JetBrains Mono",monospace;font-size:.92em}.db-empty-compact{min-height:96px;padding:18px}.db-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.db-kpi{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid rgba(42,37,33,.09);border-radius:22px;background:#fff;box-shadow:0 16px 42px -38px rgba(42,37,33,.6)}.db-kpi-icon{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border-radius:15px;background:var(--staysy-clay-soft,#f2e7d7);color:var(--staysy-pine,#1e4e45);font-size:20px}.db-kpi strong{display:block;font:700 28px/1 Fraunces,serif;color:var(--staysy-ink,#2a2521)}.db-kpi span:not(.db-kpi-icon){display:block;margin-top:5px;color:var(--staysy-muted,#71675f);font-size:12px;font-weight:700}.db-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.db-card{min-width:0;border:1px solid rgba(42,37,33,.09);border-radius:24px;background:#fff;padding:18px;box-shadow:0 20px 52px -44px rgba(42,37,33,.66)}.db-card-span-2{grid-column:span 2}.db-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.db-card-head h2{margin:2px 0 0;font:600 22px/1.1 Fraunces,serif}.db-kicker{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:800;color:var(--staysy-muted,#71675f)}.db-card-foot{display:flex;justify-content:space-between;gap:12px;margin-top:16px;padding-top:13px;border-top:1px solid rgba(42,37,33,.08);font-size:12px;color:var(--staysy-muted,#71675f)}.db-list{display:grid}.db-list-row{display:flex;align-items:center;gap:12px;min-width:0;padding:13px 0;border-top:1px solid rgba(42,37,33,.08);color:inherit;text-decoration:none}.db-list-row:first-child{border-top:0}.db-list-row:hover .db-list-main strong{color:var(--staysy-pine,#1e4e45)}.db-list-tight .db-list-row{padding:10px 0}.db-list-main{display:block;min-width:0;flex:1}.db-list-main strong,.db-list-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.db-list-main strong{font-size:14px}.db-list-main small{margin-top:4px;color:var(--staysy-muted,#71675f);font-size:12px}.db-property-dot{width:10px;height:10px;border-radius:50%;background:var(--property-color,#1e4e45);box-shadow:0 0 0 4px color-mix(in srgb,var(--property-color,#1e4e45) 16%,transparent);flex:0 0 auto}.db-status-dot{width:9px;height:9px;border-radius:50%;background:#5a8d79;flex:0 0 auto}.db-status-dot.is-warning{background:#d38a28}.db-status-dot.is-danger{background:#b94b3d}.db-pill{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:0 0 auto;padding:6px 10px;border-radius:999px;background:var(--staysy-clay-soft,#f2e7d7);color:#624a3d;font-size:11px;font-weight:800;white-space:nowrap}.db-pill.is-active{background:#e7f1ec;color:#1e4e45}.db-pill.is-inactive,.db-pill.is-archived{background:#eee9e4;color:#71675f}.db-time{font-size:11px;color:var(--staysy-muted,#71675f);white-space:nowrap}.db-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:15px 18px;border:1px solid rgba(42,37,33,.09);border-radius:20px;background:#fff}.db-toolbar p{margin:0;color:var(--staysy-muted,#71675f);font-size:13px}.db-week-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px}.db-day-card{min-height:360px;border:1px solid rgba(42,37,33,.09);border-radius:20px;background:#fff;padding:12px}.db-day-card.is-today{box-shadow:inset 0 0 0 2px var(--staysy-pine,#1e4e45)}.db-day-card>header{display:flex;align-items:center;justify-content:space-between;padding:3px 2px 11px;font-size:12px;font-weight:800}.db-day-card>header strong{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--staysy-clay-soft,#f2e7d7)}.db-day-empty{padding:28px 4px;text-align:center;color:var(--staysy-muted,#71675f);font-size:12px}.db-stay-chip{display:block;margin:8px 0;padding:10px;border-left:4px solid var(--property-color,#1e4e45);border-radius:12px;background:color-mix(in srgb,var(--property-color,#1e4e45) 8%,#fff);color:inherit;text-decoration:none}.db-stay-chip strong,.db-stay-chip span,.db-stay-chip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.db-stay-chip strong{font-size:12px}.db-stay-chip span,.db-stay-chip small{margin-top:3px;color:var(--staysy-muted,#71675f);font-size:10px}.db-calendar-weekdays,.db-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.db-calendar-weekdays{margin-bottom:8px;padding:0 8px;color:var(--staysy-muted,#71675f);font-size:11px;font-weight:800;text-align:center}.db-calendar-day{min-height:122px;border:1px solid rgba(42,37,33,.09);border-radius:17px;background:#fff;padding:9px}.db-calendar-day.is-outside{opacity:.45}.db-calendar-day.is-today{box-shadow:inset 0 0 0 2px var(--staysy-pine,#1e4e45)}.db-calendar-day header time{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:12px;font-weight:800}.db-calendar-day.is-today header time{background:var(--staysy-pine,#1e4e45);color:#fff}.db-calendar-events{display:grid;gap:4px;margin-top:5px}.db-calendar-event{display:block;overflow:hidden;padding:5px 7px;border-left:3px solid var(--property-color,#1e4e45);border-radius:7px;background:color-mix(in srgb,var(--property-color,#1e4e45) 10%,#fff);color:inherit;text-decoration:none;font-size:10px;font-weight:700;white-space:nowrap;text-overflow:ellipsis}.db-calendar-more{font-size:10px;color:var(--staysy-muted,#71675f)}.db-agenda-grid,.db-pattern-grid,.db-property-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.db-month-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.db-month-stats span{padding:12px;border-radius:14px;background:var(--staysy-canvas,#fbf6ee);color:var(--staysy-muted,#71675f);font-size:12px}.db-month-stats strong{display:block;margin-bottom:3px;color:var(--staysy-ink,#2a2521);font-size:18px}.db-property-card{position:relative;overflow:hidden;border:1px solid rgba(42,37,33,.09);border-radius:24px;background:#fff;padding:19px;box-shadow:0 20px 52px -44px rgba(42,37,33,.66)}.db-property-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--property-color,#1e4e45)}.db-property-card>header{display:flex;align-items:flex-start;gap:12px}.db-property-card>header>div{min-width:0;flex:1}.db-property-card h2{margin:0;font:600 23px/1.1 Fraunces,serif}.db-property-card p{margin:5px 0 0;color:var(--staysy-muted,#71675f);font-size:12px}.db-property-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:color-mix(in srgb,var(--property-color,#1e4e45) 11%,#fff);color:var(--property-color,#1e4e45);font-size:19px}.db-property-score{margin:18px 0}.db-property-score>span,.db-property-score>strong{font-size:12px}.db-property-score>strong{float:right}.db-property-score>div{height:7px;margin-top:7px;border-radius:99px;background:#eee9e4;overflow:hidden}.db-property-score i{display:block;height:100%;border-radius:inherit;background:var(--property-color,#1e4e45)}.db-property-metrics,.db-pattern-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.db-property-metrics>div,.db-pattern-metrics>div{padding:11px;border-radius:14px;background:var(--staysy-canvas,#fbf6ee)}.db-property-metrics dt,.db-pattern-metrics dt{font-size:10px;color:var(--staysy-muted,#71675f)}.db-property-metrics dd,.db-pattern-metrics dd{margin:4px 0 0;font-size:14px;font-weight:800}.db-pattern-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.db-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.db-tags span{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:#f4eee6;color:#665b52;font-size:10px;font-weight:700}.db-incident-list{display:grid;gap:12px}.db-incident-card{position:relative;display:grid;grid-template-columns:1fr auto;gap:18px;overflow:hidden;border:1px solid rgba(42,37,33,.09);border-radius:22px;background:#fff;padding:18px 18px 18px 23px}.db-incident-accent{position:absolute;inset:0 auto 0 0;width:5px;background:#d2a65e}.db-incident-accent.is-urgent,.db-incident-accent.is-high{background:#b94b3d}.db-incident-accent.is-low{background:#7b9f91}.db-incident-meta{display:flex;align-items:center;gap:10px;color:var(--staysy-muted,#71675f);font-size:11px}.db-incident-main h2{margin:9px 0 6px;font:600 21px/1.1 Fraunces,serif}.db-incident-main p{margin:0;color:var(--staysy-muted,#71675f);font-size:13px;line-height:1.45}.db-incident-card>aside{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:11px;color:var(--staysy-muted,#71675f)}.db-incident-card>aside strong{color:var(--staysy-ink,#2a2521)}
@media(max-width:1100px){.db-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.db-week-grid{grid-template-columns:repeat(7,minmax(170px,1fr))}.db-property-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.db-dashboard-grid,.db-agenda-grid,.db-pattern-grid,.db-property-grid{grid-template-columns:1fr}.db-card-span-2{grid-column:auto}.db-kpi-grid{grid-template-columns:1fr 1fr}.db-calendar-weekdays,.db-calendar-grid{min-width:700px}.db-calendar-grid{overflow:visible}.db-toolbar{align-items:flex-start;flex-direction:column}.db-incident-card{grid-template-columns:1fr}.db-incident-card>aside{align-items:flex-start}.db-property-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.db-kpi-grid{grid-template-columns:1fr}.db-kpi{padding:15px}.db-card{padding:15px}.db-month-stats{grid-template-columns:1fr}}
