:root{
  --navy:#07283f;--navy2:#0d3a58;--gold:#c79a43;--gold2:#e6ca88;
  --ink:#173247;--muted:#6b7d8c;--soft:#f7f4ee;--paper:#fff;
  --line:rgba(7,40,63,.12);--shadow:0 22px 70px rgba(7,40,63,.12);
  --radius:26px;--danger:#a92d35;--ok:#246a43;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:linear-gradient(180deg,#fff,#faf8f3);line-height:1.6}a{color:var(--navy)}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}.hidden{display:none!important}
.top{min-height:76px;display:flex;align-items:center;gap:13px;padding:10px 18px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);backdrop-filter:blur(14px);position:sticky;top:0;z-index:30}.top img{width:54px;height:54px;object-fit:contain}.top div{display:flex;flex-direction:column}.top strong{font-family:Georgia,serif;letter-spacing:.16em;font-size:19px;color:var(--navy)}.top span{font-size:10px;letter-spacing:.25em;color:var(--gold)}
.shell{width:min(900px,calc(100% - 28px));margin:0 auto;padding:26px 0 72px}
.app-hero{position:relative;overflow:hidden;background:linear-gradient(145deg,var(--navy),#104a70);color:#fff;border-radius:32px;padding:38px 30px;box-shadow:var(--shadow);margin-bottom:22px}.app-hero:before,.app-hero:after{content:"";position:absolute;border:1px solid rgba(230,202,136,.28);border-radius:50%}.app-hero:before{width:250px;height:250px;right:-100px;top:-130px}.app-hero:after{width:180px;height:180px;right:55px;bottom:-130px}.app-hero .hero-mark{width:76px;height:76px;object-fit:contain;background:#fff;border-radius:50%;padding:5px;margin-bottom:18px}.app-hero h1{font:500 clamp(38px,8vw,62px)/1.03 Georgia,serif;margin:8px 0 14px;color:#fff}.app-hero p{max-width:650px;color:rgba(255,255,255,.82);font-size:18px;margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.17em;color:var(--gold2);font-weight:800;font-size:11px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;background:var(--navy);color:#fff;text-decoration:none;border:0;border-radius:999px;padding:13px 22px;font-weight:800;cursor:pointer;transition:.18s ease}.btn:hover{transform:translateY(-1px);background:var(--navy2)}.btn.gold{background:var(--gold);color:var(--navy)}.btn.light{background:#fff;color:var(--navy)}.btn.outline{background:transparent;border:1px solid rgba(255,255,255,.45);color:#fff}.btn.small{margin:0;padding:10px 15px;font-size:14px}.btn.block{width:100%}
.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}.quick-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;text-decoration:none;box-shadow:0 10px 30px rgba(7,40,63,.06)}.quick-card .qicon{width:48px;height:48px;border-radius:16px;background:var(--soft);display:grid;place-items:center;font-size:23px;color:var(--gold)}.quick-card strong{display:block;color:var(--navy);font-size:17px}.quick-card span{display:block;color:var(--muted);font-size:13px}
.ticket-form,.panel,.auth-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}.form-head{margin-bottom:20px}.form-head h2{font:500 32px Georgia,serif;color:var(--navy);margin:0 0 6px}.form-head p{margin:0;color:var(--muted)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:var(--navy)}input,select,textarea{width:100%;padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(199,154,67,.12)}textarea{resize:vertical}.field-note,small{color:var(--muted);font-weight:500}.alert{padding:15px 18px;border-radius:14px;margin:14px 0}.success{background:#eaf7ef;color:#1d6a3b}.error{background:#fff0f0;color:#9e2525}.admin-link{text-align:center;margin-top:22px;font-size:14px}
.install-banner{display:none;position:fixed;left:14px;right:14px;bottom:14px;z-index:80;background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;box-shadow:0 20px 60px rgba(7,40,63,.2);align-items:center;gap:12px}.install-banner.show{display:flex}.install-banner img{width:48px;height:48px;border-radius:14px}.install-banner div{flex:1}.install-banner strong{display:block;color:var(--navy)}.install-banner span{font-size:13px;color:var(--muted)}.install-close{background:none;border:0;font-size:22px;color:var(--muted);cursor:pointer}.ios-help{display:none;background:#fff8e7;border:1px solid rgba(199,154,67,.32);border-radius:18px;padding:14px 16px;margin:14px 0;color:#70541d}.ios-help.show{display:block}
.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 80% 10%,rgba(199,154,67,.15),transparent 24%),linear-gradient(145deg,#fff,var(--soft))}.auth-card{width:min(500px,100%)}.auth-logo{width:92px;height:92px;object-fit:contain;margin:0 auto 10px}.auth-card h1{text-align:center;font:500 36px Georgia,serif;color:var(--navy);margin:8px 0}.auth-card .auth-sub{text-align:center;color:var(--muted);margin-bottom:24px}.stack{display:flex;flex-direction:column;gap:15px}
.ticket-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.ticket-head h1{font:500 clamp(34px,6vw,54px)/1.05 Georgia,serif;color:var(--navy);margin:10px 0}.status{display:inline-flex;padding:8px 12px;border-radius:999px;font-weight:800;font-size:13px;white-space:nowrap}.nouveau{background:#e8f1ff;color:#24548a}.en_cours{background:#fff2d8;color:#8b5a00}.en_attente{background:#f1eafa;color:#6b3d8e}.traite{background:#e8f7ef;color:#246a43}.archive{background:#eef1f3;color:#586671}.meta{display:flex;gap:20px;flex-wrap:wrap;color:var(--muted);margin-bottom:18px}.timeline{margin-top:28px}.message{background:#fff;border-left:4px solid var(--gold);padding:16px 18px;margin:12px 0;border-radius:0 14px 14px 0;box-shadow:0 8px 24px rgba(7,40,63,.04)}.message.internal{background:#fff8e9}.message time{float:right;color:var(--muted);font-size:12px}.message em{display:block;color:#9a6b14;font-size:12px}
.admin-top{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;background:var(--navy);color:#fff;position:sticky;top:0;z-index:30}.admin-top a{color:#fff;text-decoration:none}.admin-brand{display:flex;align-items:center;gap:11px}.admin-brand img{width:44px;height:44px;background:#fff;border-radius:50%;padding:3px}.admin-brand div{display:flex;flex-direction:column}.admin-brand span{font-size:12px;opacity:.75}.admin-shell{width:min(1280px,calc(100% - 28px));margin:0 auto;padding:26px 0 66px}.dashboard-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.dashboard-head h1{font:500 46px Georgia,serif;color:var(--navy);margin:0}.dashboard-head p{margin:5px 0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}.stat{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:0 10px 28px rgba(7,40,63,.05)}.stat strong{display:block;font:500 34px Georgia,serif;color:var(--navy)}.stat span{font-size:13px;color:var(--muted)}.filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;margin:20px 0}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 34px rgba(7,40,63,.05)}table{border-collapse:collapse;width:100%;min-width:900px}th,td{text-align:left;padding:14px;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--soft);color:var(--navy);font-size:13px;text-transform:uppercase;letter-spacing:.04em}td small{display:block;color:var(--muted)}tr.late{background:#fff8f0}.ticket-cards{display:none}.ticket-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:17px;box-shadow:0 10px 28px rgba(7,40,63,.06);margin-bottom:12px}.ticket-card.late{border-color:rgba(199,154,67,.5);background:#fffaf0}.ticket-card-top{display:flex;justify-content:space-between;gap:12px}.ticket-card h3{font-size:17px;color:var(--navy);margin:8px 0 4px}.ticket-card p{margin:0;color:var(--muted);font-size:14px}.ticket-card-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px;font-size:12px;color:var(--muted)}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px}.check{flex-direction:row;align-items:center}.check input{width:auto}
@media(max-width:800px){.grid,.filters,.admin-grid,.stats{grid-template-columns:1fr}.full{grid-column:auto}.quick-actions{grid-template-columns:1fr}.app-hero{padding:30px 22px;border-radius:24px}.app-hero .hero-mark{width:66px;height:66px}.ticket-head{flex-direction:column}.message time{float:none;display:block}.dashboard-head{align-items:flex-start;flex-direction:column}.admin-top{gap:12px}.top{min-height:68px}.top img{width:46px;height:46px}.table-wrap{display:none}.ticket-cards{display:block}.admin-shell{padding-top:18px}.dashboard-head h1{font-size:38px}.stats{grid-template-columns:1fr 1fr}.admin-top .admin-brand strong{font-size:15px}.admin-top>a{font-size:13px}}
@media(max-width:480px){.shell{width:min(100% - 20px,900px);padding-top:14px}.ticket-form,.panel,.auth-card{padding:20px;border-radius:21px}.app-hero h1{font-size:40px}.stats{grid-template-columns:1fr 1fr}.stat{padding:14px}.stat strong{font-size:28px}.btn{width:100%}.hero-actions{flex-direction:column}.install-banner{align-items:flex-start}.top div span{letter-spacing:.15em}.admin-top{padding:11px 12px}}

/* Notifications Web Push */
.push-panel{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#fff,#fbf7ed);border:1px solid rgba(199,154,67,.28);border-radius:22px;padding:17px 18px;box-shadow:0 12px 32px rgba(7,40,63,.06);margin:4px 0 22px}.push-panel-setup{border-style:dashed}.push-symbol{width:48px;height:48px;border-radius:16px;background:var(--navy);display:grid;place-items:center;font-size:22px;flex:0 0 auto}.push-copy{display:flex;flex-direction:column;min-width:0;flex:1}.push-copy strong{color:var(--navy);font-size:17px}.push-copy span{color:var(--muted);font-size:14px}.push-copy span[data-state="success"]{color:var(--ok)}.push-copy span[data-state="error"]{color:var(--danger)}.push-copy span[data-state="warning"]{color:#946300}.push-copy small{font-size:12px;margin-top:2px}.push-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.btn.secondary{background:#e9eef2;color:var(--navy)}.btn.ghost{background:transparent;color:var(--navy);border:1px solid var(--line)}.btn:disabled{opacity:.55;cursor:wait;transform:none}.narrow-shell{width:min(760px,calc(100% - 28px))}.push-setup-card h1{font:500 clamp(34px,6vw,48px)/1.08 Georgia,serif;color:var(--navy);margin:8px 0 12px}.push-check-list{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.push-check-list span{padding:8px 12px;border-radius:999px;font-weight:800;font-size:13px}.push-check-list .ok{background:#eaf7ef;color:#1d6a3b}.push-check-list .bad{background:#fff0f0;color:#9e2525}.push-check-list .pending{background:#fff5dc;color:#8b5a00}
@media(max-width:800px){.push-panel{align-items:flex-start;flex-wrap:wrap}.push-copy{min-width:calc(100% - 68px)}.push-actions{width:100%;justify-content:stretch}.push-actions .btn{flex:1}.push-panel>.btn{width:100%}}
@media(max-width:480px){.push-actions{flex-direction:column}.push-actions .btn{width:100%}.push-symbol{width:44px;height:44px;border-radius:14px}}
