:root{--ink:#20282f;--ink2:#2c3941;--paper:#fffdf9;--stone:#f2efe8;--tile:#527889;--paint:#c86a3a;--plaster:#c89f63;--muted:#6d767d;--line:#e6e1d9;--shadow:0 18px 50px rgba(32,40,47,.11)}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Tahoma,sans-serif;background:#f5f2ec;color:var(--ink);line-height:1.6}a{text-decoration:none;color:inherit}button,input,select{font:inherit}
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px max(20px,calc((100vw - 1200px)/2));background:#20282ff7;color:#fff;border-bottom:4px solid transparent;border-image:linear-gradient(90deg,var(--tile),var(--paint),var(--plaster)) 1}
.brand-row{display:flex;align-items:center;gap:12px}.brand-row strong{display:block;font-size:18px}.brand-row span{display:block;font-size:12px;color:#cbd3d7}.brand-mark{width:70px;height:70px;border-radius:20px;background:linear-gradient(145deg,var(--paint),var(--plaster));display:grid;place-items:center;color:#fff;font:900 32px Georgia,serif;box-shadow:0 12px 30px #0002}.brand-mark.small{width:46px;height:46px;border-radius:13px;font-size:22px}.topbar nav{display:flex;gap:10px;flex-wrap:wrap}.topbar nav a{padding:9px 12px;border:1px solid #ffffff30;border-radius:10px;font-size:13px}.topbar nav a:hover{background:#ffffff12}.topbar .logout{border-color:#c86a3a99}
.dashboard{max-width:1200px;margin:0 auto;padding:34px 20px 60px}.welcome{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.welcome h1{font-size:38px;margin:0 0 4px}.welcome p{margin:0;color:var(--muted);max-width:720px}.status{white-space:nowrap;background:#e8f4ec;color:#23723d;padding:9px 13px;border-radius:999px;font-weight:700;font-size:12px}.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:#29a052;margin-left:6px;box-shadow:0 0 0 6px #29a05220}
.alert{padding:13px 16px;border-radius:12px;margin:0 0 18px;font-weight:700}.alert.ok{background:#e9f6ed;color:#236b3a;border:1px solid #cce8d5}.alert.error{background:#fff0ed;color:#9b3923;border:1px solid #ffd1c6}
.upload-card,.panel{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.upload-card{padding:23px;margin-bottom:26px}.upload-card h2{margin:0 0 16px}.upload-grid{display:grid;grid-template-columns:1fr 1.7fr auto;gap:14px;align-items:end}.upload-grid label{display:flex;flex-direction:column;gap:7px;font-weight:800;font-size:13px}.upload-grid select,.upload-grid input[type=file]{width:100%;padding:12px;border:1px solid #d9d3c8;border-radius:11px;background:#fff}.file-box span{font-size:11px;color:var(--muted);font-weight:400}.upload-grid button,.auth-card button{border:0;border-radius:11px;padding:13px 21px;background:var(--paint);color:#fff;font-weight:900;cursor:pointer;box-shadow:0 9px 22px #c86a3a35}.upload-grid button:hover,.auth-card button:hover{background:#a94f25}
.service-panels{display:grid;gap:22px}.panel{overflow:hidden}.panel>header{padding:19px 22px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#fff,#faf8f3)}.panel>header>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel h2{margin:0;font-size:21px}.panel header span{background:var(--stone);padding:5px 9px;border-radius:999px;color:var(--muted);font-size:11px;font-weight:800}.gallery{padding:17px;display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.gallery figure{margin:0;height:185px;position:relative;border-radius:14px;overflow:hidden;background:#ddd}.gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:.3s}.gallery figure:hover img{transform:scale(1.04)}.delete{position:absolute;top:9px;left:9px;width:34px;height:34px;border:0;border-radius:50%;background:#20282fdd;color:#fff;font-size:23px;line-height:1;cursor:pointer;box-shadow:0 4px 14px #0004}.delete:hover{background:#b3442c}.empty{padding:34px;text-align:center;color:var(--muted);background:#faf9f6}.admin-footer{text-align:center;color:#8a9297;padding:20px;font-size:12px}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 20%,#52788922,transparent 30%),radial-gradient(circle at 80% 80%,#c86a3a20,transparent 30%),#f2efe8}.auth-card{width:min(440px,100%);background:#fff;padding:34px;border-radius:24px;box-shadow:0 30px 80px #20282f22;text-align:center;border:1px solid #e6e0d6}.auth-card .brand-mark{margin:0 auto 13px}.auth-card h1{margin:0;font-size:29px}.auth-card>p{margin:5px 0 22px;color:var(--muted)}.auth-card form{text-align:right;display:grid;gap:13px}.auth-card label{display:grid;gap:6px;font-size:13px;font-weight:800}.auth-card input{padding:12px;border:1px solid #d9d3c8;border-radius:11px;outline:none}.auth-card input:focus{border-color:var(--tile);box-shadow:0 0 0 3px #52788918}.auth-card small{display:block;color:var(--muted);margin-top:15px}
@media(max-width:850px){.upload-grid{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr)}.welcome{align-items:flex-start;flex-direction:column}.topbar{align-items:flex-start}.topbar nav{justify-content:flex-end}.welcome h1{font-size:31px}}
@media(max-width:520px){.gallery{grid-template-columns:1fr}.gallery figure{height:220px}.topbar{padding:11px 14px}.brand-row span{display:none}.topbar nav a:first-child{display:none}.dashboard{padding:26px 14px 45px}.upload-card{padding:17px}}
.admin-tabs{display:flex;gap:10px;margin-bottom:24px;flex-wrap:wrap}.admin-tabs a{background:#fff;border:1px solid var(--line);padding:11px 17px;border-radius:12px;font-weight:900;box-shadow:0 5px 18px #20282f0b}.admin-tabs a.active{background:var(--ink);color:#fff;border-color:var(--ink)}.admin-tabs b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--paint);color:#fff;font-size:11px;margin-right:6px}.requests-status{background:#fff2ea;color:#9b4d25}.requests-list{display:grid;gap:18px}.request-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}.request-card.is-new{border-right:5px solid var(--paint)}.request-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:20px 22px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#fff,#faf8f3)}.request-head h2{margin:6px 0 2px;font-size:22px}.request-head small{color:var(--muted)}.request-status{display:inline-block;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:900}.status-new{background:#fff0e8;color:#a44c22}.status-contacted{background:#eaf4f8;color:#346879}.status-done{background:#eaf6ee;color:#2d7444}.request-contact{display:flex;gap:8px;flex-wrap:wrap}.request-contact a{padding:9px 11px;border-radius:9px;background:var(--ink);color:#fff;font-size:12px;font-weight:800}.request-contact .wa-link{background:#25b95c}.request-body{padding:20px 22px}.request-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.request-grid>div{background:#faf9f6;border:1px solid #eee8df;border-radius:12px;padding:12px}.request-grid strong{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.request-grid span{font-weight:700;overflow-wrap:anywhere}.request-details{margin-top:14px;background:#faf9f6;border-radius:12px;padding:14px}.request-details strong{font-size:12px;color:var(--muted)}.request-details p{margin:5px 0 0}.request-photos{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:14px}.request-photos a{aspect-ratio:1;border-radius:10px;overflow:hidden;background:#ddd}.request-photos img{width:100%;height:100%;object-fit:cover;display:block}.request-actions{display:flex;justify-content:space-between;gap:12px;padding:14px 22px;border-top:1px solid var(--line);background:#fcfbf8}.request-actions select,.danger-btn{padding:9px 12px;border-radius:9px;border:1px solid #d9d3c8;background:#fff;font-weight:800}.danger-btn{border-color:#e8b6aa;color:#9f3d28;cursor:pointer}.danger-btn:hover{background:#fff0ed}@media(max-width:850px){.request-grid{grid-template-columns:1fr 1fr}.request-photos{grid-template-columns:repeat(3,1fr)}}@media(max-width:520px){.request-head{flex-direction:column}.request-grid{grid-template-columns:1fr}.request-photos{grid-template-columns:repeat(2,1fr)}.request-actions{flex-direction:column}.request-actions form,.request-actions select,.danger-btn{width:100%}}
/* Work-request dashboard v2 */
.welcome-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.download-main,.download-request{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;font-weight:900;text-decoration:none}.download-main{background:var(--ink);color:#fff;padding:10px 14px}.download-main:hover{background:#11181d}.request-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 22px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 8px 26px #20282f0b;display:flex;flex-direction:column;gap:2px}.stat-card strong{font-size:28px;line-height:1}.stat-card span{color:var(--muted);font-size:12px;font-weight:800}.stat-card.active{outline:3px solid #20282f18;border-color:var(--ink)}.stat-card.new strong{color:var(--paint)}.stat-card.contacted strong{color:var(--tile)}.stat-card.done strong{color:#2d7444}.request-actions{align-items:center}.left-actions,.right-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.download-request{background:#edf3f5;color:#315e6d;border:1px solid #cfe0e5;padding:9px 12px}.download-request:hover{background:#dfecef}.request-photos a{position:relative}.request-photos a:after{content:'فتح';position:absolute;left:6px;bottom:6px;background:#20282fd9;color:#fff;border-radius:6px;padding:2px 6px;font-size:9px;font-weight:800}
@media(max-width:850px){.request-stats{grid-template-columns:repeat(2,1fr)}.request-actions{align-items:stretch}.left-actions,.right-actions{width:100%}.download-request{width:100%}}
@media(max-width:520px){.request-stats{grid-template-columns:1fr 1fr}.welcome-actions{width:100%}.download-main{width:100%}.right-actions{flex-direction:column}.right-actions form,.right-actions select,.right-actions button{width:100%}}

/* Commercial document workflow v3 */
.commercial-actions{gap:7px!important;flex:1}.edit-request,.doc-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 11px;border-radius:9px;font-size:11px;font-weight:900;border:1px solid transparent}.edit-request{background:#20282f;color:#fff}.doc-btn.devis{background:#eaf4f8;color:#315f70;border-color:#c9e0e8}.doc-btn.facture{background:#fff1ea;color:#9c4d27;border-color:#f2c8b3}.doc-btn.livraison{background:#ecf7ef;color:#2d7444;border-color:#c9e5d2}.doc-btn.commande{background:#fff8e7;color:#81611e;border-color:#ead8a8}.edit-dashboard{max-width:1280px}.edit-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:22px;margin-bottom:18px}.edit-card h2{margin:0 0 16px}.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.edit-grid.compact{margin-top:18px}.edit-grid label,.doc-field label{display:grid;gap:6px;font-size:12px;font-weight:900}.edit-grid input,.edit-grid textarea,.doc-field input,.items-table input,.commercial-summary input{width:100%;padding:11px 12px;border:1px solid #d9d3c8;border-radius:10px;background:#fff;outline:none}.edit-grid textarea{min-height:90px;resize:vertical}.edit-grid .wide{grid-column:1/-1}.section-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-row p{margin:3px 0 0;color:var(--muted);font-size:12px}.secondary-btn{border:1px solid #c9d9df;background:#edf4f6;color:#315f70;border-radius:10px;padding:10px 14px;font-weight:900;cursor:pointer}.items-table{overflow-x:auto}.items-head,.item-row{display:grid;grid-template-columns:minmax(260px,2.5fr) minmax(100px,.7fr) minmax(120px,.8fr) 42px;gap:8px;align-items:center;min-width:680px}.items-head{padding:0 4px 7px;color:var(--muted);font-size:11px;font-weight:900}.item-row{margin-bottom:8px}.remove-line{height:40px;border:0;border-radius:9px;background:#fff0ed;color:#9f3d28;font-size:20px;cursor:pointer}.commercial-summary{display:grid;grid-template-columns:140px repeat(3,1fr);gap:10px;margin-top:16px;background:#faf9f6;border-radius:14px;padding:13px}.commercial-summary label{display:grid;gap:4px;font-size:11px;font-weight:900}.commercial-summary>div{padding:8px 10px;border-right:1px solid #e5dfd5}.commercial-summary span{display:block;color:var(--muted);font-size:10px;font-weight:800}.commercial-summary strong{font-size:17px}.doc-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.doc-field{background:#faf9f6;border:1px solid #eee8df;border-radius:13px;padding:12px;display:grid;gap:9px}.doc-field>strong{color:var(--ink);font-size:13px}.sticky-save{position:sticky;bottom:12px;background:#20282ff5;border-radius:15px;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 12px 35px #0003;z-index:20}.save-btn{border:0;border-radius:10px;background:var(--paint);color:#fff;padding:12px 22px;font-weight:900;cursor:pointer}.quick-docs{display:flex;gap:7px;flex-wrap:wrap}.quick-docs a{background:#fff;color:#20282f;padding:8px 11px;border-radius:8px;font-size:11px;font-weight:900}
@media(max-width:900px){.doc-fields{grid-template-columns:1fr 1fr}.commercial-summary{grid-template-columns:1fr 1fr}.edit-grid{grid-template-columns:1fr}.edit-grid .wide{grid-column:auto}.request-actions{flex-direction:column;align-items:stretch}.commercial-actions{width:100%}}
@media(max-width:560px){.doc-fields,.commercial-summary{grid-template-columns:1fr}.sticky-save{position:static;flex-direction:column;align-items:stretch}.quick-docs{display:grid;grid-template-columns:1fr 1fr}.quick-docs a{text-align:center}.section-row{align-items:flex-start;flex-direction:column}.secondary-btn{width:100%}.commercial-actions{display:grid!important;grid-template-columns:1fr 1fr}.commercial-actions .download-request{grid-column:1/-1}}

/* Devis acceptance / rejection workflow */
.devis-decision{min-width:230px}.devis-decision label{display:grid;gap:6px;font-size:12px;font-weight:900}.devis-decision select{padding:10px 12px;border:1px solid #d9d3c8;border-radius:10px;background:#fff;font-weight:800}.devis-decision-notice{margin:12px 0;padding:11px 13px;border-radius:10px;font-size:12px;font-weight:900}.devis-decision-notice.accepted{background:#eaf8ef;color:#247442;border:1px solid #bee2ca}.devis-decision-notice.rejected{background:#fff0ed;color:#a84831;border:1px solid #efc0b5}.devis-decision-notice.pending{background:#fff8e7;color:#82611b;border:1px solid #ead7a4}.devis-state-badge{display:inline-flex;width:max-content;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900}.devis-state-badge.state-accepted{background:#eaf8ef;color:#247442}.devis-state-badge.state-rejected{background:#fff0ed;color:#a84831}.devis-state-badge.state-pending{background:#fff8e7;color:#82611b}.doc-field.is-locked,.downstream-fields.is-locked{opacity:.48;filter:grayscale(.7);position:relative}.doc-field.is-locked input,.downstream-fields.is-locked input{cursor:not-allowed;background:#f2f2f2}.locked-hint{color:#a84831;font-size:10px;font-weight:900}.disabled-link,.disabled-doc{opacity:.42!important;filter:grayscale(1);cursor:not-allowed!important;pointer-events:none!important}.disabled-doc{user-select:none}.doc-btn.devis{white-space:nowrap}
