@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
:root{--accent:#655DCC;--ink:#1e2852;--muted:#858ba4;--bg:#f7f7fd;--panel:#fff;--border:#eceef6;--lav:#efedff;--green:#168c71;--red:#d65d6f;--shadow:0 8px 32px rgba(38,38,91,.047)}*{box-sizing:border-box}body{margin:0;font:14px/1.5 'DM Sans','Segoe UI',sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Plus Jakarta Sans','DM Sans',sans-serif;letter-spacing:-.6px}h1{font-size:27px;line-height:1.25}h2{font-size:16px;letter-spacing:-.2px}small,.small{font-size:11px}.muted{color:var(--muted)}.full{grid-column:1/-1}.shell{min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:238px;background:#fff;display:flex;flex-direction:column;border-right:1px solid var(--border);z-index:30}.logo-brand{display:flex;gap:10px;align-items:center;padding:28px 25px 25px;font-family:'Plus Jakarta Sans';font-size:19px;font-weight:800;letter-spacing:-.7px}.logo-brand b,.brandmark b{color:var(--accent)}.brand-icon{display:inline-flex;justify-content:center;align-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(145deg,#7870e5,#3f488b);color:#fff;font-size:25px;box-shadow:0 4px 13px #635dcf30}.sidebar-inner{overflow:auto;flex:1;padding:0 14px 18px}.nav-section{font-size:9px;letter-spacing:1.9px;font-weight:800;color:#adb0c2;margin:24px 11px 9px}.nav-link{display:flex;align-items:center;gap:12px;padding:10px 13px;color:#6c7290;border-radius:10px;margin:2px 0;font-weight:600;transition:.16s}.nav-ico{font-size:17px;width:20px;text-align:center;color:#999bb3}.nav-link:hover{background:#f7f7fc;color:var(--ink)}.nav-link.active{color:#fff;background:linear-gradient(110deg,var(--accent),#333e7a);box-shadow:0 5px 13px #5b51c024}.nav-link.active .nav-ico{color:#fff}.side-bottom{display:flex;align-items:center;gap:9px;padding:18px 16px;border-top:1px solid var(--border)}.profile-dot{width:35px;height:35px;display:grid;place-items:center;background:#dcdaf8;border-radius:50%;color:var(--accent);font-weight:800}.profile-text{display:flex;flex-direction:column;min-width:0}.profile-text strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-text span{font-size:10px;color:var(--muted)}.main-frame{margin-left:238px;min-height:100vh}.topbar{height:75px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.79)}.top-company{display:flex;gap:10px;align-items:center}.company-avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#e8e6ff;color:var(--accent);font-weight:800}.top-name{display:flex;flex-direction:column}.top-name strong{font-size:12px}.top-name span{color:var(--muted);font-size:10px}.top-right{display:flex;align-items:center;gap:20px}.date-chip{background:#f4f4fa;border-radius:9px;padding:7px 13px;color:#7b8198;font-size:11px}.online-dot{width:8px;height:8px;border-radius:100%;background:#24b18a;box-shadow:0 0 0 5px #d8f7ec}.signout{background:transparent;border:0;color:#717897;font-size:22px}.menu-btn{display:none;border:0;background:#f4f2fd;padding:8px 11px;border-radius:10px;color:var(--ink)}.content{max-width:1500px;padding:33px 36px 60px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading p{color:var(--muted);margin-top:6px;font-size:13px}.eyebrow{color:#9398b5;font-size:9px;letter-spacing:2px;font-weight:800;margin-bottom:9px}.button{border:0;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 17px;font-size:12px;font-weight:800;white-space:nowrap;transition:.18s}.button:hover{transform:translateY(-1px);filter:brightness(1.04)}.button.primary{background:linear-gradient(120deg,var(--accent),#444999);color:white;box-shadow:0 5px 15px #625ac423}.button.secondary{background:#efedff;color:var(--accent)}.button.dark{color:#fff;background:#242e61}.button.ghost{background:#f7f7fb;color:#626b89}.button.block{display:flex;width:100%;margin-top:10px}.button.large{padding:14px 20px}.panel{background:var(--panel);border:1px solid #f0f0f7;box-shadow:var(--shadow);border-radius:15px;padding:22px;margin-bottom:18px;min-width:0}.panel>h2{margin-bottom:18px}.panel>p{margin:10px 0}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat-card{background:white;padding:21px 19px;box-shadow:var(--shadow);border:1px solid #efeff7;border-radius:15px;min-width:0;display:flex;flex-direction:column}.stat-icon{background:var(--lav);height:36px;width:36px;display:grid;place-items:center;border-radius:12px;color:var(--accent);font-weight:900;font-size:20px;margin-bottom:16px}.stat-label{font-size:11px;color:#777f9b}.stat-card strong{font:800 22px/1.6 'Plus Jakarta Sans';white-space:nowrap;letter-spacing:-.8px}.stat-card small{color:#96a0b5}.dashboard-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}.section-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:19px}.section-head h2{margin:0}.section-head p{color:var(--muted);font-size:11px;margin-top:4px}.section-head>a,.link{color:var(--accent);font-size:12px;font-weight:700}.soft-tag{font-size:11px;color:#62619f;background:#f3f0ff;padding:6px 10px;border-radius:8px;white-space:nowrap}.chart-panel{height:298px}.chart-bars{height:200px;display:flex;gap:15px;align-items:end;border-bottom:1px solid #e9eaf5;background:repeating-linear-gradient(to top,#eff0f7 0px,#eff0f7 1px,transparent 1px,transparent 49px);padding:0 15px}.bar-col{height:100%;flex:1;display:flex;align-items:center;justify-content:end;flex-direction:column;position:relative;gap:5px}.bar-col>span{width:min(47px,70%);border-radius:8px 8px 0 0;background:linear-gradient(180deg,var(--accent),#b6b1f9);transition:.2s}.bar-col small{position:absolute;bottom:-24px;color:#a1a3bb}.chart-panel{margin-bottom:18px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-grid a{background:#f7f6ff;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px;color:#625cbd;font-size:20px;text-align:center}.quick-grid a span{font-size:11px;font-weight:700;color:var(--ink)}.tip-box{background:#f8f7fe;border-radius:11px;padding:14px;margin-top:18px}.tip-box strong{font-size:12px}.tip-box p{color:var(--muted);font-size:11px;margin:4px 0}.tip-box a{color:var(--accent);font-size:11px;font-weight:800}.table-wrap{overflow:auto;width:100%}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:10px;color:#959ab3;font-weight:700;background:#fafafe;padding:12px 12px;white-space:nowrap}td{padding:13px 12px;border-top:1px solid #f0f1f7;font-size:12px;vertical-align:middle;color:#616983}td b,td strong{color:var(--ink);font-weight:700}td small{display:block;color:#a0a4b6;font-size:10px;margin-top:3px}td .link{font-size:12px}.empty{text-align:center;color:#a5aac0;padding:35px}.status{display:inline-block;border-radius:8px;padding:5px 9px;font-size:10px;line-height:1.3;font-weight:700;background:#f1f1f6;color:#8e93a6;white-space:nowrap}.status.paid,.status.accepted,.status.delivered,.status.terminee{background:#e7f8f2;color:#14926d}.status.issued,.status.sent,.status.confirmed,.status.en_cours{background:#e9eeff;color:#5674be}.status.overdue,.status.rejected,.status.annulee{background:#fff0f2;color:#d35c71}.status.partial,.status.planifiee{background:#fff6e5;color:#ac7b24}.two-cols{display:grid;grid-template-columns:minmax(330px,.85fr) minmax(0,1.15fr);gap:18px;align-items:start}.two-cols .panel{margin-bottom:18px}.stack{display:flex;flex-direction:column;gap:15px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;color:#5b6382}input:not([type=checkbox]):not([type=color]),select,textarea{border:1px solid #e5e7f1;background:#fbfbfe;border-radius:9px;outline:0;width:100%;padding:10px 11px;color:var(--ink);min-height:40px;font-size:12px;transition:border .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #655dcc18}textarea{resize:vertical;min-height:60px}.section-line{border-top:1px solid #edf0f7;padding-top:17px;margin-top:9px;font-size:12px;font-weight:800;color:var(--ink)}.mini-btn{border:1px solid #e5e5f6;background:#f8f7ff;color:var(--accent);padding:7px 10px;border-radius:8px;font-size:10px;font-weight:700;display:inline-block}.search-field{max-width:185px}.doc-grid{display:grid;grid-template-columns:minmax(0,1fr) 305px;gap:18px;align-items:start}.doc-grid .panel{margin-bottom:18px}.sticky-panel{position:sticky;top:18px}.logo-placeholder{padding:19px;border:1px dashed #ddd9f5;border-radius:10px;background:#fbfaff;color:var(--accent);font-size:18px;font-weight:700;margin-bottom:22px}.logo-placeholder span{font-size:12px;color:var(--ink);margin-left:8px}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;font-size:12px;color:#80879f;border-bottom:1px solid #f1f2f6}.summary-row strong{color:var(--ink)}.grand-total{background:#f0eeff;padding:16px;margin:10px -7px 14px;border-radius:9px;color:var(--ink);font-weight:800}.grand-total strong{font-size:18px;color:var(--accent)}.help-note{margin-top:16px;padding:13px;border-radius:9px;background:#f9f9fd;color:#8b8fa7;font-size:11px}.lines-table td{padding:8px 5px;vertical-align:top}.lines-table th{padding:11px 7px}.lines-table td input,.lines-table td select{min-width:70px;padding:8px;font-size:11px}.lines-table .line-title{margin-top:6px}.lines-table .line-desc{margin-top:6px;font-size:10px}.lines-table .line-total{white-space:nowrap;font-weight:800;color:var(--ink);padding-top:23px}.remove-line{border:0;background:#fff1f3;border-radius:8px;padding:7px 12px;color:#d65d6f;font-size:17px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.detail-grid>div{display:flex;flex-direction:column;gap:4px}.detail-grid strong{font-size:12px}.status-form{margin-top:10px}.brand-preview{display:flex;gap:13px;align-items:center;padding:15px;background:#f8f8fd;border-radius:11px;margin:18px 0}.preview-box{display:grid;place-items:center;color:white;border-radius:10px;width:42px;height:42px;font-size:18px;font-weight:800}.brand-preview div{display:flex;flex-direction:column}.brand-preview small{color:#9499ad}.settings-logo{max-width:160px;max-height:85px;object-fit:contain}.color-input{width:78px!important;height:45px!important;background:transparent!important;border:0!important;cursor:pointer;padding:0!important}.checkboxline{display:flex;flex-direction:row;align-items:center;font-size:12px}.checkboxline input{width:17px;height:17px}.permission-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.permission-grid label{flex-direction:row;font-size:11px}.export-grid{display:flex;flex-wrap:wrap;gap:11px;margin-top:20px}.positive-text{color:#168c71!important}.danger-text{color:#cb566c!important}.small-select{min-width:120px!important}.alert{padding:13px 15px;margin:0 0 17px;background:#e8f8f3;border:1px solid #d6efe6;border-radius:10px;color:#147b62;font-size:12px}.alert.error{background:#fff1f3;color:#bc5066;border-color:#ffe0e6}.auth-body{min-height:100vh;background:radial-gradient(ellipse at 20% 10%,#dcd9f7 0,transparent 48%),radial-gradient(ellipse at 80% 95%,#e7eafa 0,transparent 46%),#f7f6fd;display:grid;place-items:center;padding:20px}.auth-card{width:min(440px,100%);background:#fff;padding:35px;box-shadow:0 18px 80px #31346a17;border-radius:20px}.auth-card.wide{width:min(700px,100%)}.auth-card .brandmark{font-family:'Plus Jakarta Sans';font-size:20px;font-weight:800;display:flex;align-items:center;gap:10px}.auth-card h1{font-size:24px;margin:26px 0 6px}.auth-card>p{margin-bottom:24px}.auth-illustration{height:145px;background:linear-gradient(120deg,#f4f1ff,#e8e6fc);border-radius:15px;margin:26px 0 8px;padding:22px 31px}.auth-illustration>span{font-size:38px;color:var(--accent)}.illusbar{height:10px;background:#cbc8eb;border-radius:5px;margin:7px 0;width:65%}.illusbar.short{width:40%;background:#9993d5}.login-footer{text-align:center;font-size:11px;color:#afb1c1;margin:24px 0 0!important}.auth-card .button{width:100%;justify-content:space-between}.auth-card .button span{font-size:17px}.auth-card small{display:block;margin-top:12px;color:var(--muted)}@media(max-width:1220px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:25px}.two-cols{grid-template-columns:1fr}.doc-grid{grid-template-columns:1fr 280px}}@media(max-width:870px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:translateX(0);box-shadow:0 20px 35px #3333}.main-frame{margin:0}.menu-btn{display:block}.topbar{padding:0 18px}.content{padding:19px}.dashboard-grid{grid-template-columns:1fr}.doc-grid{grid-template-columns:1fr}.sticky-panel{position:static}}@media(max-width:540px){.topbar{height:63px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:23px}.page-heading .button{width:100%}.content{padding:15px}.stats-grid{gap:9px}.stat-card{padding:14px 12px}.stat-card strong{font-size:16px}.stat-icon{margin-bottom:10px}.panel{padding:16px}.form-grid{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}.date-chip{display:none}.two-cols{grid-template-columns:minmax(0,1fr)}.top-right{gap:10px}}

/* V2: Tenant brand image and invoice detail sidebar (non-sticky, no overlay of payment form). */
.company-logo-top{width:35px;height:35px;border-radius:11px;object-fit:contain;background:#fff;border:1px solid var(--border);padding:3px;flex-shrink:0}
.preview-logo{width:42px;height:42px;border-radius:10px;object-fit:contain;background:white;border:1px solid #e9e9f4;padding:3px;flex-shrink:0}
.document-brand-logo{width:70px;max-height:56px;object-fit:contain;flex-shrink:0}
.logo-placeholder{display:flex;gap:9px;align-items:center;flex-wrap:wrap;min-width:0}
.logo-placeholder>span{margin-left:0}
.document-sidebar{display:flex;flex-direction:column;gap:18px;min-width:0;align-self:start;position:static}
.document-sidebar>.panel{position:static!important;margin-bottom:0;min-width:0}
.document-sidebar .action-panel{z-index:auto}
@media(max-width:870px){.document-sidebar{width:100%}}
/* SaaS 2.3 — subscription plans and tenant-specific license cards */
.plans-layout{grid-template-columns:minmax(310px,.8fr) minmax(0,1.2fr)}
.plan-list{display:grid;gap:14px}.plan-item,.company-sub-card{border:1px solid #e9eafa;border-radius:13px;background:linear-gradient(140deg,#fff,#faf9ff);padding:18px}.plan-item-head,.plan-item-foot,.company-sub-head{display:flex;justify-content:space-between;align-items:flex-start;gap:13px}.plan-item-head strong{font-size:15px;color:var(--ink)}.plan-item-head small{display:block;margin-top:5px;color:var(--muted)}.plan-metrics{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0;font-size:11px;color:#68718c}.plan-metrics span{padding:8px 11px;background:#f0effb;border-radius:9px}.plan-metrics strong{color:var(--accent)}.plan-item-foot{align-items:center}.subscription-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:15px}.company-sub-card h3{font-size:16px}.sub-details{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.sub-details>div{background:#f4f3fe;border-radius:10px;padding:12px 10px;min-width:0}.sub-details span,.sub-details strong{display:block}.sub-details span{font-size:10px;color:#8187a5}.sub-details strong{font-size:13px;margin-top:5px}.sub-assign-form{border-top:1px solid #e8e9f4;padding-top:16px}.sub-assign-form .button{margin-top:16px}.subscription-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid #e9e6fb;border-left:4px solid var(--accent);padding:13px 17px;margin-bottom:20px;border-radius:11px}.subscription-banner strong,.subscription-banner small{display:block}.subscription-banner strong{font-size:12px}.subscription-banner small{font-size:11px;color:var(--muted);margin-top:4px}
@media(max-width:1100px){.plans-layout{grid-template-columns:1fr}}@media(max-width:550px){.subscription-grid{grid-template-columns:1fr}.company-sub-head{flex-direction:column}.sub-details{grid-template-columns:1fr 1fr}.subscription-banner{flex-wrap:wrap}}

/* Lavnely V2.4 · SaaS owner branding; tenant document branding remains independent. */
.logo-brand{padding:15px 18px 13px;min-height:100px;align-items:center;justify-content:flex-start;overflow:hidden}
.logo-brand .lavnely-wordmark{display:block;width:100%;max-width:202px;height:78px;object-fit:contain;object-position:left center}
.brandmark{display:flex;align-items:center;min-height:54px}
.brandmark .lavnely-wordmark{display:block;width:210px;max-width:100%;height:auto;object-fit:contain}
.lavnely-auth-graphic{width:74px;height:74px;object-fit:contain;display:block;margin-bottom:10px}
.auth-illustration{background:linear-gradient(120deg,#f8f4ff,#ede8ff)}
@media(max-width:540px){.logo-brand{min-height:80px;padding:10px 16px}.logo-brand .lavnely-wordmark{height:61px}}

/* Lavnely V3 — commandes provenant du site vitrine */
.store-filter{display:flex;align-items:flex-end;flex-wrap:wrap;gap:14px;margin:14px 0 21px}
.store-filter label{min-width:190px;flex:1}.store-filter .button{height:40px}
.store-order-detail{margin-top:18px}
.store-order-facts{display:grid;gap:13px;margin-bottom:25px}
.store-order-facts>div{display:grid;grid-template-columns:130px minmax(0,1fr);border-bottom:1px solid #f1eff7;padding-bottom:11px;gap:15px}
.store-order-facts span{color:#9292aa;font-size:11px}.store-order-facts strong{font-size:12px;overflow-wrap:anywhere;white-space:pre-wrap}
@media(max-width:580px){.store-order-facts>div{grid-template-columns:1fr;gap:4px}}
