:root{--ink:#1d1d1f;--muted:#6e6e73;--line:rgba(0,0,0,.075);--canvas:#f5f5f7;--surface:rgba(255,255,255,.86);--blue:#0071e3;--blue-soft:#e8f2ff;--green:#248a3d;--green-soft:#e8f6ec;--amber:#a05a00;--amber-soft:#fff5df;--red:#d70015;--red-soft:#ffebed;--shadow:0 18px 60px rgba(0,0,0,.08);--radius:18px;--font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Inter,system-ui,sans-serif}
*{box-sizing:border-box}html{background:var(--canvas)}body{margin:0;color:var(--ink);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 75% 8%,#ddecff 0,transparent 34%),radial-gradient(circle at 10% 95%,#f2e9ff 0,transparent 30%),var(--canvas)}
.login-card{width:min(440px,100%);padding:40px;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.95);border-radius:28px;box-shadow:var(--shadow);backdrop-filter:blur(28px)}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.02em}.brand-mark{width:32px;height:32px;display:grid;place-items:center;background:var(--ink);color:#fff;border-radius:10px;font-size:15px;overflow:hidden}.brand-mark.has-logo{width:42px;background:transparent;border-radius:7px}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}.login-card h1{font-size:34px;letter-spacing:-.045em;margin:34px 0 8px}.login-card>p{color:var(--muted);line-height:1.5;margin:0 0 28px}
.field{display:grid;gap:7px;margin-bottom:14px}.field label{font-size:12px;font-weight:650;color:#4c4c50}.input,.select,.textarea{width:100%;border:1px solid rgba(0,0,0,.12);border-radius:12px;background:rgba(255,255,255,.84);padding:11px 13px;outline:none;color:var(--ink);transition:.18s}.input:focus,.select:focus,.textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,113,227,.1)}.textarea{min-height:92px;resize:vertical}.btn{border:0;border-radius:12px;padding:10px 15px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 7px 20px rgba(0,113,227,.2)}.btn-secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn-dark{background:var(--ink);color:#fff}.btn-danger{background:var(--red-soft);color:var(--red)}.btn-wide{width:100%}.btn-sm{padding:7px 10px;border-radius:9px;font-size:12px}.login-foot{display:flex;justify-content:center;margin-top:18px;font-size:12px;color:var(--muted)}
.app{min-height:100vh;display:grid;grid-template-columns:244px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:24px 16px;background:rgba(255,255,255,.72);border-right:1px solid var(--line);backdrop-filter:blur(24px);display:flex;flex-direction:column}.sidebar .brand{padding:0 10px 24px}.nav-label{padding:16px 12px 7px;color:#929297;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.nav-item{width:100%;border:0;background:transparent;border-radius:10px;padding:9px 11px;text-align:left;color:#55555a;display:flex;align-items:center;gap:10px;margin:1px 0}.nav-item:hover{background:rgba(0,0,0,.035)}.nav-item.active{background:#fff;color:var(--ink);box-shadow:0 3px 14px rgba(0,0,0,.055);font-weight:650}.nav-icon{width:20px;text-align:center}.sidebar-bottom{margin-top:auto;padding:14px 9px 2px}.user-chip{display:flex;gap:10px;align-items:center}.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(145deg,#262629,#76767b);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:750}.user-meta{min-width:0;flex:1}.user-meta strong,.user-meta span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta strong{font-size:12px}.user-meta span{font-size:10px;color:var(--muted);margin-top:2px}
.logout-link{width:100%;margin-top:10px;padding:8px 10px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:11px;text-align:left;display:flex;align-items:center;gap:7px}.logout-link:hover{background:var(--red-soft);color:var(--red)}
.main{min-width:0}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid var(--line);background:rgba(245,245,247,.76);backdrop-filter:blur(18px);position:sticky;top:0;z-index:15}.topbar h2{font-size:17px;margin:0;letter-spacing:-.02em}.top-actions{display:flex;gap:9px;align-items:center}.content{padding:34px;max-width:1440px;margin:auto}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:8px}.hero h1{font-size:34px;line-height:1.07;letter-spacing:-.045em;margin:0}.hero p{margin:9px 0 0;color:var(--muted);line-height:1.5}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.metric{background:var(--surface);border:1px solid rgba(255,255,255,.95);border-radius:var(--radius);padding:20px;box-shadow:0 8px 30px rgba(0,0,0,.035)}.metric-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.metric-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue)}.metric-value{font-size:30px;font-weight:700;letter-spacing:-.045em;margin:13px 0 4px}.metric-note{font-size:11px;color:var(--muted)}
.grid-2{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:16px}.card{background:var(--surface);border:1px solid rgba(255,255,255,.95);border-radius:var(--radius);box-shadow:0 8px 30px rgba(0,0,0,.035);overflow:hidden}.card-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.card-head h3{font-size:14px;margin:0}.card-body{padding:18px 20px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th{padding:11px 14px;color:#8a8a8f;font-size:10px;text-transform:uppercase;letter-spacing:.06em;text-align:left;border-bottom:1px solid var(--line)}.table td{padding:14px;border-bottom:1px solid var(--line);white-space:nowrap}.table tr:last-child td{border-bottom:0}.table tbody tr{transition:.14s}.table tbody tr:hover{background:rgba(0,0,0,.018)}.title-cell strong,.title-cell span{display:block}.title-cell span{color:var(--muted);font-size:11px;margin-top:3px}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:700}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.green{background:var(--green-soft);color:var(--green)}.badge.blue{background:var(--blue-soft);color:var(--blue)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.gray{background:#eeeef0;color:#717177}.list{display:grid}.list-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border:0}.list-main{min-width:0;flex:1}.list-main strong,.list-main span{display:block}.list-main strong{font-size:13px}.list-main span{font-size:11px;color:var(--muted);margin-top:4px}.progress{height:5px;border-radius:99px;background:#e8e8eb;overflow:hidden;margin-top:8px}.progress i{display:block;height:100%;background:var(--blue);border-radius:99px}.switch{position:relative;width:38px;height:23px;display:inline-block}.switch input{display:none}.switch span{position:absolute;inset:0;background:#d1d1d6;border-radius:99px;transition:.2s}.switch span:after{content:"";position:absolute;width:19px;height:19px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:.2s}.switch input:checked+span{background:var(--green)}.switch input:checked+span:after{transform:translateX(15px)}
.page{display:none}.page.active{display:block}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px}.search{position:relative;flex:1}.search .input{padding-left:38px;background:rgba(255,255,255,.7)}.search:before{content:"⌕";position:absolute;left:14px;top:9px;color:var(--muted);font-size:17px}.empty{padding:48px 20px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-size:16px;margin-bottom:6px}.notice{padding:13px 15px;border-radius:12px;background:var(--blue-soft);color:#125b9f;font-size:12px;line-height:1.5;margin-bottom:16px}.notice.private{background:#f1eef9;color:#59428c}.dot-menu{border:0;background:transparent;font-size:18px;color:var(--muted)}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.22);backdrop-filter:blur(8px);display:none;place-items:center;padding:20px;z-index:50}.modal-backdrop.open{display:grid}.modal{width:min(520px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.22)}.modal-head{padding:21px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0;font-size:18px;letter-spacing:-.025em}.modal-body{padding:22px}.modal-actions{padding:16px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.full{grid-column:1/-1}.toast{position:fixed;right:24px;bottom:24px;background:rgba(29,29,31,.94);color:#fff;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow);transform:translateY(30px);opacity:0;pointer-events:none;transition:.25s;z-index:90}.toast.show{transform:none;opacity:1}
.portal-shell{min-height:100vh;background:#f7f7f8}.portal-top{height:70px;background:rgba(255,255,255,.78);backdrop-filter:blur(22px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1120px)/2));position:sticky;top:0;z-index:10}.portal-main{max-width:1120px;margin:auto;padding:44px 24px 70px}.portal-welcome{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}.portal-welcome h1{font-size:38px;letter-spacing:-.05em;margin:0 0 7px}.portal-welcome p{color:var(--muted);margin:0}.project-hero{background:linear-gradient(135deg,#151518,#3b3b42);color:#fff;padding:28px;border-radius:24px;margin-bottom:18px;box-shadow:0 18px 50px rgba(0,0,0,.15)}.project-hero .badge{background:rgba(255,255,255,.13);color:#fff}.project-hero h2{font-size:27px;letter-spacing:-.035em;margin:16px 0 8px}.project-hero p{color:#c7c7cc;margin:0}.timeline{display:flex;gap:0;padding:8px 0}.timeline-step{position:relative;flex:1;padding-top:25px;color:var(--muted);font-size:11px}.timeline-step:before{content:"";position:absolute;top:7px;left:0;right:0;height:2px;background:#dedee2}.timeline-step:after{content:"";position:absolute;top:2px;left:0;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #c7c7cc}.timeline-step.done:before{background:var(--green)}.timeline-step.done:after{background:var(--green);border-color:var(--green)}.timeline-step.active:after{background:var(--blue);border-color:var(--blue);box-shadow:0 0 0 5px rgba(0,113,227,.12)}.file-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.file-card{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.file-icon{width:38px;height:38px;display:grid;place-items:center;background:var(--blue-soft);border-radius:10px;margin-bottom:15px}.file-card strong,.file-card small{display:block}.file-card small{color:var(--muted);margin-top:5px}.file-actions{display:flex;gap:7px;margin-top:14px}
.card-subtitle{margin:4px 0 0;color:var(--muted);font-size:11px}.hero-date{color:var(--muted);font-size:12px;text-transform:capitalize}.metric-money{font-size:24px}.metrics-3{grid-template-columns:repeat(3,minmax(0,1fr))}.progress-label{color:var(--muted);font-size:11px;font-weight:700}.list-button{width:100%;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer}.compact-empty{padding:22px 8px}.search.compact{max-width:280px}.amount{font-weight:750;text-align:right}.amount.negative{color:var(--red)}
.task-list{display:grid}.task-row{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line)}.task-row:last-child{border:0}.task-row.done{opacity:.48}.task-row.done strong{text-decoration:line-through}.task-check{width:21px;height:21px;border:1.5px solid #c8c8cd;border-radius:7px;background:#fff;flex:0 0 auto;position:relative}.task-check:hover{border-color:var(--blue)}.task-check.checked{background:var(--green);border-color:var(--green)}.task-check.checked:after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:800}.task-copy{min-width:0;flex:1}.task-copy strong,.task-copy span{display:block}.task-copy span{font-size:11px;color:var(--muted);margin-top:3px}.task-row time{font-size:11px;color:var(--muted)}
.site-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.site-card{background:var(--surface);border:1px solid rgba(255,255,255,.95);border-radius:var(--radius);padding:20px;box-shadow:0 8px 30px rgba(0,0,0,.035)}.site-card-top{display:flex;align-items:center;gap:11px}.site-favicon{width:38px;height:38px;border-radius:11px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-weight:800}.site-title{min-width:0;flex:1}.site-title strong,.site-title span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-title span{font-size:11px;color:var(--muted);margin-top:3px}.site-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.site-stats div{padding:12px;background:rgba(0,0,0,.025);border-radius:12px}.site-stats span,.site-stats strong{display:block}.site-stats span{font-size:10px;color:var(--muted);margin-bottom:6px}.site-stats strong{font-size:15px}.site-meta{display:flex;gap:16px;color:var(--muted);font-size:11px}.site-error{margin-top:13px;padding:10px 12px;border-radius:10px;background:var(--red-soft);color:var(--red);font-size:11px}.site-actions{display:flex;justify-content:flex-end;margin-top:15px}
.modal-large{width:min(920px,100%)}.project-detail-head{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.project-detail-head div{padding:13px;background:var(--canvas);border-radius:12px}.project-detail-head span,.project-detail-head strong{display:block}.project-detail-head span{font-size:10px;color:var(--muted);margin-bottom:5px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-grid section,.detail-files{border:1px solid var(--line);border-radius:14px;padding:16px}.detail-grid h4,.detail-files h4{margin:0 0 12px;font-size:13px}.detail-files{margin-top:18px}.step-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.step-row:last-child{border:0}.step-row span{width:23px;height:23px;border-radius:50%;background:#eeeef0;display:grid;place-items:center;font-size:10px}.step-row.done span{background:var(--green-soft);color:var(--green)}.step-row.done strong{color:var(--muted)}.file-mini-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.file-mini{display:flex;align-items:center;gap:9px;padding:10px;background:var(--canvas);border-radius:11px;min-width:0}.file-mini-icon{width:28px;height:28px;border-radius:8px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;flex:0 0 auto}.file-mini div{min-width:0}.file-mini strong,.file-mini span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-mini strong{font-size:11px}.file-mini span{font-size:9px;color:var(--muted);margin-top:3px}
.password-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.password-row .input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}.field-help{display:block;color:var(--muted);font-size:11px;line-height:1.4;margin-top:2px}.check-row{display:flex;align-items:center;gap:9px!important;font-size:13px!important;cursor:pointer}.check-row input{width:17px;height:17px;accent-color:var(--blue)}
.agency-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:24px}.agency-summary div{padding:14px;background:var(--canvas);border-radius:13px;min-width:0}.agency-summary span,.agency-summary strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agency-summary span{font-size:10px;color:var(--muted);margin-bottom:5px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 12px}.section-heading h4{margin:0;font-size:15px}.section-heading p{margin:5px 0 0;color:var(--muted);font-size:11px}.account-table{border:1px solid var(--line);border-radius:14px}.row-actions{display:flex;justify-content:flex-end;gap:7px}
.confirm-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.26);backdrop-filter:blur(9px);display:none;place-items:center;padding:20px;z-index:80}.confirm-backdrop.open{display:grid}.confirm-card{width:min(420px,100%);background:#fff;border-radius:20px;box-shadow:0 30px 90px rgba(0,0,0,.24);padding:24px}.confirm-card h3{margin:0 0 9px;font-size:19px}.confirm-card p{margin:0;color:var(--muted);line-height:1.55}.confirm-card .modal-actions{padding:22px 0 0;border:0}
.avatar img,.avatar.has-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}.avatar-large{width:72px;height:72px;font-size:20px;flex:0 0 auto}.profile-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.75fr);gap:26px}.profile-photo{display:flex;align-items:center;gap:16px;margin-bottom:22px}.profile-photo>div{display:flex;gap:7px;flex-wrap:wrap}.profile-security{padding:20px;background:var(--canvas);border-radius:16px;align-self:start}.profile-security h4{margin:0 0 6px;font-size:15px}.profile-security>p{margin:0 0 18px;color:var(--muted);font-size:11px;line-height:1.45}
.profile-logout{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.profile-logout span{color:var(--muted);font-size:10px;line-height:1.4}
.mobile-profile-button{display:none}
.plans-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.plan-card{background:var(--surface);border:1px solid rgba(255,255,255,.95);border-radius:var(--radius);box-shadow:0 8px 30px rgba(0,0,0,.035);padding:21px;display:flex;flex-direction:column;min-height:390px}.plan-card.archived{opacity:.6}.plan-top{display:flex;justify-content:space-between;gap:10px}.plan-top h3{font-size:22px;letter-spacing:-.035em;margin:4px 0}.plan-code{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);font-weight:800}.plan-card>p{color:var(--muted);line-height:1.45;min-height:40px}.plan-price{display:flex;align-items:baseline;gap:5px;margin:12px 0 18px}.plan-price strong{font-size:29px;letter-spacing:-.04em}.plan-price span{color:var(--muted);font-size:11px}.plan-limits{display:grid;grid-template-columns:1fr 1fr;gap:7px}.plan-limits span{padding:9px;background:var(--canvas);border-radius:9px;font-size:10px;color:#55555a}.plan-card ul{list-style:none;padding:0;margin:18px 0;display:grid;gap:8px}.plan-card li{font-size:11px;color:#4c4c50}.plan-card li:before{content:"✓";color:var(--green);font-weight:800;margin-right:8px}.plan-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}.plan-footer>span{font-size:10px;color:var(--muted)}.plan-footer>div{display:flex;gap:6px}.subscriptions-list{margin-top:8px}
.branding-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:16px;margin-bottom:16px}.branding-grid .card{display:flex;flex-direction:column}.branding-grid form{display:flex;flex-direction:column;flex:1}.branding-grid .modal-actions{margin-top:auto}.color-input{height:43px;padding:5px}.asset-picker{display:flex;align-items:center;gap:14px;padding:13px;background:var(--canvas);border-radius:14px}.asset-preview{width:68px;height:68px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;font-size:22px;font-weight:800;overflow:hidden;flex:0 0 auto}.asset-preview img{width:100%;height:100%;object-fit:contain}.asset-picker>div:nth-child(2){min-width:0;flex:1}.asset-picker input{max-width:100%;font-size:11px}.announcements-card{margin-top:16px}
.platform-notices{display:grid;gap:9px;margin-bottom:18px}.platform-notice{display:flex;gap:12px;align-items:flex-start;padding:15px 17px;border-radius:14px;background:linear-gradient(135deg,var(--blue-soft),#fff);border:1px solid rgba(0,113,227,.09)}.platform-notice-icon{width:28px;height:28px;border-radius:9px;background:var(--blue);color:#fff;display:grid;place-items:center;flex:0 0 auto}.platform-notice-copy{min-width:0;flex:1}.platform-notice-copy strong,.platform-notice-copy span{display:block}.platform-notice-copy span{color:var(--muted);font-size:12px;line-height:1.45;margin-top:4px}.platform-notice time{font-size:10px;color:var(--muted);white-space:nowrap}
.metrics-5{grid-template-columns:repeat(5,minmax(0,1fr))}.metrics-5 .metric-note{min-height:15px}.avatar{overflow:hidden}.profile-photo>div{align-items:center}.profile-photo .field-help{flex-basis:100%;max-width:320px}
.promo-price{display:block;font-weight:750}.promo-price s{color:var(--muted);font-weight:500;margin-right:4px}.promo-label{display:inline-flex;margin-top:4px;padding:3px 6px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:9px;font-weight:800}.mini-usage{min-width:112px}.mini-usage>span{display:block;color:var(--muted);font-size:10px}.mini-usage .progress{margin-top:6px}
.agency-usage>strong{display:block;font-size:11px;margin-bottom:7px}.agency-usage .mini-usage{max-width:150px}.subscription-cell>strong{display:block;font-size:12px;margin-bottom:7px}.subscription-cell>div{display:flex;align-items:center;gap:7px}.subscription-cell .promo-price{font-size:11px}.subscription-cell .promo-label{margin-top:0}
.subscription-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.subscription-overview>div{padding:15px;background:var(--canvas);border-radius:14px;min-width:0}.subscription-overview>div>span{display:block;color:var(--muted);font-size:10px;margin-bottom:7px}.subscription-overview strong{font-size:13px}.detail-price{white-space:nowrap}.detail-price s{color:var(--muted);font-size:11px;margin-right:5px}.promotion-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid rgba(52,199,89,.15);border-radius:14px;background:var(--green-soft);margin-bottom:22px}.promotion-banner.inactive{background:var(--canvas);border-color:var(--line)}.promotion-banner strong,.promotion-banner span{display:block}.promotion-banner>div>span{color:var(--muted);font-size:11px;margin-top:4px}.usage-heading{margin-top:6px}.usage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.usage-card{padding:16px;border:1px solid var(--line);border-radius:15px;background:#fff}.usage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.usage-head>div>span,.usage-head>div>strong{display:block}.usage-head>div>span{color:var(--muted);font-size:10px;margin-bottom:5px}.usage-head>div>strong{font-size:15px}.usage-head small{color:var(--muted);font-size:10px;font-weight:500}.custom-limit{padding:4px 7px;border-radius:999px;background:var(--blue-soft);color:var(--blue);font-size:9px;font-weight:750}.usage-track{height:7px;border-radius:99px;background:#e8e8eb;overflow:hidden;margin:16px 0 8px}.usage-track i{display:block;height:100%;border-radius:inherit;background:var(--blue)}.usage-track.unlimited i{background:linear-gradient(90deg,var(--blue),#7dc2ff);opacity:.45}.usage-foot{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:10px}.usage-foot strong{color:var(--amber)}
.subscription-section{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.subscription-section>div:first-child{margin-bottom:14px}.subscription-section h4{margin:0;font-size:14px}.subscription-section p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
@media(max-width:1180px){.metrics-5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.metrics{grid-template-columns:repeat(2,1fr)}.grid-2,.branding-grid{grid-template-columns:1fr}.plans-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app{grid-template-columns:76px 1fr}.sidebar{padding:20px 10px}.sidebar .brand span,.nav-item span:not(.nav-icon),.nav-label,.sidebar-bottom .user-meta{display:none}.sidebar .brand{padding-inline:12px}.nav-item{justify-content:center}.file-grid{grid-template-columns:repeat(2,1fr)}.site-grid{grid-template-columns:1fr}.subscription-overview{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.app{display:block}.sidebar{height:auto;position:fixed;inset:auto 12px 12px;z-index:30;border:1px solid var(--line);border-radius:18px;padding:8px;display:flex;flex-direction:row;box-shadow:var(--shadow);overflow-x:auto}.sidebar .brand,.nav-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;width:max-content;min-width:100%;justify-content:space-around}.nav-item{width:auto;margin:0}.content{padding:24px 16px 100px}.topbar{padding:0 18px}.topbar .btn-secondary{display:none}.hero{align-items:flex-start;flex-direction:column}.hero h1{font-size:29px}.metrics,.metrics-3,.metrics-5{grid-template-columns:1fr 1fr}.metric{padding:16px}.metric-value{font-size:24px}.form-grid,.detail-grid,.project-detail-head,.agency-summary,.profile-layout,.plans-grid,.usage-grid,.subscription-overview{grid-template-columns:1fr}.file-grid,.file-mini-grid{grid-template-columns:1fr}.portal-main{padding:30px 16px}.portal-welcome{align-items:flex-start;flex-direction:column;gap:16px}.portal-welcome h1{font-size:31px}.section-heading{align-items:flex-start}.password-row{grid-template-columns:1fr}.row-actions{white-space:normal}.asset-picker{align-items:flex-start;flex-wrap:wrap}.plan-card{min-height:0}}
@media(max-width:680px){.topbar .mobile-profile-button{display:inline-flex}}
@media(min-width:681px) and (max-width:980px){.logout-link{justify-content:center;font-size:0;padding-inline:0}.logout-link span{font-size:14px}}

/* Suite agence */
.global-search{width:min(260px,24vw);position:relative}.global-search .input{height:36px;padding:8px 12px;background:rgba(255,255,255,.72)}.search-results{position:absolute;top:43px;right:0;width:340px;max-height:420px;overflow:auto;padding:7px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:15px;box-shadow:0 18px 60px rgba(0,0,0,.14);backdrop-filter:blur(20px);z-index:60}.search-results button{display:block;width:100%;border:0;background:transparent;border-radius:10px;padding:10px;text-align:left;color:var(--ink)}.search-results button:hover{background:var(--canvas)}.search-results strong,.search-results span{display:block}.search-results span{margin-top:3px;color:var(--muted);font-size:10px}.icon-button{position:relative;width:36px;height:36px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font-size:17px}.notification-count{position:absolute;right:-5px;top:-6px;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border-radius:99px;background:var(--red);color:#fff;border:2px solid var(--canvas);font-size:9px;font-weight:800}
.quick-actions{display:flex;gap:9px;flex-wrap:wrap;margin:-12px 0 22px}.quick-action{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:rgba(255,255,255,.76);padding:8px 12px;border-radius:11px;color:var(--ink);font-size:11px;font-weight:650}.quick-action span{color:var(--blue);font-weight:800}.quick-action:hover{background:#fff;transform:translateY(-1px)}
.grid-dashboard{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:16px}.top-gap{margin-top:16px}.top-gap-small{margin-top:10px}.revenue-chart{height:170px;display:flex;align-items:flex-end;gap:12px;padding:12px 4px 0}.chart-column{height:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px}.chart-column span{font-size:9px;color:var(--muted);white-space:nowrap}.chart-column i{width:min(34px,75%);min-height:4px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,var(--blue),#80bfff)}.chart-column small{text-transform:capitalize;color:var(--muted);font-size:10px}.hero-actions{display:flex;gap:9px;flex-wrap:wrap}.filter-select{width:auto;min-width:180px}.segmented{display:inline-flex;padding:3px;border-radius:11px;background:#e9e9ec}.segmented button{border:0;background:transparent;border-radius:8px;padding:7px 11px;font-size:11px;color:var(--muted)}.segmented button.active{background:#fff;color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.08);font-weight:650}.inline-progress{display:flex;align-items:center;gap:8px;min-width:120px}.inline-progress .progress{width:80px;margin:0}.inline-progress span{font-size:10px;color:var(--muted)}.priority-dot{width:8px;height:8px;border-radius:50%;background:#a9a9ae;flex:0 0 auto}.priority-dot.high{background:var(--amber)}.priority-dot.urgent{background:var(--red)}.priority-dot.low{background:var(--green)}.muted-small{font-size:10px;color:var(--muted)}
.calendar-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:14px}.calendar-toolbar h3{font-size:15px;min-width:170px;margin:0;text-align:center;text-transform:capitalize}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.55fr);gap:16px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekday{padding:12px 8px;color:var(--muted);font-size:10px;font-weight:700;text-align:center;border-bottom:1px solid var(--line)}.calendar-day{min-height:105px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.25)}.calendar-day:nth-child(7n){border-right:0}.calendar-day>strong{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:11px}.calendar-day.today>strong{background:var(--blue);color:#fff}.calendar-day.muted{background:rgba(0,0,0,.012)}.calendar-event{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;border-radius:6px;background:var(--blue-soft);color:var(--blue);padding:4px 5px;margin-top:4px;text-align:left;font-size:9px}.calendar-event.livraison{background:var(--green-soft);color:var(--green)}.calendar-event.feedback{background:var(--amber-soft);color:var(--amber)}.calendar-date-chip{width:38px;height:42px;border-radius:10px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;line-height:1}.calendar-date-chip strong{font-size:15px}.calendar-date-chip small{font-size:8px;text-transform:uppercase}
.metrics-4{grid-template-columns:repeat(4,minmax(0,1fr))}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settings-save{grid-column:1/-1;display:flex;justify-content:flex-end}.modal-xlarge{width:min(1120px,100%)}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.detail-summary>div{padding:14px;background:var(--canvas);border-radius:13px}.detail-summary span,.detail-summary strong,.detail-summary small{display:block}.detail-summary span{color:var(--muted);font-size:10px;margin-bottom:5px}.detail-summary small{color:var(--muted);font-size:10px;margin-top:4px}.project-tabs{display:grid;grid-template-columns:1fr 1fr;gap:15px}.detail-section{border:1px solid var(--line);border-radius:15px;padding:16px;min-width:0}.detail-section h4{margin:0 0 13px;font-size:13px}.timeline-phase{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:9px}.timeline-phase-head{display:grid;grid-template-columns:1fr auto auto;gap:7px;align-items:center;margin-bottom:7px}.timeline-phase-head>.input{font-weight:700}.timeline-step-edit{display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:center;margin:5px 0}.timeline-step-edit input[type=checkbox]{width:17px;height:17px;accent-color:var(--green)}.timeline-step-edit .input{padding:8px 10px}.check-stack{display:grid;gap:10px;margin:13px 0}.comments-list{display:grid;gap:9px;max-height:360px;overflow:auto;margin-bottom:18px}.comment{padding:11px 13px;border-radius:12px;background:var(--canvas)}.comment.client{background:var(--blue-soft)}.comment strong,.comment small{font-size:10px}.comment p{margin:5px 0;line-height:1.45}.comment small{color:var(--muted)}.notification-list{display:grid;gap:8px}.notification-item{display:flex;gap:11px;padding:12px;border:1px solid var(--line);border-radius:12px;opacity:.65}.notification-item.unread{opacity:1;background:var(--blue-soft);border-color:transparent}.notification-item strong,.notification-item small{display:block}.notification-item strong{font-size:12px;line-height:1.4}.notification-item small{font-size:10px;color:var(--muted);margin-top:4px}
@media(max-width:1100px){.grid-dashboard,.calendar-layout{grid-template-columns:1fr}.global-search{display:none}.project-tabs{grid-template-columns:1fr}.detail-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.quick-actions{display:grid;grid-template-columns:1fr 1fr}.calendar-day{min-height:70px;padding:4px}.calendar-event{font-size:0;height:6px;padding:0}.settings-grid,.project-tabs,.detail-summary{grid-template-columns:1fr}.metrics-4{grid-template-columns:1fr 1fr}.hero-actions{width:100%}.hero-actions .btn{flex:1}.calendar-grid{min-width:620px}.calendar-layout .card:first-child{overflow:auto}.filter-select{min-width:130px}.toolbar{align-items:stretch;flex-direction:column}.segmented{overflow:auto}.modal-xlarge{width:100%}}

/* Portail client */
.portal-login-card{width:min(470px,calc(100vw - 32px));padding:34px}.portal-login-card>.eyebrow{margin-top:30px}.portal-login-card h1{margin-top:10px}.portal-project-switch{display:flex;align-items:center;gap:9px;min-width:260px}.portal-project-switch label{color:var(--muted);font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.portal-project-switch .select{height:38px;padding:7px 32px 7px 11px}.portal-project-hero{display:flex;align-items:center;justify-content:space-between;gap:24px}.portal-project-hero>div:first-child{min-width:0}.project-hero-progress{text-align:right;flex:0 0 auto}.project-hero-progress strong,.project-hero-progress span{display:block}.project-hero-progress strong{font-size:40px;letter-spacing:-.05em}.project-hero-progress span{margin-top:3px;color:#c7c7cc;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.portal-metrics{margin-bottom:18px}.metric-date{font-size:22px;line-height:1.2}.portal-grid{grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);align-items:start}.portal-grid>aside{display:grid;gap:16px}.portal-card{margin-bottom:16px}.portal-progress{height:7px;margin:0 0 22px}.compact-select{width:auto;min-width:120px;height:35px;padding:6px 30px 6px 10px}.portal-phases{display:grid;gap:10px}.portal-phase{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fff}.portal-phase-index{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eeeef0;color:var(--muted);font-size:11px;font-weight:800}.portal-phase.done .portal-phase-index{background:var(--green-soft);color:var(--green)}.portal-phase.active{border-color:rgba(0,113,227,.2);background:linear-gradient(135deg,var(--blue-soft),#fff)}.portal-phase.active .portal-phase-index{background:var(--blue);color:#fff}.portal-phase strong,.portal-phase span{display:block}.portal-phase strong{font-size:13px}.portal-phase span{margin-top:3px;color:var(--muted);font-size:10px}.portal-step-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.portal-step-list small{padding:5px 7px;border-radius:8px;background:var(--canvas);color:var(--muted);font-size:9px}.portal-step-list small.done{background:var(--green-soft);color:var(--green)}.portal-file-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-file-card{border:1px solid var(--line);text-align:left;color:var(--ink);cursor:pointer;transition:.18s}.portal-file-card:hover{transform:translateY(-2px);border-color:rgba(0,113,227,.2);box-shadow:0 12px 30px rgba(0,0,0,.06)}.file-card-top{display:flex;align-items:flex-start;justify-content:space-between}.file-card-top .file-icon{margin-bottom:15px}.file-card-foot{display:flex;justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:9px}.next-step-card{display:flex;align-items:flex-start;gap:12px}.next-step-card>div{min-width:0}.next-step-card strong,.next-step-card span{display:block}.next-step-card strong{font-size:13px;line-height:1.35}.next-step-card span{margin-top:5px;color:var(--muted);font-size:10px}.portal-file-summary{display:flex;align-items:center;gap:12px;padding:14px;background:var(--canvas);border-radius:14px;margin-bottom:15px}.portal-file-summary .file-icon{margin:0;flex:0 0 auto}.portal-file-summary>div:nth-child(2){min-width:0;flex:1}.portal-file-summary strong,.portal-file-summary span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-file-summary span{margin-top:4px;color:var(--muted);font-size:10px}.portal-comments{margin-top:16px}.portal-validation{margin-top:16px;background:var(--canvas)}.portal-validation p{color:var(--muted);font-size:11px;line-height:1.5}.validation-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:11px}.brand-mark.has-logo img{width:100%;height:100%;object-fit:contain;border-radius:inherit}
@media(max-width:900px){.portal-top{height:auto;min-height:70px;padding:12px 18px;flex-wrap:wrap;gap:10px}.portal-project-switch{order:3;width:100%}.portal-project-switch .select{flex:1}.portal-grid{grid-template-columns:1fr}.portal-main{padding-top:30px}}
@media(max-width:680px){.portal-top .top-actions .badge,.portal-top .top-actions [data-client-logout]{display:none}.portal-top .brand{font-size:13px}.portal-project-hero{align-items:flex-end}.project-hero-progress strong{font-size:30px}.portal-metrics{grid-template-columns:1fr 1fr}.portal-metrics .metric:last-child{grid-column:1/-1}.portal-file-grid{grid-template-columns:1fr}.validation-actions{align-items:stretch;flex-direction:column-reverse}.portal-card .card-head{align-items:flex-start}.compact-select{min-width:100px}}

/* Espace client-centrique, portail visuel et collaboration */
.task-progress-cell{display:flex;align-items:center;gap:9px}.task-progress-cell small{color:var(--muted)}.task-progress-ring{--task-progress:0deg;width:42px;height:42px;border-radius:50%;display:inline-grid;place-items:center;flex:0 0 auto;font-size:10px;font-weight:800;background:radial-gradient(circle at center,var(--surface) 58%,transparent 60%),conic-gradient(var(--blue) var(--task-progress),var(--line) 0)}
.task-kanban{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:14px;align-items:start;overflow-x:auto}.kanban-column{min-height:280px;padding:12px;border:1px solid var(--line);border-radius:18px;background:var(--canvas)}.kanban-head{display:flex;justify-content:space-between;align-items:center;padding:4px 5px 12px}.kanban-column .task-row{display:grid;grid-template-columns:auto 1fr auto;margin-bottom:9px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.kanban-column .task-row time,.kanban-column .task-row .priority-dot{display:none}.task-calendar-list{display:grid;gap:16px}.task-date-group>time{display:block;margin-bottom:8px;font-size:12px;font-weight:750;color:var(--muted)}
.collaboration-layout{display:grid;grid-template-columns:minmax(250px,.7fr) minmax(360px,1.4fr);gap:18px}.channel-messages{display:grid;gap:12px;max-height:480px;overflow:auto}.channel-message{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--canvas)}.channel-message p{margin:6px 0;white-space:pre-wrap}.channel-message small{color:var(--muted)}.channel-compose{margin-top:16px;display:flex;gap:10px;align-items:end}.knowledge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.knowledge-card{text-align:left;color:inherit}.knowledge-card p{min-height:52px;color:var(--muted)}
.portal-builder{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:24px}.portal-section-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;margin:7px 0;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.portal-builder-preview{--preview-accent:var(--blue);min-height:470px;padding:28px;border:1px solid color-mix(in srgb,var(--preview-accent) 35%,var(--line));border-radius:28px;background:linear-gradient(145deg,color-mix(in srgb,var(--preview-accent) 8%,white),var(--surface));position:sticky;top:12px}.portal-builder-preview h3{font-size:28px;margin:12px 0 6px}.portal-builder-preview p{color:var(--muted)}.portal-preview-modules{display:grid;gap:9px;margin-top:28px}.portal-preview-modules div{display:flex;gap:10px;align-items:center;padding:14px;border-radius:15px;background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:0 5px 18px rgba(0,0,0,.04)}.portal-preview-modules span{color:var(--preview-accent)}.portal-link-box{display:flex;gap:8px;margin-top:16px}.portal-link-box .input{font-size:12px}.portal-builder-actions{padding-inline:0;flex-wrap:wrap}.brand-live-preview{--preview-accent:var(--blue);display:flex;align-items:center;gap:14px;margin-top:18px;padding:18px;border:1px solid color-mix(in srgb,var(--preview-accent) 35%,var(--line));border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--preview-accent) 8%,white),var(--surface))}.brand-live-preview small{display:block;color:var(--muted);margin-top:3px}.brand-live-preview .brand-mark{background:var(--preview-accent)}.color-input{height:44px;padding:5px}
.portal-link-state{display:grid;grid-template-columns:44px 1fr;gap:2px 12px;align-items:center;margin:22px 0;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--canvas)}.portal-link-icon{grid-row:1/3;width:44px;height:44px;border-radius:13px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:800}.portal-link-state small{color:var(--muted)}.portal-projects-overview{margin-bottom:18px}.portal-project-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.portal-project-item{text-align:left;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:inherit;cursor:pointer}.portal-project-item.active{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.portal-project-item strong,.portal-project-item small{display:block;margin-top:9px}.portal-project-item small{color:var(--muted)}.portal-project-item b{display:block;text-align:right;margin-top:6px;font-size:11px}.portal-project-item .progress{margin-top:12px}
body[data-dashboard-density="compact"] .card-body{padding:14px}body[data-dashboard-density="compact"] .content{padding-top:20px}body[data-dashboard-layout="compact"] .metric{padding:16px}body[data-dashboard-font="rounded"]{--font:ui-rounded,"SF Pro Rounded",-apple-system,BlinkMacSystemFont,sans-serif}body[data-dashboard-font="editorial"]{--font:Georgia,"Times New Roman",serif}body[data-dashboard-theme="dark"]{--canvas:#111214;--surface:#191a1d;--ink:#f5f5f7;--muted:#a1a1a8;--line:#303136;color-scheme:dark}body[data-dashboard-theme="dark"] .sidebar{background:#141518}body[data-dashboard-theme="dark"] input,body[data-dashboard-theme="dark"] textarea,body[data-dashboard-theme="dark"] select{color:#f5f5f7}body[data-portal-layout="compact"] .portal-card .card-body{padding:14px}body[data-portal-layout="editorial"] .portal-main{max-width:1180px}body[data-portal-layout="editorial"] .portal-welcome h1{font-family:Georgia,serif}
@media(max-width:900px){.task-kanban{grid-template-columns:repeat(4,260px)}.collaboration-layout,.portal-builder{grid-template-columns:1fr}.portal-builder-preview{position:static;min-height:auto}.knowledge-grid,.portal-project-list{grid-template-columns:1fr}.channel-compose{flex-direction:column;align-items:stretch}}

/* Modules plateforme, menu agence et portail éditorial */
.service-switches{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:22px}.service-switch{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--canvas)}.service-switch strong,.service-switch small{display:block}.service-switch small{margin-top:3px;color:var(--muted);font-size:10px}.service-switch .switch i{display:block;width:36px;height:21px;border-radius:99px;background:#c8c8cc;position:relative;transition:.2s}.service-switch .switch i:after{content:"";position:absolute;width:17px;height:17px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0003;transition:.2s}.service-switch input{position:absolute;opacity:0}.service-switch input:checked+i{background:var(--blue)}.service-switch input:checked+i:after{transform:translateX(15px)}
.agency-sidebar-brand{display:grid!important;justify-items:center;gap:9px;text-align:center}.agency-sidebar-brand .brand-mark{width:100%;height:54px;background:transparent}.agency-sidebar-brand .brand-mark img{object-fit:contain}.agency-sidebar-brand #brand-name{font-size:12px}.saas-credit{display:flex;align-items:center;gap:8px;padding:10px;text-decoration:none;color:var(--muted);border-top:1px solid var(--line)}.saas-credit>span{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:var(--ink);color:#fff;font-size:9px;overflow:hidden}.saas-credit img{width:100%;height:100%;object-fit:contain}.saas-credit small{font-size:9px}.nav-section-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px}.workload-row{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.workload-row>div:first-child{display:flex;justify-content:space-between;gap:12px}.workload-row span{color:var(--muted);font-size:10px}.rich-toolbar{display:flex;gap:6px;padding:7px;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;background:var(--canvas)}.rich-toolbar button{border:0;border-radius:7px;background:#fff;padding:6px 9px}.rich-editor{min-height:280px;padding:16px;border:1px solid var(--line);border-radius:0 0 12px 12px;background:#fff;line-height:1.65;outline:none}.traffic-bars{height:110px;display:flex;align-items:flex-end;gap:3px;margin-top:14px}.traffic-bars i{flex:1;min-width:3px;border-radius:5px 5px 2px 2px;background:linear-gradient(var(--blue),#9dcbff)}.site-chart-summary{display:flex;justify-content:space-between;margin-top:12px}.site-periods{display:flex;gap:6px;margin-top:12px}.private-row{background:linear-gradient(90deg,rgba(29,29,31,.035),transparent)}.calendar-event.task{background:#f2ebff;color:#7040aa}.calendar-event.deadline{background:var(--amber-soft);color:var(--amber)}
.portal-double-brand{display:flex;align-items:center;gap:14px}.portal-brand-separator{width:1px;height:34px;background:var(--line)}.client-brand{display:flex;align-items:center;gap:8px}.client-mark{background:#fff;color:var(--ink);border:1px solid var(--line)}.legacy-section{display:grid;grid-template-columns:72px 1fr;gap:22px;padding:42px 0;border-top:1px solid var(--line)}.legacy-section-number{font-size:12px;font-weight:800;color:var(--blue);letter-spacing:.12em;padding-top:5px}.legacy-section-content{min-width:0}.legacy-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.legacy-section-head span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800}.legacy-section-head h2{margin:6px 0 0;font-size:28px;letter-spacing:-.035em}.legacy-section-head>strong{font-size:34px;letter-spacing:-.05em}.portal-phases-horizontal{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));position:relative}.portal-phases-horizontal:before{content:"";position:absolute;left:5%;right:5%;top:29px;height:1px;background:var(--line);z-index:0}.portal-phases-horizontal .portal-phase{position:relative;z-index:1;grid-template-columns:34px 1fr}.portal-summary-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.portal-summary-strip>div{padding:16px;border-radius:14px;background:var(--canvas)}.portal-summary-strip strong,.portal-summary-strip span{display:block}.portal-summary-strip strong{font-size:21px}.portal-summary-strip span{margin-top:4px;color:var(--muted);font-size:10px}.portal-traffic-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0}.portal-traffic-kpis>div{padding:16px;border-radius:14px;background:var(--canvas)}.portal-traffic-kpis span,.portal-traffic-kpis strong{display:block}.portal-traffic-kpis span{color:var(--muted);font-size:10px}.portal-traffic-kpis strong{margin-top:6px;font-size:24px}.portal-traffic-chart{height:170px;display:flex;align-items:flex-end;gap:4px;padding:16px;border:1px solid var(--line);border-radius:16px}.portal-traffic-chart i{flex:1;min-width:4px;border-radius:6px 6px 2px 2px;background:linear-gradient(var(--blue),#9dcbff)}.portal-bottom-grid{margin-top:20px}.portal-footer{padding:28px;text-align:center;border-top:1px solid var(--line)}.portal-footer a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--muted);font-size:10px}.portal-footer-logo{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:var(--ink);color:#fff;overflow:hidden}.portal-footer img{width:100%;height:100%;object-fit:contain}
body[data-dashboard-density="compact"] .table td{padding-block:7px}body[data-dashboard-density="compact"] .nav-item{padding-block:6px}body[data-dashboard-layout="focus"] .content{max-width:1180px;margin-inline:auto}body[data-dashboard-layout="compact"] .card{border-radius:12px}body[data-dashboard-layout="compact"] .content{padding-inline:24px}
@media(max-width:900px){.legacy-section{grid-template-columns:1fr;gap:8px}.portal-phases-horizontal,.service-switches{grid-template-columns:1fr}.portal-phases-horizontal:before{display:none}.portal-traffic-kpis{grid-template-columns:1fr 1fr}.portal-double-brand{width:100%}.client-brand strong{display:none}}
@media(max-width:680px){.portal-summary-strip{grid-template-columns:1fr}.legacy-section-head{flex-direction:column}.legacy-section-head h2{font-size:23px}.nav-section-picker{grid-template-columns:1fr}.saas-credit{display:none}}

/* Stabilisation des modales et de la navigation mobile. */
.modal-backdrop{overflow-y:auto;align-items:flex-start;padding:clamp(16px,5vh,48px) 16px}
.modal-backdrop>.modal{margin:auto}
.mobile-profile-button{display:none}
.portal-section-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.portal-sections-flow{display:grid;gap:24px}
.portal-sections-flow>.portal-bottom-grid:empty{display:none}
.portal-validation-list,.portal-finance-list,.portal-knowledge-list{display:grid;gap:10px}
.portal-knowledge-item{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.portal-knowledge-item h4{margin:0 0 8px}.portal-knowledge-item .rich-content{color:var(--muted);line-height:1.65}.portal-knowledge-item .rich-content>:first-child{margin-top:0}.portal-knowledge-item .rich-content>:last-child{margin-bottom:0}
.input-compact{min-height:34px;padding:6px 9px;font-size:12px}
.portal-section-empty{padding:18px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}
@media(max-width:680px){
  .topbar .mobile-profile-button{display:inline-flex}
  .topbar .top-actions{gap:8px}
  .topbar .mobile-profile-button{font-size:0;width:42px;padding:0;justify-content:center}
  .topbar .mobile-profile-button:before{content:'•••';font-size:14px}
  .portal-section-grid{grid-template-columns:1fr}
}
#portal-footer-logo{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:var(--ink);color:#fff;overflow:hidden}
.role-guide{display:grid;grid-template-columns:150px 1fr;gap:8px 16px;padding:16px;margin-bottom:16px;border-radius:14px;background:var(--canvas);font-size:12px}.role-guide span{color:var(--muted)}
