:root{
 --ink:#25170d; --ink-muted:#594b35; --nav:#132631; --gold:#b58b45; --gold2:#dfba74;
 --paper:#efdcaf; --line:#b99b6a; --line-light:rgba(118,80,38,.22); --red:#691c13; --red2:#8b2919;
 --blue:#203d50; --blue2:#2a526b; --olive:#7c8b5b; --shadow:rgba(20,12,4,.44);
 --serif:Georgia,'Palatino Linotype','Book Antiqua',serif;
}
*{box-sizing:border-box}
html{min-height:100%}
body{margin:0;color:var(--ink);font-family:var(--serif);font-size:16px;background:#21170e url('assets/dark-wood.webp') repeat;line-height:1.35}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.5}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #9a391d;outline-offset:2px}
button,img{user-select:none}
.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh;margin:auto;max-width:1920px;padding:7px;gap:6px}
.sidebar{position:sticky;top:7px;height:calc(100vh - 14px);background:#172833 url('assets/navy-wood.webp') repeat;border:2px solid #84602f;box-shadow:inset 0 0 0 2px #09151d,inset 0 0 0 4px #91713e,5px 5px 15px #0b0806;color:#f5dfb3;overflow:hidden}
.sidebar:before,.sidebar:after{position:absolute;content:'❦';color:#bc8732;top:0;left:5px;font-size:29px;line-height:1;opacity:.95}
.sidebar:after{top:auto;left:auto;right:6px;bottom:0;transform:rotate(180deg)}
.sidebar-frame{display:flex;flex-direction:column;height:100%;padding:12px 9px 9px;border:1px solid #304658;margin:4px}
.brand{text-align:center;flex:none;padding:1px 5px 12px}
.brand-crest{display:block;width:92px;height:96px;object-fit:contain;margin:0 auto 1px;filter:drop-shadow(0 2px 3px #040e14)}
.brand-name{font-size:24px;line-height:.98;letter-spacing:-.8px;text-shadow:0 1px 2px #000}
.tiny-divider{display:block;margin-top:13px;color:#a78346;font-size:11px;white-space:nowrap}
.navigation{display:flex;flex-direction:column;gap:2px;overflow:auto;scrollbar-width:thin;padding-top:6px}
.nav-link{display:flex;align-items:center;gap:14px;border:1px solid transparent;border-bottom:1px solid rgba(164,144,94,.1);color:#fff1d5;background:none;min-height:47px;text-align:left;padding:7px 13px;font-size:17px;width:100%;white-space:nowrap}
.nav-link:hover{background:rgba(211,174,102,.13)}
.nav-link.active{color:#221408;background:linear-gradient(140deg,#c69c5b 0%,#f4dca6 50%,#bb955a 100%);border:1px solid #997139;box-shadow:inset 0 1px 2px #f9e7bb,0 2px 4px rgba(0,0,0,.4)}
.nav-icon{font-family:Georgia,serif;font-weight:bold;font-size:27px;color:#cf9b49;width:25px;line-height:1;text-align:center;flex:none}
.nav-link.active .nav-icon{color:#3a260e}
.nav-footer{margin-top:auto;min-height:76px;border-top:1px solid #98763d;display:flex;align-items:center;gap:12px;padding:10px 7px 4px;color:#f7d69c}
.nav-footer strong{font-size:16px;line-height:1.04;display:block}.nav-footer small{display:block;font-size:13px;color:#cfaa69}.portrait{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;border:2px ridge #a78956;background:#2c332e;color:#e3c588;font-size:30px}
.main-panel{min-width:0;position:relative;min-height:calc(100vh - 14px);border:2px solid #ae7e3b;box-shadow:inset 0 0 0 3px #422b15,inset 0 0 0 6px #d5aa58,0 8px 20px #080807;background:#f1deb8 url('assets/parchment.webp') repeat;overflow:hidden}
.main-panel:before,.main-panel:after,.modal:before,.modal:after{position:absolute;z-index:2;font-size:35px;line-height:1;color:#996524;opacity:.82;pointer-events:none;text-shadow:1px 1px #f3d696}
.main-panel:before,.modal:before{content:'❦';left:4px;top:5px}.main-panel:after,.modal:after{content:'❦';right:4px;bottom:4px;transform:rotate(180deg)}
.ornate-strip{height:45px;background:linear-gradient(#131f2a 1%,#193444 14%,#122632 35%,#69291c 43%,#b17739 48%,#b3853a 58%,#4f3223 67%,#182d32 78%,#121e24 94%);border-bottom:4px ridge #b18442;border-top:2px solid #0d1c24;margin:8px 9px 0;position:relative;overflow:hidden}
.ornate-strip:before,.ornate-strip:after{content:'✥ ❧ ✥ ❧ ✥ ❧ ✥ ❧ ✥ ❧ ✥ ❧ ✥ ❧ ✥ ❧ ✥ ❧ ✥ ❧';position:absolute;top:6px;left:6px;color:#d2a04e;opacity:.95;font-size:18px;white-space:nowrap;letter-spacing:15px;text-shadow:0 1px 1px #210e05}.ornate-strip:after{left:auto;right:0;transform:scaleX(-1);opacity:.65}
.strip-center{position:absolute;top:6px;left:44%;background:#65251b;color:#f1c779;z-index:1;padding:0 16px;letter-spacing:6px;font-size:17px}
.ornate-bottom{height:25px;text-align:center;color:#a47b3b;opacity:.65}
.page{padding:20px clamp(18px,3vw,52px) 50px;max-width:1490px;margin:0 auto;position:relative;z-index:1}
.page h1{font-size:clamp(30px,2.5vw,41px);font-weight:bold;line-height:1.05;letter-spacing:-.8px;margin:0 0 18px;text-shadow:0 1px 1px #fff0c4}
.page h2{font-size:25px;line-height:1.1;margin:0 0 14px}
.page p{margin:7px 0 16px}
.page-subtitle{color:#685337;font-size:16px;margin-top:-9px!important}
.toolbar{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin:0 0 17px}
.toolbar-search{min-width:230px;flex:1;max-width:500px;position:relative}
.search-mark{position:absolute;top:50%;left:12px;transform:translateY(-55%);font-size:21px;color:#594d3a;pointer-events:none}
.text-control,textarea,select{border:1px solid #bba171;border-radius:3px;background:rgba(255,248,225,.63);box-shadow:inset 0 1px 3px rgba(91,63,30,.12);color:#2b1b0b;min-height:38px;padding:7px 10px;max-width:100%}
.text-control::placeholder,textarea::placeholder{color:#766c5d}
.toolbar-search .text-control,.search-wrap .text-control{width:100%;padding-left:37px}
textarea{width:100%;resize:vertical;min-height:74px}
.field-label{display:block;font-weight:bold;font-size:15px;margin:0 0 5px}
.field-help{font-size:12px;color:#6e6045;display:block;margin-top:3px;line-height:1.18}
.btn{border:1px solid #ab8c59;border-radius:3px;padding:8px 14px;min-height:39px;background:linear-gradient(#f5e6c0,#dcc196);color:#2b190c;box-shadow:inset 0 1px 1px #fff2d2,0 2px 3px rgba(72,48,15,.18);font-weight:normal;font-size:15px;text-align:center;white-space:nowrap;transition:filter .12s,transform .12s}
.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(1px)}
.btn-red{background:linear-gradient(#8d3122,#681810);color:#fff4dd;border-color:#5c160d;box-shadow:inset 0 1px 1px #b35642,0 2px 5px #5b321f66}
.btn-blue{background:linear-gradient(#2e5168,#1a3547);color:#fff5db;border-color:#172b39;box-shadow:inset 0 1px 1px #55768b,0 2px 4px #3333}
.btn-gold{background:linear-gradient(#ecd6a3,#bb975b);color:#30200c;border-color:#b59154}
.btn-plain{background:transparent;border:1px solid #baa274;box-shadow:none}
.btn-small{min-height:31px;padding:5px 10px;font-size:14px}.btn-icon{font-family:Arial,sans-serif;font-size:25px;line-height:0;vertical-align:-2px;margin-right:5px;font-weight:200}
.counter{font-size:14px;margin-left:auto;color:#58462a}
.table-scroll{overflow-x:auto;overflow-y:visible;border:1px solid #b79a69;background:rgba(245,228,187,.20);box-shadow:0 1px 3px rgba(50,32,13,.12)}
.data-table{width:100%;border-collapse:collapse;min-width:800px;font-size:16px}
.data-table th{background:rgba(180,144,86,.22);font-size:15px;font-weight:bold;text-align:left;border-right:1px solid var(--line-light);border-bottom:1px solid #aa8e5e;padding:12px 14px}
.data-table td{padding:9px 12px;border-bottom:1px solid var(--line-light);border-right:1px solid var(--line-light);vertical-align:middle}
.data-table tbody tr:hover{background:rgba(255,251,231,.35)}.data-table tr:last-child td{border-bottom:0}
.data-table .col-icon{width:79px;text-align:center}.data-table .col-price{width:160px;text-align:center}.data-table .col-stock{width:97px;text-align:center}.data-table .col-status{width:120px;text-align:center}.data-table .col-actions{width:302px}
.item-thumb{width:54px;height:57px;object-fit:cover;vertical-align:middle;border:1px solid #b99861;border-radius:4px;background:#e6cb94;box-shadow:inset 0 1px 2px #fff5d5}
.emoji-thumb{display:inline-grid;place-items:center;font-size:32px;line-height:1;overflow:hidden}
.stock-badge{display:inline-block;font-family:Georgia,serif;border:1px solid transparent;border-radius:4px;font-size:13px;padding:3px 8px;color:#182111;white-space:nowrap;background:#acc493;border-color:#8ea578}
.stock-badge.low{background:#f3c47b;color:#432705;border-color:#d89d3d}.stock-badge.out{background:#eaa39a;color:#611b13;border-color:#cf7771}
.action-group{display:flex;gap:7px;align-items:center;flex-wrap:nowrap}
.empty-state{text-align:center;padding:50px 14px;color:#61503b;font-size:18px}
.soft-card,.stats-card,.register-panel{border:1px solid #b79a67;background:rgba(252,240,209,.52);border-radius:3px;box-shadow:inset 0 1px 1px #fff3d2,0 2px 5px #6d543824;padding:20px}
.soft-card h2,.register-panel h2{border-bottom:1px solid #ba9d6b;padding-bottom:10px}
.welcome{padding:7px 0 12px}.welcome h1{font-size:43px}.welcome p{font-size:19px;max-width:690px}
.quick-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}
.quick-tile{background:rgba(250,231,194,.65);border:1px solid #b79560;border-radius:3px;padding:22px;min-height:170px;text-align:left;cursor:pointer;color:#2f1b0d;box-shadow:0 2px 4px #6c451d22}
.quick-tile:hover{background:#f5deac}.quick-tile .quick-symbol{font-size:38px;display:block;color:#886122}.quick-tile h3{font-size:23px;margin:3px 0 4px}.quick-tile p{font-size:15px;margin:0}
.stats-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:12px 0 24px}.stats-card .eyebrow{font-size:14px;color:#6c5433}.stats-card strong{display:block;font-size:34px;margin:4px 0;line-height:1}.stats-card small{color:#68553b}
.entry-table{min-width:600px}.entry-table td,.entry-table th{padding:12px}
.note-form{display:flex;flex-direction:column;gap:9px;max-width:900px}.note-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:14px;margin-top:20px}.note{position:relative;padding:17px;background:rgba(255,245,215,.58);border:1px solid #b39867;min-height:130px}.note .date{font-size:13px;color:#796447}.note p{white-space:pre-wrap;word-wrap:break-word;padding-right:12px}.note .note-delete{position:absolute;right:9px;top:8px;background:none;border:0;color:#6b2b1a;font-size:21px}
.mobile-top{display:none}
/* Overlay and parchment popups */
.overlay{position:fixed;z-index:20;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(8,9,8,.68);padding:20px;backdrop-filter:blur(2px)}
.overlay.hidden{display:none}
.modal{width:min(500px,100%);max-height:min(94vh,1040px);overflow:auto;position:relative;background:#f4dfb7 url('assets/parchment.webp') repeat;border:4px double #6f491f;box-shadow:inset 0 0 0 3px #d6a65a,inset 0 0 0 6px #593c25,0 14px 55px #0009;padding:20px 21px 20px}
.modal.type-product{width:min(470px,100%)}.modal.type-icon{width:min(990px,100%)}
.modal.type-transaction{width:min(490px,100%)}
.modal h2{font-size:31px;line-height:1;margin:0 28px 16px 0;letter-spacing:-.5px}
.modal-close{position:absolute;z-index:4;right:11px;top:7px;border:0;background:transparent;font-family:Georgia,serif;color:#241209;font-size:31px;line-height:1;min-height:30px}
.modal-close:hover{color:#8a301e}
.modal-tabs{display:flex;margin-bottom:12px;align-items:stretch;overflow:hidden;border-radius:5px 5px 0 0;border-bottom:1px solid #d1b688}
.tab{border:1px solid #ba9f70;background:#e9d4a9;color:#332315;padding:9px 12px;flex:1;text-align:center;font-size:13px;white-space:nowrap;min-width:0}
.tab.active{background:var(--blue);color:#fff9e9;border-color:var(--blue);font-weight:bold}
.search-wrap{position:relative;margin-bottom:9px}
.item-choose-list{border:1px solid #c4a978;border-radius:3px;height:244px;overflow-y:auto;background:#f6e5bf6e;scrollbar-color:#9c7949 #eedab0}
.choose-row{display:flex;align-items:center;gap:10px;padding:5px 7px;border-bottom:1px solid #ccb68d;min-height:56px}.choose-row:last-child{border-bottom:0}.choose-row.selected{background:#edd3a0}.choose-row:hover{background:rgba(255,249,222,.7)}
.choose-row .item-thumb{width:42px;height:44px}.choose-row-info{min-width:0;flex:1;font-size:14px}.choose-row-info strong{font-size:15px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.choose-row-info small{display:block;color:#5a4a34;margin-top:1px}
.choose-row .btn{font-size:13px;padding:5px 9px;min-height:30px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:12px 0 11px}.form-field{min-width:0}.form-field .text-control{width:100%}
.form-field-full{grid-column:1/-1}
.form-footer{display:flex;justify-content:flex-end;gap:11px;align-items:center;margin-top:15px;flex-wrap:wrap}.modal-footer-border{border-top:1px solid rgba(152,108,63,.28);padding-top:12px}
.validation{color:#86190d;background:#f9d5bd;border:1px solid #c88662;border-radius:3px;padding:8px 11px;font-size:14px;margin-top:10px}
.product-name-field{margin-bottom:12px}.product-name-field .text-control{width:100%}
.icon-pick-row{display:flex;align-items:center;gap:15px;margin-bottom:14px}
.icon-pick-row .field-label{width:55px;flex:none}.icon-pick-row .item-thumb{height:62px;width:60px}.icon-pick-row .arrow{font-size:21px;color:#785733}
.icon-pick-row .btn{margin-left:0}
.product-preview{border:1px solid #c5a777;margin-top:13px;background:rgba(251,238,206,.48);border-radius:3px}
.preview-heading{font-size:14px;background:rgba(176,139,78,.22);padding:7px 9px;border-bottom:1px solid #d4b88e}
.preview-row{display:flex;gap:13px;padding:10px;align-items:center}.preview-row .item-thumb{width:73px;height:77px}.preview-row strong{font-size:18px}.preview-row small{display:block;font-size:14px;margin-top:4px}
.stock-inline{display:flex;gap:4px;align-items:center}.stock-inline .text-control{min-width:0;flex:1}.stock-inline .btn{padding:3px 10px;min-height:38px;font-weight:bold;font-size:20px}
.icon-modal-header{display:flex;gap:15px;align-items:center;margin:0 0 12px}.icon-modal-header h2{min-width:220px;margin:0}.icon-modal-header .search-wrap{flex:1;margin:0}
.icon-filters{display:flex;align-items:center;gap:5px;overflow-x:auto;padding-bottom:7px;scrollbar-width:thin}
.filter-chip{flex:none;background:linear-gradient(#ebd6aa,#dbc095);border:1px solid #c8ab7c;border-radius:3px;color:#2b1b0e;padding:6px 10px;font-size:12px;min-height:28px;white-space:nowrap}
.filter-chip.active{color:#fff7e5;background:var(--blue);border-color:var(--blue)}
.icon-grid{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:4px;margin:7px 0 13px;min-height:240px}
.icon-tile{display:grid;place-items:center;min-width:0;min-height:57px;padding:1px;background:#f3dab0;border:1px solid #b79055;border-radius:3px;box-shadow:inset 0 1px 1px #fff4cc;position:relative}
.icon-tile .item-thumb{width:100%;height:auto;aspect-ratio:1/1;border:0;object-fit:cover}
.icon-tile.selected{outline:3px solid #a10e08;outline-offset:-2px;background:#f6bb9b;z-index:1}
.icon-tile:hover{background:#f4e6c9;filter:brightness(1.07)}
.icon-bottom{display:flex;align-items:center;gap:12px;justify-content:space-between;font-size:13px}.icon-bottom .pager{display:flex;align-items:center;gap:10px;white-space:nowrap}.icon-bottom .pager .btn{min-width:31px;padding:5px 8px}.icon-bottom .form-footer{margin:0}
.item-thumb.emoji-thumb{background:#ead1a1}
.toast-wrap{position:fixed;right:22px;bottom:18px;z-index:40;max-width:min(420px,calc(100% - 44px))}.toast{background:#173c31;color:#f5eacb;border:1px solid #b69b5a;padding:13px 18px;margin-top:8px;box-shadow:0 5px 20px #0006;font-size:16px}
@media(min-width:1650px){.shell{grid-template-columns:245px minmax(0,1fr)}.sidebar .brand-name{font-size:26px}.sidebar .nav-link{font-size:19px;min-height:53px}.page{padding-top:27px}}
@media(max-width:1100px){.shell{grid-template-columns:185px minmax(0,1fr)}.nav-link{font-size:15px;gap:8px;padding:7px}.brand-name{font-size:20px}.brand-crest{width:76px;height:80px}.page{padding:20px 18px 44px}.icon-grid{grid-template-columns:repeat(10,minmax(0,1fr))}.icon-modal-header h2{min-width:180px}}
@media(max-width:720px){
 .shell{display:block;padding:4px}.main-panel{min-height:calc(100vh - 8px)}.sidebar{position:fixed;z-index:15;inset:0 auto 0 0;top:0;height:100vh;width:240px;transform:translateX(-102%);transition:transform .18s;box-shadow:4px 0 20px #0008}.shell.menu-open .sidebar{transform:translateX(0)}
 .mobile-top{display:flex;align-items:center;gap:12px;background:#172733;color:#efdbaf;margin:0 9px;border-bottom:2px solid #b08a49;padding:10px 12px;min-height:52px;font-size:15px}.menu-toggle{background:none;border:1px solid #b49254;border-radius:2px;color:#eacb8a;font-size:22px;line-height:1;min-height:31px;min-width:37px}
 .ornate-strip{height:13px;margin-top:8px}.ornate-strip:before,.ornate-strip:after,.strip-center{display:none}.page{padding:21px 13px 35px}.page h1{font-size:29px}
 .toolbar{gap:8px}.toolbar-search{max-width:none;min-width:100%;order:2}.counter{order:1;margin-left:auto}.toolbar .btn{order:0}
 .data-table{font-size:14px}.data-table td{padding:7px}.data-table th{padding:9px}.quick-tiles,.stats-row{grid-template-columns:1fr}.quick-tile{min-height:120px}
 .overlay{padding:4px}.modal{max-height:98vh;width:100%!important;padding:15px 13px 15px}.modal h2{font-size:26px}.modal-tabs .tab{font-size:11px;padding:8px 5px}.icon-grid{grid-template-columns:repeat(6,minmax(0,1fr));max-height:57vh;overflow:auto}.icon-modal-header{align-items:stretch;flex-direction:column;gap:8px}.icon-modal-header h2{margin:0}.icon-bottom{flex-wrap:wrap}.icon-bottom .form-footer{margin-left:auto}
}
@media(max-width:380px){.icon-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.form-grid{gap:8px}.btn{font-size:13px;padding:7px 9px}}
/* Extension Cloudflare : accueil, consultation client, profils et administration.
   Respecte les textures et couleurs médiévales du site original. */
[hidden]{display:none!important}
.booting .shell{display:none}
.portal{min-height:100vh;background:#27190e url('assets/dark-wood.webp') repeat;padding:12px;color:var(--ink)}
.portal-head{max-width:1370px;margin:0 auto;min-height:99px;padding:10px 20px;display:flex;align-items:center;gap:19px;background:#f1dfb9 url('assets/parchment.webp') repeat;border:4px ridge var(--gold);box-shadow:0 6px 22px #0008}
.portal-head img{width:62px;height:76px;object-fit:contain}.portal-head>div{flex:1;min-width:0}.portal-title{font-size:clamp(25px,3vw,38px);line-height:1.1;font-weight:bold}.portal-head p{font-size:14px;margin:4px 0 0;color:#645035}
.landing-scene{min-height:calc(100vh - 25px);position:relative;max-width:1600px;margin:auto;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 45%,#d8b47b44,#0008 82%),url('assets/dark-wood.webp') repeat;border:2px ridge #9f763f;box-shadow:0 0 30px #0007}
.landing-scene .portal-head{width:calc(100% - 24px);margin-top:9px}
.landing-center{margin:auto;text-align:center;padding:35px 18px 45px;max-width:1150px;color:#f6dfb6}.landing-center h1{font-size:clamp(34px,4vw,57px);margin:12px 0;text-shadow:0 3px 10px #070302}.landing-center>p{font-size:18px;text-shadow:0 2px 5px #000}
.hero-crest img{height:146px;width:125px;object-fit:contain;filter:drop-shadow(0 6px 9px #0008)}.portal-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;margin:35px auto 10px;max-width:780px}
.portal-choice{padding:29px 25px 33px;background:#efd8a7 url('assets/parchment.webp') repeat;border:4px double #996c33;color:#26180d;box-shadow:0 7px 21px #0008,inset 0 0 0 4px #f1d7a1}.portal-choice h2{font-size:29px;margin:0 0 12px}.portal-choice p{min-height:55px;font-size:16px}.portal-choice .btn{font-size:17px;white-space:normal}
.landing-scene footer{color:#e1bd80;text-align:center;font-size:13px;padding:19px}.landing-center .notice{font-size:14px;background:#36241caa;padding:10px 13px;border:1px solid #9a6840}
.paper-narrow,.hub,.public-wrap{max-width:1300px;margin:15px auto;background:#efdaae url('assets/parchment.webp') repeat;border:4px double #bd914f;box-shadow:0 6px 20px #09060288;padding:clamp(18px,3vw,35px);min-height:400px}
.paper-narrow{max-width:780px}.paper-narrow h1,.hub h1,.public-wrap h1{margin:0 0 15px;font-size:36px}.paper-form{display:grid;gap:14px}.paper-form>label input{display:block;width:100%}.paper-form>.btn{justify-self:end;margin-top:10px}
.portrait-chooser{padding:15px 0}.portrait-chooser h3{font-size:20px;border-bottom:1px solid #b99b65;padding-bottom:7px}.portrait-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px}
.portrait-choice{background:#d8ba82;padding:4px;border:2px solid #957448;border-radius:3px;box-shadow:0 3px 3px #6b4b3033;transition:transform .12s,border-color .12s;aspect-ratio:4/5;overflow:hidden}
.portrait-choice:hover{transform:translateY(-3px)}.portrait-choice.is-selected{border:4px solid #8f291b;box-shadow:0 0 0 2px #ddbf82,0 3px 6px #5c301a77}
.portrait-choice img{display:block;width:100%;height:100%;object-fit:cover}
.public-top{margin-bottom:22px}.public-top p{color:#654a2e}.public-columns{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}
.public-shops,.public-catalog{border:1px solid #ad8956;background:#f6e4bd99;padding:18px;min-width:0}.public-shops>.text-control,.public-catalog .text-control{width:100%;margin:5px 0 14px}
.public-shop{display:flex;align-items:center;gap:10px;padding:8px;width:100%;background:#e4c89a99;border:1px solid #b99963;margin:4px 0;text-align:left;color:#352412;font-size:15px}.public-shop:hover,.public-shop.current{background:#efd49e;border-color:#864a22}.public-shop .item-thumb{width:42px;height:43px;flex:none}
.public-catalog h2{font-size:29px}.public-catalog .data-table{min-width:410px}.public-privacy{font-size:13px;color:#755e3a;margin-top:18px}
.hub-profile,.profile-card{display:flex;gap:24px;align-items:center;background:#f6e6c48f;padding:18px;border:1px solid #b59a6e}.hub-profile h1{margin:0}.big-portrait{width:145px;height:174px;object-fit:cover;flex:none;border:4px ridge #a9894e;box-shadow:0 4px 6px #6d4f2e55}
.hub h2{font-size:26px;margin-top:25px}.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.shop-card{padding:14px;text-align:left;background:#f4dfb9d6;border:1px solid #bb9862;color:#2d2013;display:flex;align-items:center;gap:13px}.shop-card .item-thumb{width:55px;height:55px;flex:none}.shop-card strong{font-size:18px}.shop-card span{margin-left:auto;font-size:12px;color:#7b4529}.admin-entry{margin-top:22px}
.nav-separator{font-size:11px;padding:9px 7px 3px;color:#bd965b;letter-spacing:.1em;border-bottom:1px solid #9b734f44}.portrait-nav{width:52px;height:57px;object-fit:cover;border:2px ridge #a78956;border-radius:4px}.profile-details p{margin:8px 0}.discord-mini{height:30px;width:30px;border-radius:50%;vertical-align:middle;margin-left:4px}
.two-panels{display:grid;grid-template-columns:1fr 1fr;gap:18px}.two-panels .soft-card{min-width:0}.two-panels .soft-card h2{font-size:24px}.two-panels .field-label{margin-top:15px}.two-panels .text-control{width:100%;margin:6px 0 10px}.two-panels .btn{white-space:normal;margin-top:7px}
.wide-search{display:block;width:min(480px,100%);margin:0 0 16px}.portrait-table{width:57px;height:63px;object-fit:cover;border:2px solid #b09363}
.editor-box{margin-top:17px}.editor-box .profile-card{padding:10px}.editor-box .profile-card .portrait-table{width:80px;height:95px}.editor-box .check-grid,.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.check-grid label,.check-row label,.check-line{font-size:15px;background:#f1dfb88a;padding:9px;border:1px solid #c5a778}.check-row{display:flex;gap:15px;flex-wrap:wrap;margin:15px 0}
.shop-admin-list{max-height:520px;overflow:auto}.commerce-icons{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.commerce-icons label{display:grid;place-items:center}.commerce-icons label input{margin:0}.commerce-icons .item-thumb{height:48px;width:48px}
.critical-text{padding:12px 15px;color:#7a211a;border:1px solid #bf675b;background:#f2ccbc}.preview-table{max-height:250px;overflow:auto;margin:12px 0;border:1px solid #ad8e5c}.preview-table table{width:100%;border-collapse:collapse}.preview-table td,.preview-table th{border-bottom:1px solid #ceb58b;padding:6px;text-align:left}
@media(max-width:850px){.portal-choices,.two-panels,.shop-grid{grid-template-columns:1fr}.public-columns{grid-template-columns:1fr}.portal-head{gap:10px;padding:9px}.portal-head img{width:47px;height:60px}.portal-head p{font-size:12px}.portal-head .btn{font-size:13px;padding:6px}.hero-crest img{height:100px}.portrait-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-card,.hub-profile{align-items:flex-start}.hub-profile{flex-wrap:wrap}.shop-card span{display:none}}
@media(max-width:520px){.portal{padding:4px}.portal-head{border-width:2px}.portal-title{font-size:21px}.landing-center h1{font-size:29px}.landing-center{padding:17px 11px}.portal-choices{gap:12px;margin:15px auto}.portal-choice{padding:17px 15px}.portal-choice h2{font-size:24px}.portal-choice p{min-height:0}.paper-narrow,.hub,.public-wrap{margin:9px 3px;padding:14px}.portrait-grid{gap:7px}.big-portrait{width:100px;height:124px}.check-grid{grid-template-columns:1fr}.commerce-icons{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-card{flex-wrap:wrap}.shop-card{padding:10px}}

.commerce-icons{max-height:290px;overflow-y:auto;padding:5px;border:1px solid #bfa274;background:#f9e9c780}

/* Sélection de personnages — disponible uniquement dans la démonstration locale. */
.local-account-screen{max-width:860px;min-height:0}
.local-account-screen>p{max-width:730px;line-height:1.55}
.local-accounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:22px 0}
.local-account{display:flex;align-items:center;gap:15px;text-align:left;color:#281909;background:#e9d0a1 url('assets/parchment.webp') repeat;border:2px solid #a07a46;box-shadow:inset 0 0 0 2px #f9e6b9,0 3px 8px #4e2a152f;padding:9px;min-width:0;cursor:pointer;font:inherit;transition:transform .15s,box-shadow .15s,border-color .15s}
.local-account:hover:not(:disabled),.local-account:focus-visible{transform:translateY(-2px);border-color:#81291e;box-shadow:0 3px 11px #6f2d2644}
.local-account img{width:75px;height:93px;object-fit:cover;border:2px solid #7f663e;border-radius:2px;background:#d5b780;flex-shrink:0}
.local-account span:not(.local-account-arrow){display:flex;flex-direction:column;gap:6px;min-width:0}
.local-account strong{font-size:19px;font-weight:700;line-height:1.1}
.local-account small{font-size:12px;color:#644a31;line-height:1.4;overflow-wrap:anywhere}
.local-account .local-account-arrow{margin-left:auto;color:#8c2b1d;font-size:23px;padding:5px}
.local-account:disabled{opacity:.5;cursor:not-allowed}
.local-note{border-color:#d0a969!important;color:#ffebc7}
@media(max-width:680px){.local-accounts{grid-template-columns:1fr}.local-account img{width:61px;height:76px}.local-account strong{font-size:17px}}

/* Caisse manuelle RP : deux formulaires distincts + registre des mouvements */
.cash-balance{background:#e8d7a8!important;border-color:#8c6a37!important}.cash-balance strong{color:#682719}
.cash-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin:20px 0 25px}
.cash-form{background:#f2dfb6 url('assets/parchment.webp') repeat;border:2px ridge #ac8858;box-shadow:inset 0 0 0 3px #f7e7be,0 4px 8px #4c2d1933;padding:18px 20px;display:flex;flex-direction:column;gap:11px}
.cash-form h2{display:flex;align-items:center;gap:10px;margin:0 0 5px;font-size:clamp(19px,2vw,25px)}
.cash-emblem{border:1px solid #774c2a;width:29px;height:29px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#ffeed0;background:#2e653a;font-size:21px;box-shadow:inset 0 1px 2px #0006;flex-shrink:0}.cash-emblem.negative{background:#86291f}
.cash-form .field-label{display:flex;flex-direction:column;gap:5px}.cash-form .text-control{width:100%;max-width:100%;box-sizing:border-box}.cash-form textarea{resize:vertical;min-height:65px}
.cash-form .btn{align-self:stretch;margin-top:auto}.btn-green{background:#30643a;color:#fff7df;border-color:#18371f}.btn-green:hover{background:#44794a}
@media(max-width:690px){.cash-actions{grid-template-columns:1fr}.cash-form{padding:14px}.cash-balance strong{font-size:28px}}

/* Planche des marchandises de Troskovice — choix par grandes familles, aucune icône emoji */
.modal:has(.icon-groups-scroll){width:min(1180px,96vw);max-height:94vh;display:flex;flex-direction:column;overflow:hidden}
.modal:has(.icon-groups-scroll) .icon-modal-header{flex:none;padding-right:24px}
.modal:has(.icon-groups-scroll) .icon-filters{flex:none;flex-wrap:wrap;overflow:visible;gap:6px;padding:4px 0 12px;border-bottom:1px solid #b99862}
.icon-filters .filter-chip{font-family:var(--serif);font-size:13px;border-radius:4px}
.filter-count{display:inline-block;margin-left:5px;color:#6b4d2c;font-family:sans-serif;font-size:10px}
.filter-chip.active .filter-count{color:#ebd7bd}
.icon-groups-scroll{flex:1;min-height:100px;overflow-y:auto;scrollbar-color:#b08b56 #f1dfb5;padding:3px 7px 15px}
.icon-group{padding:4px 0 10px}
.icon-group-heading{display:flex;gap:12px;align-items:baseline;border-bottom:1px solid #b89867;margin:9px 0 8px;padding:0 3px 5px}
.icon-group-heading h3{font-family:var(--serif);font-size:22px;margin:0;color:#542b16}
.icon-group-heading span{font-family:var(--serif);font-size:12px;color:#70573c}
.icon-group .icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));min-height:0;gap:7px;margin:0}
.icon-group .icon-tile{display:flex;flex-direction:column;gap:3px;padding:5px 3px;min-height:88px;box-sizing:border-box}
.icon-group .icon-tile .item-thumb{width:57px;height:57px;max-width:100%;aspect-ratio:1/1;object-fit:contain}
.icon-tile-name{font-size:10px;line-height:1.1;color:#4e3920;min-height:20px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:90px;text-align:center}
.icon-group .icon-tile.selected .icon-tile-name{color:#681e16;font-weight:bold}
.modal:has(.icon-groups-scroll) .icon-bottom{flex:none;min-height:42px;padding-top:9px;border-top:1px solid #b89867}
.commerce-icon-picker{max-height:340px;overflow-y:auto;border:1px solid #bfa274;background:#f9e9c780;padding:8px;margin-top:7px}
.commerce-icon-section{padding:3px 0 10px;border-bottom:1px solid #c2a67c}
.commerce-icon-section h3{margin:7px 0;font-size:16px;color:#63301d}
.commerce-icons{max-height:none;overflow:visible;border:0;background:none;grid-template-columns:repeat(auto-fill,minmax(77px,1fr));gap:7px}
.commerce-icons label{display:flex;flex-direction:column;text-align:center;gap:2px;cursor:pointer;padding:4px;background:#edd5aa;border:1px solid #bf9b62;min-height:89px}
.commerce-icons label:has(input:checked){outline:2px solid #8b2d19;background:#f4dfb3}
.commerce-icons label small{font-size:10px;line-height:1.15;max-width:80px;overflow:hidden;text-overflow:ellipsis}
.commerce-icons .item-thumb{height:47px;width:47px;object-fit:contain}
@media(max-width:680px){.modal:has(.icon-groups-scroll){max-height:98vh}.modal:has(.icon-groups-scroll) .icon-filters{flex-wrap:nowrap;overflow-x:auto}.icon-group .icon-grid{grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:5px}.icon-group-heading h3{font-size:17px}.icon-group .icon-tile{min-height:79px}.icon-group .icon-tile .item-thumb{width:49px;height:49px}.icon-group .icon-tile-name{font-size:9px}}

/* Achat privé et vente publique : les deux montants restent lisibles sur PC et mobile. */
.data-table .col-price{min-width:108px;width:120px}
.product-preview .preview-row small{display:block;line-height:1.45}

/* Lots, catégories, archives et stocks — version améliorée */
.compact-select{width:auto;max-width:235px;min-width:145px;flex:0 1 auto}
.archived-product{opacity:.72}
.row-sub{display:block;font-size:12px;color:#6a563c;margin-top:3px;white-space:normal}
.action-group{flex-wrap:wrap}
#catalog-category,#catalog-status,#history-filter,#client-category{max-width:100%;min-height:38px}
#catalog-body .col-actions{min-width:225px}
#catalog-body .col-price{white-space:nowrap}
@media(max-width:950px){.toolbar{flex-wrap:wrap}.compact-select{flex:1 1 155px;max-width:none}}

/* Bilan financier, journal de modifications et transactions corrigées. */
.date-toolbar{flex-wrap:wrap;gap:12px;align-items:end}
.filter-date-label{font-size:13px;display:inline-flex;gap:6px;align-items:center;white-space:nowrap;color:#533a23}
.filter-date-label .text-control{min-width:130px;max-width:180px}
.cancelled-entry{opacity:.68;background:rgba(110,43,31,.08)}
.cancelled-entry td:first-child{text-decoration:line-through;text-decoration-color:#7b3a32}
#finance-results .stats-row{flex-wrap:wrap;margin-top:12px}
#finance-results .stats-card{flex:1 1 175px}
#audit-results td:nth-child(4){min-width:240px}
#history-results .entry-table td:last-child{min-width:135px}
#history-results .action-group{display:flex;flex-wrap:wrap;gap:4px}
@media(max-width:700px){.filter-date-label{flex:1 1 130px}.filter-date-label .text-control{min-width:90px;width:100%}}

/* Mise à jour navigation compacte — Registres / Administration regroupés. */
.sidebar-frame{padding:8px 7px 7px}
.sidebar .brand{margin-bottom:5px}
.sidebar .brand-crest{max-height:70px;object-fit:contain}
.sidebar .brand-name{font-size:20px;line-height:1.12}
.navigation{overflow:auto;min-height:0;scrollbar-width:thin;scrollbar-color:#927044 transparent;padding-right:2px}
.navigation .nav-separator{font-size:10px;padding:13px 9px 5px;letter-spacing:.12em}
.navigation .nav-link{min-height:38px;font-size:14px;padding:7px 9px;gap:10px;border-radius:3px;white-space:normal}
.navigation .nav-link.active{font-weight:700}
.menu-symbol{width:19px;height:19px;flex:none;color:#e1b977;display:block}
.nav-link.active .menu-symbol{color:#493018}
.nav-group{margin:2px 0}
.nav-group>summary{cursor:pointer;display:flex;gap:10px;align-items:center;padding:9px;color:#f1dcad;font-size:14px;border:1px solid transparent;border-radius:3px;list-style:none;user-select:none}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary:hover{background:rgba(211,174,102,.13)}
.nav-chevron{width:15px;height:15px;margin-left:auto;transition:transform .15s;color:#cba269}
.nav-group[open] .nav-chevron{transform:rotate(180deg)}
.nav-group-content{margin:0 0 4px 14px;padding-left:9px;border-left:1px solid #9c754488}
.nav-group-content .nav-link{font-size:13px;min-height:35px;padding:6px;gap:7px}
.nav-group-content .menu-symbol{width:17px;height:17px}
.nav-logout{margin:8px 0 2px;border-top:1px solid #9c754488;padding-top:7px}
.nav-footer{min-height:59px;padding:7px 4px 3px;gap:8px}
.portrait-nav{width:39px;height:44px}
.sidebar .nav-footer strong{font-size:13px}
.sidebar .nav-footer small{font-size:11px}
@media(min-width:1650px){.sidebar .nav-link{min-height:40px;font-size:15px}}
@media(max-width:1100px){.sidebar .nav-link{font-size:13px;min-height:36px}.sidebar .brand-name{font-size:18px}}
/* Le menu Options est flottant (hors du tableau et de sa zone de défilement). */
#catalog-body .action-group{display:flex;align-items:center;flex-wrap:nowrap;gap:5px}
#catalog-body .col-actions{min-width:230px;white-space:nowrap}
.product-options-trigger{font:700 13px var(--serif);white-space:nowrap;border:1px solid #9a7f58;border-radius:3px;background:#e6d0a6;color:#312511;min-height:31px;padding:5px 9px;cursor:pointer}
.product-options-trigger:hover,.product-options-trigger[aria-expanded="true"]{background:#f5e2bc;border-color:#77532e}
.floating-product-options{position:fixed;z-index:80;display:flex;flex-direction:column;gap:5px;min-width:156px;max-width:calc(100vw - 16px);padding:8px;background:#ecd7ad url('assets/parchment.webp') repeat;border:1px solid #8f6a40;box-shadow:0 5px 17px rgba(29,17,6,.36);border-radius:4px}
.floating-product-options .btn{width:100%;text-align:left;white-space:nowrap}
.btn-danger-soft{color:#732a20!important;border-color:#a4534a!important;background:#f5dfd2!important}
.duplicate-warning{padding:10px 14px;background:#ffebbe;border-left:4px solid #9f6832}
.public-catalog-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:15px;border-bottom:1px solid #b99a67;padding-bottom:10px}
.public-context{text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700;color:#80613c}
.public-empty{padding:25px 12px;text-align:center;max-width:620px;margin:auto}
.public-shops{background:#e8d2a5}.public-catalog{background:#f8e9c9}
.public-shop.current{outline:2px solid #9f793d;outline-offset:-2px;font-weight:700}
@media(max-width:720px){.navigation{overflow:auto;max-height:calc(100vh - 185px)}.sidebar .brand-crest{max-height:60px}}

/* Pictogrammes SVG lisibles sur les raccourcis de l’accueil. */
.quick-tile .quick-symbol svg{height:37px;width:37px;color:#79592f;display:block;margin:0 auto 4px;stroke-width:1.6}

/* Zone de suppression protégée dans les fiches de commerce. */
.shop-danger-zone{margin-top:16px;padding:14px;background:#f2dfc1;border:1px solid #a56856;border-left:4px solid #963f37;border-radius:4px}
.shop-danger-zone h3{margin-top:0;color:#7d2721}.shop-danger-zone p{font-size:14px;line-height:1.45}
