.page{width:100%;max-width:44rem;display:grid;gap:.75rem}.page .panel{max-width:none;padding:1rem}.page .panel h1{margin:0;font-size:1.3rem}.panel h2{margin:0 0 .6rem;font-size:1.05rem}.facts-inline{display:flex;flex-wrap:wrap;gap:.15rem 1.25rem;margin:.35rem 0 0}.facts-inline div{display:flex;gap:.4rem;min-width:0}.facts-inline dt{color:var(--muted)}.facts-inline dt:after{content:" :"}.facts-inline dd{margin:0;overflow-wrap:anywhere}.panel p.hours{margin:0;font-size:1.05rem;font-weight:600;font-variant-numeric:tabular-nums}.panel p.hours-off{margin:0;font-weight:600}.panel p.off-note{margin:0 0 .6rem;font-weight:600}.panel p.hours-off span{font-weight:400;color:var(--muted);font-variant-numeric:tabular-nums}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.6rem}.panel-head h2,.panel-head h1{margin:0}.switch{position:relative;flex:none;width:2.5rem;height:1.4rem;padding:0;border:1px solid var(--line);border-radius:999px;background:var(--line);cursor:pointer;transition:background .15s,border-color .15s}.switch[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.switch:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.switch:disabled{opacity:.5;cursor:default}.switch-knob{position:absolute;top:50%;left:.15rem;width:1.05rem;height:1.05rem;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px var(--shadow);transform:translateY(-50%);transition:transform .15s}.switch[aria-checked=true] .switch-knob{transform:translate(1.1rem,-50%)}.btn-add{display:inline-block;margin-top:.6rem;padding:.35rem 0;font:inherit;font-size:.9rem;font-weight:500;color:var(--accent);background:none;border:0;cursor:pointer}.btn-add:hover{text-decoration:underline}.modal{width:100%;max-width:100%;max-height:calc(100dvh - 2rem);margin:auto 0 0;padding:0;color:var(--ink);background:var(--surface);border:0;border-radius:var(--radius) var(--radius) 0 0;box-shadow:0 -4px 24px var(--shadow)}.modal::backdrop{background:var(--backdrop)}.modal-body{padding:1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.modal-head h2{margin:0}.modal-close{width:2.5rem;height:2.5rem;margin:-.5rem -.5rem -.5rem 0;font-size:1.5rem;line-height:1;color:var(--muted);background:none;border:0;border-radius:var(--radius-control);cursor:pointer}.modal-close:hover{color:var(--ink);background:var(--bg)}.modal .form-grid{margin-bottom:0}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.modal-actions .btn{flex:1}.client-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.client-link{display:block;padding:.85rem 1rem;color:var(--ink);font-weight:500;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent-soft-hover);border-radius:var(--radius-control)}.client-link:hover{background:var(--bg);border-left-color:var(--accent)}.client-link small{display:block;font-weight:400;color:var(--muted)}.client-inactif{color:var(--muted);border-left-color:var(--line)}.client-etat{margin-left:.5rem;padding:.05rem .4rem;font-size:.75rem;font-weight:500;color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-control)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.6rem;margin-bottom:1rem}.field{display:grid;gap:.15rem;font-size:.85rem;color:var(--muted)}.field input,.field select,.field textarea{min-width:0;min-height:2.75rem;padding:.55rem .65rem;font:inherit;font-size:1rem;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:var(--radius-control)}.field textarea{resize:vertical}.field select:focus,.field textarea:focus,.field input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.field input[type=range]{padding:0;background:none;border:0;accent-color:var(--accent);cursor:pointer}.field input[type=range]:focus{box-shadow:none}.field input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.items{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.items li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.items li>span{min-width:0;overflow-wrap:anywhere;line-height:1.35}.items .sub{display:block;font-size:.85rem;color:var(--muted)}.items .item-actions{display:flex;flex-shrink:0;gap:.4rem}.items.calls li{justify-content:flex-start;gap:.6rem;padding:.4rem 0}.items .call-main{flex:1}.call-dir{display:grid;place-items:center;flex-shrink:0;width:1.75rem;height:1.75rem;font-weight:700;border-radius:50%}.call-entrant{color:var(--accent);background:var(--accent-soft)}.call-sortant{color:var(--muted);background:var(--bg)}.call-row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.call-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.call-when{flex-shrink:0;font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.call-info{font-size:.8rem;color:var(--muted)}.call-tags{display:flex;align-items:center;min-width:0;overflow:hidden;white-space:nowrap}.call-tags>span{flex-shrink:0}.call-tags>span+span:before{content:"·";margin:0 .35rem;color:var(--muted)}.call-tags>.call-num{flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.call-duration{flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--ink)}.call-missed{color:var(--muted)}.call-approved{color:var(--accent);font-weight:500}.call-refused{color:var(--danger);font-weight:500}.call-listed{color:var(--muted)}.call-voicemail{display:inline-flex;align-items:center;gap:.25rem;color:var(--accent);font-weight:500}.call-voicemail svg{flex:none}.panel p.vm-resume{margin:0 0 .6rem;font-weight:500}.call-dir.vm-nouveau{color:var(--accent);background:var(--accent-soft)}.call-dir.vm-archive{color:var(--muted);background:var(--bg)}.call-dir.vm-lire{padding:0;border:0;font:inherit;cursor:pointer;align-self:flex-start;margin-top:.1rem}.call-dir.vm-lire:hover{color:var(--on-accent);background:var(--accent)}.call-dir.vm-lire:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.call-dir.vm-lire .spinner{width:.9rem;height:.9rem}.vm-action{display:grid;place-items:center;flex-shrink:0;width:2rem;height:2rem;padding:0;color:var(--muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-control);cursor:pointer}.vm-action:hover:not(:disabled){color:var(--accent);background:var(--accent-soft)}.vm-action-supprimer:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.vm-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.vm-action:disabled{cursor:default;opacity:.5}.vm-action .spinner{width:.9rem;height:.9rem}.items.calls li.vm-ouvert{flex-wrap:wrap;row-gap:.3rem;padding-bottom:.5rem}.items.calls li.vm-ouvert>.lecteur,.items.calls li.vm-ouvert>.vm-erreur{flex-basis:100%}.call-dir.vm-lire.vm-joue{color:var(--on-accent);background:var(--accent)}.lecteur{display:flex;align-items:center;gap:.6rem;padding:0 .6rem;background:var(--bg);border-radius:var(--radius-control)}.lecteur-temps{flex-shrink:0;font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.lecteur-barre{--remplie: calc(var(--progression, 0) * 100%);flex:1;min-width:0;height:1.25rem;margin:0;padding:0;background:transparent;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.lecteur-barre:disabled{cursor:default;opacity:.6}.lecteur-barre:focus{outline:none}.lecteur-barre::-webkit-slider-runnable-track{height:.3rem;border-radius:999px;background:linear-gradient(to right,var(--accent) var(--remplie),var(--line) var(--remplie))}.lecteur-barre::-moz-range-track{height:.3rem;border-radius:999px;background:var(--line)}.lecteur-barre::-moz-range-progress{height:.3rem;border-radius:999px;background:var(--accent)}.lecteur-barre::-webkit-slider-thumb{width:.9rem;height:.9rem;margin-top:-.3rem;background:var(--accent);border:2px solid var(--bg);border-radius:50%;box-shadow:0 0 0 1px var(--accent);-moz-appearance:none;appearance:none;-webkit-appearance:none}.lecteur-barre::-moz-range-thumb{width:.9rem;height:.9rem;background:var(--accent);border:2px solid var(--bg);border-radius:50%;box-shadow:0 0 0 1px var(--accent)}.lecteur-barre:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--accent-soft),0 0 0 1px var(--accent)}.lecteur-barre:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px var(--accent-soft),0 0 0 1px var(--accent)}.vm-erreur{display:block;font-size:.85rem}.lecteur-telecharger{display:grid;place-items:center;flex-shrink:0;width:1.75rem;height:1.75rem;margin-right:-.35rem;color:var(--muted);border-radius:var(--radius-control)}.lecteur-telecharger:hover{color:var(--accent);background:var(--accent-soft)}.lecteur-telecharger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.items.actions-log li{justify-content:flex-start;padding:.45rem 0}.items .action-main{flex:1;display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.action-text{min-width:0;font-size:.9rem;line-height:1.4;overflow-wrap:anywhere}.action-text strong{font-weight:600}.action-when{flex-shrink:0;font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.btn-add:disabled{color:var(--muted);cursor:progress;text-decoration:none}.btn.btn-small{min-height:2.25rem;padding:.3rem .75rem;font-size:.9rem}.btn.btn-danger{color:var(--danger);background:transparent;border-color:var(--line)}.btn.btn-danger:hover{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-line)}.panel p.ok,.modal p.ok{margin:.5rem 0 0;color:var(--accent)}.panel p.error{margin:.5rem 0 0}.panel p.ok:empty,.panel p.error:empty{margin:0}.panel p.empty{margin:0}@media (min-width: 640px){.page{gap:1rem}.page .panel{padding:1.25rem 1.5rem}.page .panel h1{font-size:1.5rem}.modal{width:calc(100% - 2rem);max-width:28rem;margin:auto;border-radius:var(--radius);box-shadow:0 8px 32px var(--shadow)}.modal-body{padding:1.25rem 1.5rem}.modal-actions .btn{flex:0 0 auto}}.page .facts{margin:.6rem 0 .9rem}.profile-actions{display:flex;flex-wrap:wrap;gap:.5rem}.device-current{flex-shrink:0;font-size:.85rem;color:var(--accent)}.items.calls li.call-clickable{padding:0}.call-open{display:flex;align-items:flex-start;gap:.6rem;width:100%;padding:.4rem 0;font:inherit;color:inherit;text-align:left;background:none;border:0;cursor:pointer}.call-open:hover .call-name{color:var(--accent)}.call-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sip-meta{margin:0 0 .75rem;font-size:.8rem;color:var(--muted);overflow-wrap:anywhere}.sip-meta:last-child{margin:.75rem 0 0}.sip-meta code{font-size:.75rem}.sip-flow{position:relative}.sip-lines,.sip-row{display:grid;grid-template-columns:3.6rem repeat(var(--sip-cols),minmax(0,1fr))}.sip-lines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.sip-lines span+span{border-left:1px dashed var(--line);margin-left:50%}.sip-head{position:sticky;top:0;z-index:2;background:var(--surface)}.sip-part{align-self:end;padding:.2rem .15rem .4rem;font-size:.75rem;font-weight:600;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sip-part small{display:block;font-size:.65rem;font-weight:400;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.sip-msg{position:relative;width:100%;padding:0;font:inherit;text-align:left;background:none;border:0;border-radius:var(--radius-control);cursor:pointer}.sip-msg:hover{background:var(--shadow-soft)}.sip-msg:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sip-time{align-self:end;padding-bottom:.1rem;font-size:.7rem;color:var(--muted);font-variant-numeric:tabular-nums}.sip-arrow{position:relative;height:1.7rem;margin-inline:calc(100% / (2 * var(--sip-span)))}.sip-arrow:before{content:"";position:absolute;left:0;right:0;bottom:.35rem;border-top:2px solid currentColor}.sip-right:after,.sip-left:after{content:"";position:absolute;bottom:calc(.35rem - 4px);border:5px solid transparent}.sip-right:after{right:-2px;border-right:0;border-left:8px solid currentColor}.sip-left:after{left:-2px;border-left:0;border-right:8px solid currentColor}.sip-label{position:absolute;left:0;right:0;bottom:.55rem;font-size:.75rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sip-msg{color:var(--sip-jambe, var(--accent))}.sip-provisoire .sip-arrow:before{border-top-style:dashed}.sip-provisoire .sip-label{opacity:.85}.sip-succes .sip-label{font-weight:700}.sip-erreur .sip-label,.sip-authentification .sip-label{font-weight:600}.sip-msg.sip-erreur{color:var(--danger)}.sip-msg.sip-authentification{color:var(--sip-auth)}.sip-part.sip-jambe-couleur{color:var(--sip-jambe)}.sip-legende{display:flex;flex-wrap:wrap;gap:.25rem .9rem;margin:0 0 .75rem;padding:0;list-style:none;font-size:.8rem}.sip-legende li{display:flex;align-items:center;gap:.35rem;min-width:0;color:var(--sip-jambe)}.sip-legende li:before{content:"";flex-shrink:0;width:.9rem;border-top:3px solid currentColor}.sip-raw{position:relative;z-index:1;max-height:20rem;margin:.25rem 0 .5rem;padding:.6rem;overflow:auto;font-size:.72rem;line-height:1.4;white-space:pre;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-control)}@media (min-width: 640px){.modal.modal-large{max-width:60rem}}.account-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.account-head h1{min-width:0;overflow-wrap:anywhere}.btn.btn-icon{flex-shrink:0;gap:.4rem}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:0}.stat{padding:.6rem .5rem;text-align:center;background:var(--bg);border-radius:var(--radius-control)}.stat dt{font-size:.8rem;color:var(--muted)}.stat dd{margin:.15rem 0 0;font-size:1.6rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.stat-entrants dd,.stat-sortants dd{color:var(--accent)}.stat-bloques dd{color:var(--danger)}.back-link{justify-self:start;font-size:.9rem;color:var(--accent);text-decoration:none}.back-link:hover{text-decoration:underline}.page-title{margin:.25rem 0 -.25rem;font-size:1.1rem}.panel p.pastilles{display:flex;flex-wrap:wrap;gap:.5rem;max-width:none;margin:1.1rem 0 0}.pastilles-perimees{opacity:.55}.poste-ip{align-self:center;font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}.poste-ip-ancienne{color:var(--muted)}.pastille{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .55rem;font-size:.72rem;font-weight:700;letter-spacing:.03em;color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-control);cursor:default}.pastille:before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:currentColor}.pastille-jauge{background-image:linear-gradient(to right,color-mix(in srgb,currentColor 22%,transparent) calc(var(--jauge) * 100%),transparent calc(var(--jauge) * 100%))}.pastille-ok{color:var(--sip-2);border-color:currentColor}.pastille-live{color:var(--on-accent);background:var(--accent);border-color:var(--accent);font-variant-numeric:tabular-nums}.pastille-live:before{animation:pulse 1.4s ease-in-out infinite}.pastille-off:before{background:transparent;box-shadow:inset 0 0 0 1.5px currentColor}.pastille-sonne{color:var(--warn);border-color:currentColor;background:color-mix(in srgb,currentColor 12%,transparent);font-variant-numeric:tabular-nums}.pastille-sonne:before{display:none}.cloche{flex:none;width:.8rem;height:.8rem;transform-origin:50% 10%;animation:cloche 1s ease-in-out infinite}@keyframes cloche{0%,50%,to{transform:rotate(0)}10%{transform:rotate(18deg)}20%{transform:rotate(-16deg)}30%{transform:rotate(12deg)}40%{transform:rotate(-8deg)}}@media (prefers-reduced-motion: reduce){.cloche{animation:none}}.pastille-inconnu{border-style:dashed}.pastille-inconnu:before{opacity:.35}.point{display:inline-block;flex:none;width:.7rem;height:.7rem;border-radius:50%;color:var(--muted);background:currentColor;cursor:default}.point-ok{color:var(--sip-2)}.point-live{color:var(--accent);animation:pulse 1.4s ease-in-out infinite}.point-sonne{display:inline-grid;place-items:center;width:.95rem;height:.95rem;color:var(--warn);background:none}.point-sonne .cloche{width:.95rem;height:.95rem}.point-off{background:transparent;box-shadow:inset 0 0 0 1.5px currentColor}.point-inconnu{background:transparent;border:1px dashed currentColor;opacity:.6}.sip-identifiants dl{display:grid;gap:.4rem;margin:0}.sip-identifiants dl>div{display:grid;gap:.1rem}.sip-identifiants dt{font-size:.85rem;color:var(--muted)}.sip-identifiants dd{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0}.sip-identifiants code{min-width:0;padding:.3rem .5rem;overflow-wrap:anywhere;font-size:.95rem;background:var(--bg);border-radius:var(--radius-control);-webkit-user-select:all;user-select:all}.panel p.field-hint,.modal p.field-hint{margin:.5rem 0 0;font-size:.85rem;color:var(--muted)}.client-list+.btn-add{margin-top:.75rem}.clients-anciens{display:block;margin-top:.75rem}.clients-anciens+.btn-add{margin-top:.5rem}.admin-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.tenant-ligne .sub code{font-size:.85rem}.admin-ajout{display:flex;align-items:flex-end;gap:.5rem;margin-top:.75rem}.admin-ajout .field{flex:1}.admin-ajout .btn{min-height:2.75rem}.field-check{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;font-size:.9rem}.field-check input{width:1.1rem;height:1.1rem;accent-color:var(--accent)}.page .panel h1 .client-etat,.panel h1 .client-etat{vertical-align:middle}.choix-abonnes{display:grid;gap:.1rem;max-height:40vh;margin:.75rem 0 0;padding:0;overflow-y:auto;border:0}.choix-abonnes legend{margin-bottom:.25rem;padding:0;font-size:.85rem;color:var(--muted)}.choix-abonnes .field-check{margin-top:.35rem}.choix-abonnes .sub{color:var(--muted);font-size:.85rem}.items .item-actions-wrap{flex-wrap:wrap;justify-content:flex-end}.trunk-resume{margin:.9rem 0 1rem}.encadre-erreur{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.6rem .75rem;margin:.25rem 0 .75rem;padding:.75rem .9rem;color:var(--ink);background:var(--danger-soft);border:1px solid var(--danger-line);border-left:3px solid var(--danger);border-radius:var(--radius-control)}.encadre-erreur-icone{flex-shrink:0;margin-top:.1rem;color:var(--danger)}.encadre-erreur-texte{flex:1 1 12rem;margin:0;font-size:.95rem;line-height:1.45}.panel .encadre-erreur-texte{margin:0}.encadre-erreur-action{flex-shrink:0;margin-left:auto}.transfert-choix{display:grid;gap:0;margin:.9rem 0 .25rem;padding:0;border:0}.transfert-choix legend{padding:0;font-size:.85rem;color:var(--muted)}.transfert-choix .field-check{margin-top:.4rem}.transfert-recap{display:grid;gap:.35rem;margin:1rem 0 0;padding:.7rem .9rem .7rem 1.9rem;background:var(--accent-soft);border-radius:var(--radius-control);font-size:.85rem}.client-etat-ancien{background:var(--accent-soft);border-color:transparent;color:var(--accent)}:root{--bg: #eef4fb;--surface: #ffffff;--ink: #1c2b3a;--muted: #5a6b7e;--line: #d5e2f0;--accent: #3a6ea5;--accent-hover: #2f5c8c;--accent-soft: #dce9f7;--accent-soft-hover: #cadcf1;--danger: #b3261e;--sip-1: #3a6ea5;--sip-2: #2a8577;--sip-3: #7556a8;--sip-4: #a8701c;--sip-auth: #687a91;--danger-soft: #fbeceb;--warn: #a8701c;--danger-line: #f0c9c6;--on-accent: #ffffff;--field: #ffffff;--shadow: rgba(28, 43, 58, .15);--shadow-soft: rgba(58, 110, 165, .06);--backdrop: rgba(28, 43, 58, .45);--radius: 6px;--radius-control: 4px;color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--surface);line-height:1.55;-webkit-text-size-adjust:100%}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0f1720;--surface: #17212c;--ink: #e3ebf3;--muted: #9aabbd;--line: #2a3a4b;--accent: #8fbbe8;--accent-hover: #a9cbef;--accent-soft: #1f3347;--accent-soft-hover: #284261;--danger: #f2867f;--sip-1: #8fbbe8;--sip-2: #6cc7b5;--sip-3: #b9a0e6;--sip-4: #e3b062;--sip-auth: #9fb0c4;--danger-soft: #3a1f1f;--warn: #e3b062;--danger-line: #5c2b2a;--on-accent: #0f1a26;--field: #0f1720;--shadow: rgba(0, 0, 0, .45);--shadow-soft: rgba(0, 0, 0, .25);--backdrop: rgba(0, 0, 0, .6);color-scheme:dark}}:root[data-theme=dark]{--bg: #0f1720;--surface: #17212c;--ink: #e3ebf3;--muted: #9aabbd;--line: #2a3a4b;--accent: #8fbbe8;--accent-hover: #a9cbef;--accent-soft: #1f3347;--accent-soft-hover: #284261;--danger: #f2867f;--sip-1: #8fbbe8;--sip-2: #6cc7b5;--sip-3: #b9a0e6;--sip-4: #e3b062;--sip-auth: #9fb0c4;--danger-soft: #3a1f1f;--warn: #e3b062;--danger-line: #5c2b2a;--on-accent: #0f1a26;--field: #0f1720;--shadow: rgba(0, 0, 0, .45);--shadow-soft: rgba(0, 0, 0, .25);--backdrop: rgba(0, 0, 0, .6);color-scheme:dark}*{box-sizing:border-box}body{margin:0}a{color:var(--accent)}.shell{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;padding-top:max(.5rem,env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--line)}.brand{margin-right:auto;font-weight:700;font-size:1.05rem;color:var(--accent);text-decoration:none}.btn.header-action{min-height:2rem;padding:.25rem .7rem;font-size:.85rem}.icon-btn{display:grid;place-items:center;flex-shrink:0;width:2.5rem;height:2.5rem;padding:0;color:var(--muted);background:none;border:1px solid transparent;border-radius:50%;cursor:pointer;-webkit-tap-highlight-color:transparent}.icon-btn:hover{color:var(--accent);background:var(--accent-soft)}.user-menu{position:relative}.avatar{display:grid;place-items:center;width:2.5rem;height:2.5rem;padding:0;font:inherit;font-size:.9rem;font-weight:700;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-soft-hover);border-radius:50%;cursor:pointer;-webkit-tap-highlight-color:transparent}.avatar:hover,.avatar[aria-expanded=true]{background:var(--accent-soft-hover)}.user-menu-list{position:absolute;top:calc(100% + .4rem);right:0;z-index:10;display:grid;min-width:12rem;padding:.35rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px var(--shadow)}.user-menu-name{margin:0 0 .25rem;padding:.4rem .75rem .5rem;font-size:.85rem;color:var(--muted);border-bottom:1px solid var(--line);overflow-wrap:anywhere}.user-menu-list a,.user-menu-list button{display:block;width:100%;min-height:2.75rem;padding:.6rem .75rem;font:inherit;text-align:left;color:var(--ink);text-decoration:none;background:none;border:0;border-radius:var(--radius-control);cursor:pointer}.user-menu-list a:hover,.user-menu-list button:hover{background:var(--bg)}.user-menu-list button{color:var(--danger)}.user-menu-list button.user-menu-install{color:var(--ink)}.user-menu-section{margin:.25rem 0 0;padding:.5rem .75rem .15rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-top:1px solid var(--line)}.user-menu-list button.user-menu-tenant{color:var(--ink)}.user-menu-list button.user-menu-tenant[aria-checked=true]{color:var(--accent);font-weight:600}.user-menu-tenants{display:grid;padding-bottom:.25rem;border-bottom:1px solid var(--line);margin-bottom:.25rem}.main{flex:1;display:grid;place-items:start center;align-content:start;padding:1rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}.main.main-admin{display:block;padding:0}.install-banner{display:flex;align-items:center;gap:.75rem;width:100%;max-width:34rem;margin-bottom:.75rem;padding:.6rem .4rem .6rem .75rem;background:var(--accent-soft);border:1px solid var(--accent-soft-hover);border-radius:var(--radius)}.install-banner img{flex:none;border-radius:10px}.install-banner p{flex:1;min-width:0;margin:0;font-size:.9rem;line-height:1.3;color:var(--ink)}.install-banner p strong,.install-banner p span{display:block}.install-banner p span{color:var(--muted)}.install-banner .btn{flex:none}.install-close{flex:none;width:2.25rem;height:2.25rem;padding:0;font-size:1.4rem;line-height:1;color:var(--muted);background:none;border:0;border-radius:50%;cursor:pointer}.install-close:hover{color:var(--ink);background:var(--accent-soft-hover)}.install-steps{margin:0;padding:0;list-style:none;display:grid;gap:1rem;counter-reset:etape}.install-steps li{position:relative;padding-left:2.25rem;line-height:1.55;counter-increment:etape}.install-steps li:before{content:counter(etape);position:absolute;top:0;left:0;display:grid;place-items:center;width:1.6rem;height:1.6rem;font-size:.85rem;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:50%}.modal-actions.install-actions{margin-top:1.25rem}.modal-actions.install-actions .btn{flex:0 0 auto}.share-icon{vertical-align:-3px;color:var(--accent)}.panel{width:100%;max-width:34rem;padding:1.1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px var(--shadow-soft)}.panel h1{margin:0 0 .75rem;font-size:1.4rem;line-height:1.2}.panel p{margin:0 0 1.25rem;color:var(--muted);max-width:60ch}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.55rem 1.1rem;font:inherit;font-weight:600;color:var(--on-accent);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-control);text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn:disabled{opacity:.6;cursor:progress}.btn-ghost{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-soft)}.btn-ghost:hover{background:var(--accent-soft-hover);border-color:var(--accent-soft-hover)}form>.btn{width:100%}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.facts{display:grid;grid-template-columns:1fr;gap:0;margin:0 0 1.5rem}.facts dt{color:var(--muted);font-size:.9rem}.facts dd{margin:0 0 .6rem;overflow-wrap:anywhere}.error{color:var(--danger)!important}.result{margin:1rem 0 0;padding:.85rem;overflow-x:auto;font-size:.85rem;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-control)}@media (min-width: 640px){.header{gap:1.25rem;padding:.65rem clamp(1rem,4vw,2.5rem)}.btn.header-action{min-height:2.25rem;padding:.35rem .9rem;font-size:.9rem}.main{padding:clamp(1.5rem,6vw,4rem) clamp(1rem,4vw,2.5rem)}.panel{padding:2rem}.panel h1{font-size:1.9rem}.btn{min-height:2.5rem}form>.btn{width:auto}.facts{grid-template-columns:max-content 1fr;gap:.4rem 1.25rem}.facts dt{font-size:inherit}.facts dd{margin:0}}.spinner{display:inline-block;flex-shrink:0;width:1.25rem;height:1.25rem;vertical-align:middle;border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:tourne .8s linear infinite}.loading-block{display:flex;justify-content:center;padding:1rem 0}.loading-line{display:flex;align-items:center;gap:.6rem}.skeleton{display:inline-block;max-width:100%;height:.9em;vertical-align:middle;background:var(--accent-soft);border-radius:var(--radius-control);animation:pulse 1.4s ease-in-out infinite}.btn-refresh{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;color:var(--accent);background:none;border:1px solid transparent;border-radius:var(--radius-control);cursor:pointer}.btn-refresh:hover{background:var(--accent-soft)}.btn-refresh:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-refresh:disabled{cursor:progress}.refresh-spinning{animation:tourne .8s linear infinite}@keyframes tourne{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@media (prefers-reduced-motion: reduce){.spinner,.refresh-spinning{animation-duration:2.4s}.skeleton{animation:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
