/* Webizy — compléments de l'application (au-dessus de styles-base.css et mobile.css, design d'origine conservé).
   Les styles calculés passent par JavaScript (data-accent, data-bg, data-w, data-h) : aucun attribut style. */

/* ---------- cadre réel (la maquette simulait un écran dans un cadre) ---------- */
.app{min-height:100vh}
.sidebar{position:fixed;overflow-y:auto;scrollbar-width:none}
.workspace-switch{text-align:left;width:calc(100% - 10px)}
.workspace-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand-custom-logo{width:42px;height:42px;object-fit:contain;border-radius:8px}
.brand-logo{color:var(--brand-accent,#d3efaa)}
.boot{min-height:100vh;display:grid;place-items:center;align-content:center;gap:18px;color:#6f8a58;font-size:13px;background:var(--paper)}
.boot .brand-logo{width:64px;height:64px;color:#7e9d5f}
body.modal-open{overflow:hidden}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.muted-light{color:#b0bba3;font-weight:400}
.flush{margin-top:0}
.inline-link{color:#5d7b44;text-decoration:underline}
code{font-family:Consolas,monospace;font-size:.92em;background:#eef2e7;padding:1px 5px;border-radius:4px;overflow-wrap:anywhere}
a.button{text-decoration:none}

/* ---------- annonces et alertes ---------- */
.announcement{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 32px;background:#f1f6e8;border-bottom:1px solid var(--line);font-size:11px;color:#55703f}
.announcement .icon{width:15px;height:15px}
.notice{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 16px;border:1px solid #d9e6c8;background:#f4f9ec;border-radius:9px;margin:0 0 16px;font-size:11px;color:#4f6a3a;line-height:1.7}
.notice>span{flex:1;min-width:200px}
.notice.warn{border-color:#ecdcb8;background:#fbf6ea;color:#7a6234}
.notice .icon{width:17px;height:17px;flex-shrink:0}
.form-error{color:#9b3b2a;background:#fbefec;border:1px solid #f0d3cc;border-radius:7px;padding:10px 12px;font-size:12px;line-height:1.6}
.hint.warn{color:#8a6a2c}
.dev-note{border:1px dashed #c9d6b7;padding:10px;border-radius:7px}
#toast.error{background:#5b2a21}
.dot.dirty,.dot.saving{background:#d1a64a}
.dot.offline,.dot.error,.dot.conflict{background:#c2553f}

/* ---------- navigation (liens à la place des boutons de la maquette) ---------- */
.tabs-row a.tab-link{font-size:11px;padding:0 1px 13px;color:#98a28b;border-bottom:2px solid transparent;white-space:nowrap}
.tabs-row a.tab-link.active{color:#456132;border-color:#709449;font-weight:600}
.tabs-note{margin-left:auto;font-size:10px;color:#98a28b;padding-bottom:13px}
.mobile-menu-grid>a{display:flex;gap:13px;align-items:center;text-align:left;padding:12px;border:1px solid #e3e9d9;border-radius:9px;background:#fff;min-height:64px}
.mobile-menu-grid>a>.icon:first-child{color:#7f9a61;width:22px;height:22px}
.mobile-menu-grid>a>.icon:last-child{margin-left:auto;width:14px;height:14px;color:#a0b18d}
@media(max-width:680px){
  .mobile-bottom-nav a{min-height:47px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:5px 0;border-radius:8px;color:#a4b598;font-size:9px}
  .mobile-bottom-nav a.active{color:#ddf6be;background:#34472a}
  .announcement{padding:10px 17px}
  .tabs-row a.tab-link{font-size:12px;min-height:40px}
  .tabs-note{display:none}
}

/* ---------- atelier ---------- */
.canvas-tools{display:flex;align-items:center;gap:8px}
.preview-shell{width:100%;position:relative}
.preview-shell.desktop{max-width:1200px}
.preview-shell.tablet{max-width:620px}
.preview-shell.mobile{max-width:390px}
.preview-viewport{position:relative;overflow:hidden;background:#fcfaf5;min-height:240px}
.preview-frame{border:0;display:block;transform-origin:0 0;background:#fff;position:absolute;left:0;top:0}
.proposal-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px;background:#273424;color:#e4f2d2;font-size:11px}
.proposal-bar>span{flex:1;min-width:160px;display:flex;gap:6px;align-items:center}
.proposal-bar .icon{width:16px;height:16px;color:#c8e8a0}
.chat-meta{margin-top:8px;font-size:9px;color:#93a282;letter-spacing:.3px}
.typing{display:inline-flex;gap:4px}
.typing i{width:6px;height:6px;border-radius:50%;background:#9fbb83;animation:blink 1.2s infinite}
.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.send:disabled,.icon-button:disabled,.button:disabled{opacity:.45;cursor:not-allowed}
.layer{justify-content:space-between;gap:4px;padding:4px 4px 4px 7px}
.layer-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0;text-align:left;font-size:inherit;color:inherit;padding:5px 0}
.layer-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.layer-tools{display:flex;gap:1px;flex-shrink:0}
.layer-tools .icon-button,.item-actions .icon-button{width:24px;height:24px;min-width:24px;min-height:24px}
.layer-tools .icon,.item-actions .icon{width:13px;height:13px}
details.field-group>summary{cursor:pointer;list-style-position:outside}
details.field-group[open]>summary{margin-bottom:6px}
.field-group select.input,.field-group .input{width:100%}
.check{display:flex;gap:8px;align-items:flex-start;font-size:11px;line-height:1.6;margin:10px 0;color:#5f6d55}
.check input{margin-top:3px;accent-color:#6c8f43}
.color-row{display:flex;gap:10px;margin:12px 0 4px;flex-wrap:wrap}
.color-row label{display:flex;flex-direction:column;gap:4px;font-size:10px;color:#788570}
.color-row input[type=color],.color-input{width:52px;height:34px;border:1px solid #e1e8d7;border-radius:6px;background:#fff;padding:2px}
.image-field{display:flex;gap:10px;align-items:center;margin:4px 0 6px}
.image-field img,.image-empty{width:64px;height:48px;object-fit:cover;border-radius:6px;background:#eef1e8;display:grid;place-items:center;color:#9aab89;flex-shrink:0}
.image-field>div{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.item-editor{border:1px solid #e6ebdc;border-radius:7px;margin:6px 0;background:#fff}
.item-editor>summary{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:7px 8px;font-size:10px;cursor:pointer;color:#5f6d55}
.item-editor[open]>summary{border-bottom:1px solid #eef1e6}
.item-editor>label,.item-editor>input,.item-editor>textarea,.item-editor>select,.item-editor>.image-field,.item-editor>p,.item-editor>.check{margin-left:8px;margin-right:8px;width:calc(100% - 16px)}
.item-editor>*:last-child{margin-bottom:8px}
.item-actions{display:flex;gap:1px}
.code-tabs{display:flex;gap:4px;padding:0 13px 10px}
.code-tabs button{font-size:10px;padding:6px 10px;border-radius:6px;color:#7d8b72;border:1px solid transparent}
.code-tabs button.active{background:#eaf1df;color:#456132;border-color:#d7e3c6}
.code-body{display:flex;flex-direction:column;flex:1}
.code-edit{width:calc(100% - 26px);resize:vertical;border:0;outline-offset:2px;min-height:360px}
.code-actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px 13px 0}
.seo-score .muted-light{font-weight:400}
@media(max-width:680px){
  .code-edit{font-size:12px;min-height:300px}
  .layer-tools .icon-button,.item-actions .icon-button{width:36px;height:36px;min-width:36px;min-height:36px}
  .preview-shell.mobile,.preview-shell.tablet,.preview-shell.desktop{max-width:100%}
}

/* ---------- formulaires génériques ---------- */
.inline-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.inline-row .input{flex:1;min-width:150px}
.inline-form{margin-top:18px}
.text-link.inline{display:inline;font-size:inherit;padding:0}
.small-num{width:84px;display:inline-block}
.small-select{min-width:140px;padding:6px 8px}
.unit-field{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;color:#6f7c64}
.unit-field .input{width:84px}
.key-form,.discount-form,.approve-form,.setting-form{display:inline-flex;gap:6px;align-items:center}
.key-form .input{width:150px;padding:6px 8px}
.test-row{flex-direction:column;align-items:flex-start}
.test-row small{font-size:10px;line-height:1.6}
.test-row small.ok{color:#4f7a32}.test-row small.ko{color:#a24a37}
.provider-editor{display:grid;gap:14px}
.provider-editor legend{font-weight:600;font-size:13px;padding:0 6px}
.provider-editor fieldset{border:1px solid var(--line)}
fieldset.choice{border:0;padding:0;margin:0}
.health-row.danger span{color:#9b3b2a}
.metrics.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.dns-box{display:grid;gap:8px;font-size:11px;line-height:1.8;background:#f6f8f2;border:1px solid var(--line);border-radius:8px;padding:12px;margin:8px 0}
.recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
.recovery-codes code{font-size:14px;text-align:center;padding:8px}
.qr{display:flex;justify-content:center;margin:6px 0 14px}
.qr svg{width:200px;height:200px;border-radius:8px;border:1px solid var(--line)}

/* ---------- médias ---------- */
button.media-tile{padding:0;text-align:left;display:block;width:100%;cursor:pointer}
.media-grid.picker{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.media-preview{max-width:100%;max-height:240px;border-radius:9px;margin:0 auto 16px;display:block}
.upload-inline{margin-bottom:14px}

/* ---------- devis, livraison ---------- */
.quote-controls select.input{width:auto;min-width:120px}
.quote-sep{margin-top:22px}
.publish-card{margin:16px 0}
.publish-card h3{display:flex;align-items:center;gap:8px}
.adminizy-actions,.domain-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.domain-results{gap:8px}
.domain-results>div{line-height:1.8}
.result-available>.icon{color:#5f8f3b}
.result-registered>.icon{color:#b25a43}
.pay-card{max-width:560px}
.model-option.current{border-color:#a9c58a;background:#f3f8ec}
.page-row{display:flex;align-items:center;gap:6px}
.page-open{display:flex;gap:12px;align-items:center;flex:1;text-align:left;min-width:0}
.seo-ok>span>.icon{color:#5f8f3b}.seo-warn>span>.icon{color:#c39436}.seo-error>span>.icon{color:#b25a43}
.health-row>span{display:flex;gap:8px;align-items:flex-start}
.credit-balance .unit{font-size:15px;letter-spacing:0}
.accent-art{background:color-mix(in srgb,var(--accent,#9d6c4a) 30%,#e8e2d6)}
.accent-art:after{background:var(--accent,#8a9c7a);opacity:.85}
.mini-preview[data-accent]{background:color-mix(in srgb,var(--accent,#9d6c4a) 12%,#efe9df)}

/* ---------- authentification ---------- */
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(300px,440px) minmax(0,1fr);background:var(--paper)}
.auth-side{background:var(--dark);color:#a0aa9d;padding:36px 34px;display:flex;flex-direction:column;gap:40px}
.auth-side .brand{padding:0}
.auth-pitch h1{font-family:Manrope,sans-serif;font-size:34px;line-height:1.2;letter-spacing:-1.4px;color:#f2f6ec;margin:14px 0 26px;font-weight:700}
.auth-pitch h1 em{font-family:var(--serif);font-weight:400;color:#d3efaa}
.auth-pitch .eyebrow{color:#a5bf8d}
.auth-pitch ul{list-style:none;padding:0;margin:0;display:grid;gap:16px}
.auth-pitch li{display:flex;gap:12px;font-size:12px;line-height:1.7;color:#c5cfbd}
.auth-pitch li .icon{color:#d3efaa}
.auth-foot{margin-top:auto;font-size:10px;display:flex;gap:8px;align-items:center;color:#7f8b78}
.auth-foot .icon{width:14px;height:14px}
.auth-main{display:grid;place-items:center;padding:30px 20px}
.auth-card{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px;box-shadow:0 20px 50px #24301b0d}
.auth-card h2{font-family:Manrope,sans-serif;font-size:24px;letter-spacing:-.8px;margin:0 0 8px}
.auth-form{display:grid;gap:4px;margin-top:16px}
.auth-form .label{margin-top:10px}
.auth-form .button{margin-top:16px;min-height:44px;font-size:12px}
.auth-switch{font-size:11px;color:#7b8177;margin-top:18px;text-align:center}
@media(max-width:820px){
  .auth{grid-template-columns:1fr}
  .auth-side{padding:24px 20px;gap:22px}
  .auth-pitch h1{font-size:26px}
  .auth-pitch ul,.auth-foot{display:none}
  .auth-card{padding:22px}
  .auth-form .input{font-size:16px;min-height:45px}
}
