:root{--ink:#252522;--muted:#6f6a63;--paper:#fff;--bg:#f5f2ed;--line:#e3ded6;--soft:#eee9e2;--accent:#d9c5a8}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}
body{padding:28px}
.admin-shell{max-width:1120px;margin:0 auto}
.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:0 8px 30px rgba(30,25,20,.06)}
.login-card{max-width:430px;margin:10vh auto}
.brand{font-size:20px;font-weight:700}
.brand small{display:block;margin-top:4px;font-size:12px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;opacity:.6}
.login-card h1{margin:28px 0 8px}
.muted{color:var(--muted);line-height:1.55}
label{display:block;margin:14px 0;font-weight:700}
label input{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #d8d2ca;border-radius:9px;font:inherit}
.password-field{display:block;position:relative}
.password-field input{padding-right:48px}
.password-toggle{position:absolute;right:5px;top:12px;width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer}
.password-toggle:hover{background:var(--soft);color:var(--ink)}
.password-toggle:focus-visible,.btn:focus-visible,.admin-nav a:focus-visible,.quick-links a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.password-toggle svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:11px 16px;font-weight:700;text-decoration:none;cursor:pointer}
.primary{background:var(--ink);color:#fff}
.secondary{background:var(--accent);color:var(--ink)}
.ghost{background:var(--soft);color:var(--ink)}
.login-card form>.btn{width:100%;margin-top:8px}
.error{color:#a12e2e}
.admin-header{position:sticky;top:14px;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding:14px 18px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 22px rgba(30,25,20,.08)}
.admin-title{display:flex;align-items:center;gap:18px}
.admin-title h1{margin:0;font-size:24px}
.admin-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.admin-nav a{padding:9px 11px;border-radius:8px;color:#4f4a44;text-decoration:none;font-weight:700}
.admin-nav a:hover{background:var(--soft)}
.admin-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:20px;align-items:start}
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#8b8175;font-weight:700}
.card h2{margin:7px 0 10px;font-size:clamp(1.6rem,3vw,2.25rem)}
.editor-card{min-height:330px;display:flex;flex-direction:column;justify-content:center}
.editor-card .muted{max-width:700px}
.editor-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.quick-links{display:grid;gap:10px;margin-top:20px}
.quick-links a{display:grid;gap:4px;padding:15px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none}
.quick-links a:hover{background:#faf8f4;border-color:#cfc5b8}
.quick-links span{color:var(--muted);font-size:.9rem}
@media(max-width:820px){body{padding:14px}.admin-header{position:relative;top:0;display:block}.admin-title{display:block}.admin-title h1{margin-top:8px}.admin-nav{margin-top:14px}.admin-grid{grid-template-columns:1fr}.editor-card{min-height:0}.editor-actions .btn{flex:1 1 220px}}
@media(max-width:480px){.card{padding:20px}.admin-nav{display:grid;grid-template-columns:1fr 1fr}.admin-nav a,.admin-nav .btn{width:100%;padding:11px 8px}.editor-actions{display:grid}.editor-actions .btn{width:100%}}

body.modal-open{overflow:hidden}.showroom-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.showroom-head h2{margin-bottom:4px}.filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 10px}.filter-bar button{border:1px solid var(--line);border-radius:999px;background:#fff;padding:9px 14px;font-weight:700;cursor:pointer}.filter-bar button.active{background:var(--ink);border-color:var(--ink);color:#fff}.admin-message{min-height:24px;margin:8px 0;color:#356641;font-weight:700}.admin-message.error,.form-error{color:#a12e2e}.fabric-list{display:grid;gap:10px}.fabric-row{display:grid;grid-template-columns:76px minmax(170px,1fr) 130px 86px minmax(230px,auto);gap:14px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px}.fabric-row.is-hidden{opacity:.62}.fabric-sample{width:76px;height:66px;border-radius:9px;background:linear-gradient(135deg,rgba(255,255,255,.28),rgba(0,0,0,.05)),repeating-linear-gradient(90deg,rgba(255,255,255,.16) 0 2px,rgba(0,0,0,.04) 2px 4px),var(--fabric)}.fabric-sample img,.live-sample img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.fabric-info{display:grid;gap:3px}.fabric-info span,.fabric-info small,.fabric-visibility small{color:var(--muted)}.fabric-visibility{display:grid;gap:5px}.status{width:max-content;border-radius:99px;padding:4px 8px;font-size:.75rem;font-weight:800}.status.on{background:#dff2e4;color:#27643a}.status.off{background:#eee;color:#666}.order-field{margin:0;font-size:.75rem;color:var(--muted)}.order-field input{margin-top:4px;padding:8px}.row-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px}.row-actions button{border:0;border-radius:8px;padding:8px 10px;background:var(--soft);font-weight:700;cursor:pointer}.row-actions .danger{background:#f6dddd;color:#8a2f2f}.empty-state{padding:34px;text-align:center;color:var(--muted);border:1px dashed #cfc5b8;border-radius:14px}.fabric-modal[hidden]{display:none}.fabric-modal{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:20px}.fabric-backdrop{position:absolute;inset:0;background:rgba(20,17,15,.7)}.fabric-dialog{position:relative;z-index:1;width:min(960px,100%);max-height:94vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 35px 90px rgba(0,0,0,.35)}.fabric-dialog>header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:#fff;border-bottom:1px solid var(--line)}.fabric-dialog h2{margin:4px 0 0}.dialog-close{width:42px;height:42px;border:0;border-radius:50%;background:var(--soft);font-size:1.7rem;cursor:pointer}.fabric-dialog form{padding:24px}.fabric-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:26px}.fabric-fields label{margin:0 0 15px}.fabric-fields input,.fabric-fields select,.fabric-fields textarea{display:block;width:100%;margin-top:7px;padding:11px;border:1px solid #d8d2ca;border-radius:9px;font:inherit}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.color-fields{grid-template-columns:100px 1fr}.color-fields input[type=color]{height:45px;padding:4px}.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.check-grid label,.check-row{display:flex;align-items:center;gap:8px;margin:0;padding:11px;background:#f8f5f0;border-radius:9px;font-size:.88rem}.check-grid input,.check-row input{width:18px;height:18px;margin:0}.fabric-live-preview{position:sticky;top:105px;align-self:start;padding:18px;background:#28231f;color:#fff;border-radius:14px}.live-sample{height:270px;margin:13px 0 16px;border-radius:9px;background:linear-gradient(135deg,rgba(255,255,255,.28),rgba(0,0,0,.05)),repeating-linear-gradient(90deg,rgba(255,255,255,.16) 0 2px,rgba(0,0,0,.04) 2px 4px),var(--fabric,#D8C8B6)}.fabric-live-preview>strong{display:block;font:600 1.45rem Georgia,serif}.fabric-live-preview>span:not(.eyebrow),.fabric-live-preview p{display:block;color:#d7c9bd}.fabric-dialog footer{display:flex;justify-content:flex-end;gap:9px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.form-error{min-height:22px;font-weight:700}
@media(max-width:980px){.fabric-row{grid-template-columns:68px 1fr 110px 80px}.row-actions{grid-column:2/-1;justify-content:flex-start}.fabric-form-layout{grid-template-columns:1fr 250px}.check-grid{grid-template-columns:1fr}}
@media(max-width:720px){.showroom-head{display:block}.showroom-head .btn{width:100%;margin-top:12px}.fabric-row{grid-template-columns:70px 1fr}.fabric-visibility,.order-field,.row-actions{grid-column:2}.row-actions{justify-content:flex-start}.fabric-form-layout,.form-pair{grid-template-columns:1fr}.color-fields{grid-template-columns:90px 1fr}.fabric-live-preview{position:static;order:-1}.live-sample{height:210px}.fabric-dialog{max-height:100svh;border-radius:0}.fabric-modal{padding:0}.fabric-dialog form{padding:18px}}
