:root{
  --y:#F5C800;--bk:#141414;--bk2:#1E1E1E;--bk3:#2A2A2A;
  --wh:#FAFAF8;--g1:#F2F1ED;--g2:#E4E2DB;--g3:#B8B5AB;--g4:#6E6B62;
  --green:#27AE60;--red:#C0392B;--blue:#1A6B9A;
  --pers:#F5C800;--corps:#3B9EE0;--env:#3DB85A;--autres:#E05A8A;--spirit:#C0392B;
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;font-family:'DM Sans',sans-serif;background:var(--wh);color:var(--bk);}
.app{display:flex;height:100vh;overflow:hidden;}

/* SIDEBAR */
.sidebar{width:220px;min-width:220px;background:var(--bk2);display:flex;flex-direction:column;overflow-y:auto;}
.sb-logo{padding:1rem;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--bk3);}
.sb-logo-txt{font-family:'DM Serif Display',serif;color:var(--wh);font-size:.85rem;line-height:1.25;}
.sb-logo-txt span{color:var(--y);}
.sb-section-label{padding:.5rem .5rem .25rem;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g4);margin-top:.25rem;}
.sb-camps{padding:.25rem .5rem;}
.sb-camp-item{display:flex;align-items:center;gap:8px;padding:.42rem .75rem;border-radius:6px;cursor:pointer;transition:background .15s;}
.sb-camp-item:hover{background:var(--bk3);}
.sb-camp-item.active{background:var(--bk3);}
.camp-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.camp-label{color:var(--g3);font-size:.78rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-camp-item.active .camp-label{color:var(--wh);}
.sb-new-camp{margin:.35rem .5rem;padding:.42rem .75rem;background:none;border:1px dashed var(--bk3);border-radius:6px;color:var(--g4);font-family:'DM Sans',sans-serif;font-size:.76rem;cursor:pointer;width:calc(100% - 1rem);text-align:left;transition:all .15s;}
.sb-new-camp:hover{border-color:var(--y);color:var(--y);}
.sb-divider{height:1px;background:var(--bk3);margin:.25rem .75rem;}
.sb-nav{padding:.25rem .5rem;flex:1;}
.sb-item{display:block;width:100%;text-align:left;padding:.38rem .75rem;border-radius:5px;border:none;background:none;color:var(--g3);font-family:'DM Sans',sans-serif;font-size:.79rem;cursor:pointer;transition:all .15s;}
.sb-item:hover{background:var(--bk3);color:var(--wh);}
.sb-item.active{background:var(--bk3);color:var(--y);font-weight:600;}
.sb-item.disabled{opacity:.3;cursor:default;pointer-events:none;}
.sb-user{padding:.75rem 1rem;border-top:1px solid var(--bk3);display:flex;align-items:center;gap:8px;}
.u-av{width:28px;height:28px;border-radius:50%;background:var(--y);display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:var(--bk);flex-shrink:0;}
.u-name{color:var(--g3);font-size:.78rem;}

/* MAIN */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;}
.topbar{background:var(--bk);padding:1.1rem 2rem .9rem;flex-shrink:0;position:relative;overflow:hidden;}
.topbar::after{content:'';position:absolute;top:0;right:0;width:35%;height:100%;background:repeating-linear-gradient(45deg,transparent,transparent 18px,rgba(245,200,0,.04) 18px,rgba(245,200,0,.04) 36px);pointer-events:none;}
.topbar h1{font-family:'DM Serif Display',serif;color:var(--wh);font-size:1.35rem;position:relative;z-index:1;}
.topbar-sub{color:var(--g3);font-size:.72rem;margin-top:.15rem;position:relative;z-index:1;}
.content{flex:1;overflow-y:auto;padding:1.6rem 2rem;}
.page{display:none;animation:fadeIn .16s ease;}
.page.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

/* COMPONENTS */
.ph{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.4rem;gap:.75rem;flex-wrap:wrap;}
.ph h2{font-family:'DM Serif Display',serif;font-size:1.3rem;}
.ph-right{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;}
.btn{border:none;border-radius:5px;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:600;transition:opacity .15s,transform .1s;display:inline-flex;align-items:center;gap:5px;}
.btn:hover{opacity:.85;}.btn:active{transform:scale(.97);}
.btn-sm{font-size:.72rem;padding:.25rem .55rem;}
.btn-md{font-size:.81rem;padding:.44rem .9rem;}
.btn-lg{font-size:.86rem;padding:.54rem 1.1rem;}
.btn-y{background:var(--y);color:var(--bk);}
.btn-g{background:var(--green);color:#fff;}
.btn-b{background:var(--blue);color:#fff;}
.btn-r{background:var(--red);color:#fff;}
.btn-gh{background:var(--g2);color:var(--bk);}
.btn-dk{background:var(--bk);color:var(--wh);}

/* TAGS */
.tags-input-wrap{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;border:1px solid var(--g2);border-radius:5px;padding:.35rem .5rem;min-height:36px;background:var(--wh);cursor:text;transition:border-color .2s;}
.tags-input-wrap:focus-within{border-color:var(--y);}
.tag-chip{display:inline-flex;align-items:center;gap:.3rem;background:var(--bk);color:var(--wh);border-radius:4px;padding:.18rem .5rem;font-size:.75rem;font-weight:600;}
.tag-chip button{border:none;background:none;color:var(--g3);cursor:pointer;font-size:.8rem;line-height:1;padding:0;}
.tag-chip button:hover{color:#fff;}
.tag-input{border:none;outline:none;font-family:'DM Sans',sans-serif;font-size:.82rem;min-width:80px;flex:1;background:none;}
.tag-suggestions{position:absolute;background:var(--wh);border:1px solid var(--g2);border-radius:5px;box-shadow:0 4px 16px rgba(0,0,0,.1);z-index:200;min-width:160px;max-height:160px;overflow-y:auto;}
.tag-sug-item{padding:.4rem .75rem;font-size:.82rem;cursor:pointer;}
.tag-sug-item:hover{background:var(--g1);}

/* STATS */
.stats-row{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--g2);border:1px solid var(--g2);border-radius:8px;overflow:hidden;margin-bottom:1.4rem;}
.stat{background:var(--wh);padding:.85rem;text-align:center;}
.stat-n{font-family:'DM Serif Display',serif;font-size:1.6rem;display:block;}
.stat-l{font-size:.6rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--g4);}

/* OBJECTIVES */
.obj-card{border:1px solid var(--g2);border-radius:7px;margin-bottom:.8rem;overflow:hidden;}
.obj-hd{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;background:var(--g1);gap:.5rem;}
.obj-hd-left{display:flex;align-items:center;gap:.45rem;flex:1;min-width:0;}
.obj-num{font-weight:700;font-size:.78rem;color:var(--g4);flex-shrink:0;}
.obj-ttl{font-weight:600;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.obj-btns{display:flex;gap:3px;flex-shrink:0;}
.obj-sp{display:flex;align-items:center;justify-content:space-between;padding:.38rem 1rem .38rem 2.1rem;font-size:.8rem;border-bottom:1px solid var(--g1);}
.obj-sp:last-child{border:none;}
.obj-sp-num{color:var(--g4);margin-right:.35rem;font-size:.73rem;}

/* FIL ROUGE */
.fil-editor{min-height:240px;border:1px solid var(--g2);border-radius:8px;padding:1.1rem;font-family:'DM Sans',sans-serif;font-size:.86rem;line-height:1.75;outline:none;background:var(--g1);cursor:default;transition:border-color .2s;}
.fil-editor.editable{background:var(--wh);cursor:text;border-color:var(--y);}

/* PICASSO */
.pic-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.85rem;}
.tgl-group{display:flex;border:1px solid var(--g2);border-radius:5px;overflow:hidden;}
.tgl-btn{padding:.28rem .62rem;font-family:'DM Sans',sans-serif;font-size:.73rem;font-weight:600;border:none;cursor:pointer;background:var(--wh);color:var(--g4);transition:all .15s;}
.tgl-btn.on{background:var(--bk);color:var(--wh);}
.resp-filter-wrap{position:relative;}
.resp-filter-btn{display:flex;align-items:center;gap:.35rem;padding:.28rem .7rem;font-family:'DM Sans',sans-serif;font-size:.73rem;font-weight:600;border:1px solid var(--g2);border-radius:5px;background:var(--wh);color:var(--g4);cursor:pointer;transition:all .15s;}
.resp-filter-btn.active{background:var(--bk);color:var(--wh);border-color:var(--bk);}
.resp-dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;background:var(--wh);border:1px solid var(--g2);border-radius:6px;box-shadow:0 4px 18px rgba(0,0,0,.12);z-index:300;min-width:180px;padding:.3rem;}
.resp-dropdown.open{display:block;}
.resp-dd-item{display:flex;align-items:center;gap:.5rem;padding:.38rem .65rem;border-radius:4px;cursor:pointer;font-size:.8rem;}
.resp-dd-item:hover{background:var(--g1);}
.resp-dd-item input{accent-color:var(--y);}
.pic-wrap{overflow-x:auto;border:1px solid var(--g2);border-radius:8px;}
.pgrid{border-collapse:collapse;font-size:.68rem;width:100%;}
.pgrid th{background:var(--bk);color:var(--wh);padding:.38rem .28rem;text-align:center;white-space:nowrap;border:1px solid var(--bk3);font-weight:500;font-size:.65rem;}
.pgrid th:first-child{width:36px;background:var(--bk2);}
.pgrid td{border:1px solid var(--g2);vertical-align:top;padding:1px;min-width:0;}
.pgrid td.tc{background:var(--g1);text-align:right;padding:2px 5px;color:var(--g4);font-size:.63rem;width:36px;min-width:36px;}
.pcell{border-radius:3px;padding:1px 3px;font-size:.64rem;line-height:1.25;cursor:pointer;transition:opacity .15s;margin:1px;display:flex;align-items:flex-start;gap:2px;overflow:hidden;}
.pcell:hover{filter:brightness(1.1);}
.pcell-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;}
.pcell-resp{font-size:.58rem;opacity:.8;white-space:nowrap;}
.t-sc{background:#3B9EE0;color:#fff;}.t-ac{background:#F5C800;color:#000;}
.t-aa{background:#E05A8A;color:#fff;}.t-d{background:#ddd;color:#444;}
.r-pers{background:#F5C800;color:#000;}.r-corps{background:#3B9EE0;color:#fff;}
.r-env{background:#3DB85A;color:#fff;}.r-autres{background:#E05A8A;color:#fff;}
.r-spirit{background:#C0392B;color:#fff;}
.pcell-dim{background:#e8e6e0 !important;color:#aaa !important;cursor:pointer;}
.pcell-dim-2{background:#d4d1cb !important;color:#999 !important;}

/* ACTIVITIES TABLE */
.act-ftabs{display:flex;gap:3px;margin-bottom:.85rem;flex-wrap:wrap;}
.aftab{padding:.3rem .8rem;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:.74rem;font-weight:600;border-radius:4px;color:#fff;opacity:.45;transition:opacity .15s;}
.aftab.active{opacity:1;}
.tbl{width:100%;border-collapse:collapse;}
.tbl th{text-align:left;padding:.48rem .62rem;border-bottom:2px solid var(--g2);font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--g4);}
.tbl td{padding:.52rem .62rem;border-bottom:1px solid var(--g2);font-size:.8rem;vertical-align:middle;}
.tbl tr:hover td{background:var(--g1);}
.type-badge{display:inline-block;padding:.13rem .38rem;border-radius:3px;font-size:.66rem;font-weight:700;}

/* MATERIAL PAGE */
.mat-section{margin-bottom:2rem;}
.mat-section-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem;}
.mat-section-hd h3{font-family:'DM Serif Display',serif;font-size:1.05rem;}
.checklist{border:1px solid var(--g2);border-radius:8px;overflow:hidden;}
.cl-group{border-bottom:1px solid var(--g2);}
.cl-group:last-child{border:none;}
.cl-group-hd{display:flex;align-items:center;gap:.7rem;padding:.55rem .9rem;background:var(--g1);cursor:pointer;user-select:none;}
.cl-group-hd:hover{background:var(--g2);}
.cl-group-name{font-weight:600;font-size:.83rem;flex:1;}
.cl-progress{height:4px;border-radius:2px;background:var(--g2);width:60px;flex-shrink:0;overflow:hidden;}
.cl-progress-bar{height:100%;background:var(--green);border-radius:2px;transition:width .3s;}
.cl-group-count{font-size:.7rem;color:var(--g4);}
.cl-chevron{color:var(--g4);font-size:.72rem;transition:transform .2s;}
.cl-items{padding:.35rem .8rem;}
.cl-item{display:flex;align-items:center;gap:.6rem;padding:.35rem .2rem;border-bottom:1px solid var(--g1);}
.cl-item:last-child{border:none;}
.cl-item input[type=checkbox]{width:15px;height:15px;accent-color:var(--green);cursor:pointer;flex-shrink:0;}
.cl-item.checked .cl-item-label{text-decoration:line-through;color:var(--g3);}
.cl-item-label{font-size:.81rem;flex:1;}
.cl-item-qty{font-size:.7rem;color:var(--g4);white-space:nowrap;}
.cl-item-act{font-size:.68rem;color:var(--g4);white-space:nowrap;padding:.1rem .35rem;background:var(--g2);border-radius:3px;}
.cl-empty{padding:1.2rem;text-align:center;color:var(--g4);font-size:.8rem;font-style:italic;}
/* Add item row at bottom of checklist */
.cl-add-row{display:flex;gap:.4rem;padding:.5rem .8rem;background:var(--g1);border-top:1px solid var(--g2);}
.cl-add-row input{flex:1;border:1px solid var(--g2);border-radius:4px;padding:.3rem .55rem;font-family:'DM Sans',sans-serif;font-size:.8rem;background:var(--wh);outline:none;}
.cl-add-row input:focus{border-color:var(--y);}
.cl-add-row input.qty{flex:0 0 62px;}

/* SETTINGS */
.settings-sec{margin-bottom:2rem;}
.settings-sec h3{font-family:'DM Serif Display',serif;font-size:1rem;margin-bottom:.8rem;padding-bottom:.38rem;border-bottom:2px solid var(--bk);}
.fm-field{margin-bottom:.75rem;}
.fm-field label{display:block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--g4);margin-bottom:.26rem;}
.fm-input{width:100%;max-width:500px;border:1px solid var(--g2);border-radius:5px;padding:.48rem .62rem;font-family:'DM Sans',sans-serif;font-size:.83rem;background:var(--wh);color:var(--bk);outline:none;transition:border-color .2s;}
.fm-input:focus{border-color:var(--y);}
.fm-row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;max-width:500px;}

/* ACTIVITY EDITOR PANEL */
.panel{display:none;position:absolute;inset:0;background:var(--wh);z-index:100;flex-direction:column;}
.panel.open{display:flex;}
.panel-top{background:var(--bk);padding:.85rem 1.6rem;display:flex;align-items:center;gap:.85rem;flex-shrink:0;position:sticky;top:0;z-index:10;}
.panel-top h2{font-family:'DM Serif Display',serif;color:var(--wh);flex:1;font-size:1.05rem;}
.panel-body{flex:1;overflow-y:auto;}
.panel-inner{max-width:800px;margin:0 auto;padding:1.6rem 1.5rem 3rem;width:100%;}
.section-sep{text-align:center;font-size:.63rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--g4);margin:1.6rem 0 1rem;padding-top:1.3rem;border-top:2px solid var(--g2);}
.section-sep.first{border-top:none;margin-top:0;padding-top:0;}
.type-tabs{display:flex;border:1px solid var(--g2);border-radius:6px;overflow:hidden;margin-bottom:1.2rem;}
.type-tab{flex:1;padding:.52rem .25rem;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:600;background:var(--wh);transition:all .15s;border-right:1px solid var(--g2);text-align:center;}
.type-tab:last-child{border-right:none;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.8rem;}
.ae-fm .fm-input{max-width:100%;}
/* Material editor inside activity */
.mat-editor-wrap{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;}
.mat-editor{border:1px solid var(--g2);border-radius:6px;overflow:visible;}
.mat-editor-hd{padding:.4rem .8rem;background:var(--g1);font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--g4);}
.mat-editor-items{padding:.3rem .7rem;min-height:40px;}
.mat-item-row{display:flex;align-items:center;gap:.4rem;padding:.28rem 0;border-bottom:1px solid var(--g1);}
.mat-item-row:last-child{border:none;}
.mat-item-label{flex:1;border:none;border-bottom:1px solid transparent;padding:.18rem .25rem;font-family:'DM Sans',sans-serif;font-size:.8rem;background:none;outline:none;}
.mat-item-label:focus{border-bottom-color:var(--y);}
.mat-item-qty{width:58px;border:none;border-bottom:1px solid transparent;padding:.18rem .25rem;font-family:'DM Sans',sans-serif;font-size:.75rem;color:var(--g4);background:none;outline:none;}
.mat-item-qty:focus{border-bottom-color:var(--y);}
.mat-add-inline{display:flex;gap:.35rem;padding:.38rem .7rem;border-top:1px solid var(--g2);background:var(--g1);position:relative;}
.mat-add-inline input{flex:1;border:1px solid var(--g2);border-radius:4px;padding:.28rem .5rem;font-size:.78rem;font-family:'DM Sans',sans-serif;background:var(--wh);outline:none;}
.mat-add-inline input:focus{border-color:var(--y);}
.mat-add-inline input.qty{flex:0 0 58px;}
.mat-suggestions{position:absolute;top:100%;left:.7rem;right:.7rem;background:var(--wh);border:1px solid var(--g2);border-radius:5px;box-shadow:0 4px 14px rgba(0,0,0,.1);z-index:500;max-height:140px;overflow-y:auto;}
.mat-sug-item{padding:.38rem .65rem;font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;}
.mat-sug-item:hover{background:var(--g1);}
.mat-sug-badge{font-size:.65rem;color:var(--g4);background:var(--g2);padding:.1rem .35rem;border-radius:3px;}

/* MODALS */
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:500;align-items:center;justify-content:center;}
.overlay.open{display:flex;}
.modal{background:var(--wh);border-radius:9px;padding:1.5rem;max-width:420px;width:92%;animation:su .16s ease;max-height:88vh;overflow-y:auto;}
@keyframes su{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
.modal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem;}
.modal-hd h3{font-family:'DM Serif Display',serif;font-size:1.1rem;}
.modal-x{background:none;border:none;cursor:pointer;font-size:.95rem;color:var(--g4);}
.modal-acts{display:flex;gap:.55rem;justify-content:flex-end;margin-top:1.1rem;}

/* CAMPS HOME */
.camps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem;margin-top:1.2rem;}
.camp-card{border:1px solid var(--g2);border-radius:8px;padding:1.1rem;cursor:pointer;transition:all .15s;}
.camp-card:hover{border-color:var(--y);transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,.07);}
.camp-card h3{font-family:'DM Serif Display',serif;font-size:1rem;margin-bottom:.35rem;}
.camp-card p{font-size:.76rem;color:var(--g4);line-height:1.5;}
.camp-card-meta{display:flex;gap:.4rem;margin-top:.65rem;flex-wrap:wrap;}
.ctag{font-size:.66rem;font-weight:600;padding:.18rem .45rem;border-radius:3px;background:var(--g2);color:var(--g4);}

/* TOAST */
.toast{position:fixed;bottom:1.2rem;right:1.2rem;background:var(--bk);color:var(--wh);padding:.55rem .9rem;border-radius:6px;font-size:.78rem;display:flex;align-items:center;gap:6px;transform:translateY(48px);opacity:0;transition:all .22s;z-index:9999;pointer-events:none;}
.toast.show{transform:none;opacity:1;}
.toast-dot{width:6px;height:6px;background:var(--y);border-radius:50%;flex-shrink:0;}

/* PICASSO LEGEND */
.pic-legend{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem;}
.pic-legend-item{display:flex;align-items:center;gap:.3rem;font-size:.7rem;color:var(--g4);}
.pic-legend-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0;}

/* OBJECTIVE ACTIVITY LINKS */
.obj-act-links{padding:.4rem 1rem .4rem 2.1rem;background:var(--wh);display:none;}
.obj-act-links.show{display:block;}
.obj-act-link-item{display:inline-flex;align-items:center;gap:.3rem;font-size:.73rem;padding:.15rem .45rem;border-radius:3px;margin:.15rem .2rem .15rem 0;cursor:pointer;}
.obj-act-link-item:hover{filter:brightness(.9);}

/* MATERIAL ACTIVITY TAG */
.cl-item-acts{display:flex;gap:.2rem;flex-wrap:wrap;align-items:center;}
.cl-item-act-tag{font-size:.66rem;color:var(--g4);padding:.1rem .32rem;background:var(--g2);border-radius:3px;white-space:nowrap;}
.cl-item-qty-total{font-size:.7rem;font-weight:600;color:var(--bk);background:var(--g2);padding:.1rem .38rem;border-radius:3px;white-space:nowrap;}

/* ANNEXES */
.annex-section{margin-top:1.2rem;padding-top:1rem;border-top:2px solid var(--g2);}
.annex-list{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem;}
.annex-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .7rem;background:var(--g1);border-radius:5px;border:1px solid var(--g2);}
.annex-item-name{flex:1;font-size:.8rem;font-weight:500;}
.annex-item-size{font-size:.7rem;color:var(--g4);}

/* PDF EXPORT MODAL */
.export-check-list{display:flex;flex-direction:column;gap:.5rem;margin:.8rem 0;}
.export-check-item{display:flex;align-items:center;gap:.6rem;padding:.38rem .6rem;border-radius:5px;background:var(--g1);cursor:pointer;}
.export-check-item input{accent-color:var(--y);width:15px;height:15px;}
.export-check-item label{font-size:.83rem;cursor:pointer;flex:1;}

/* PRINT */
@media print {
  .sidebar,.topbar,.ph-right,.obj-btns,.btn,.panel,.toast,.overlay,.confirm-overlay,.pic-toolbar { display:none !important; }
  .app { display:block; height:auto; }
  .main { overflow:visible; }
  .content { padding:.5rem; overflow:visible; }
  .page { display:block !important; page-break-after:always; }
  .pic-wrap { overflow:visible; }
  .pgrid { width:100%; }
  body { background:#fff; }
}

/* EMPTY */
.empty{text-align:center;padding:2.5rem 1rem;color:var(--g4);}
.empty-icon{font-size:2.2rem;margin-bottom:.65rem;}
.empty p{font-size:.84rem;line-height:1.6;}

/* CONFIRM DIALOG */
.confirm-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9000;align-items:center;justify-content:center;}
.confirm-overlay.open{display:flex;}
.confirm-box{background:var(--wh);border-radius:9px;padding:1.4rem;max-width:360px;width:90%;animation:su .15s ease;}
.confirm-box h3{font-family:'DM Serif Display',serif;font-size:1.05rem;margin-bottom:.5rem;}
.confirm-box p{font-size:.83rem;color:var(--g4);line-height:1.5;margin-bottom:1.1rem;}
.confirm-acts{display:flex;gap:.5rem;justify-content:flex-end;}

/* RESPONSABILITÉS */
.resp-card{border:1px solid var(--g2);border-radius:7px;margin-bottom:.8rem;overflow:hidden;transition:box-shadow .15s;}
.resp-card:hover{box-shadow:0 2px 12px rgba(0,0,0,.07);}
.resp-card-hd{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--g1);gap:.5rem;}
.resp-card-hd-left{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0;}
.resp-card-icon{width:30px;height:30px;border-radius:50%;background:var(--bk);color:var(--y);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0;}
.resp-card-title{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.resp-card-body{padding:.75rem 1rem;font-size:.82rem;color:var(--g4);line-height:1.6;}
.resp-card-members{display:flex;gap:.35rem;flex-wrap:wrap;padding:.5rem 1rem .75rem;border-top:1px solid var(--g1);}
.resp-member-tag{display:inline-flex;align-items:center;gap:.3rem;background:var(--bk);color:var(--wh);border-radius:4px;padding:.18rem .5rem;font-size:.73rem;font-weight:600;}

/* PICASSO DUPLICATE */
.pcell-actions{display:none;position:absolute;top:2px;right:2px;gap:2px;}
.pcell:hover .pcell-actions{display:flex;}
.pcell-action-btn{width:16px;height:16px;border-radius:2px;background:rgba(0,0,0,.35);border:none;cursor:pointer;color:#fff;font-size:.6rem;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .1s;}
.pcell-action-btn:hover{background:rgba(0,0,0,.6);}

/* TEMPLATES */
.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;margin-top:.5rem;}
.tpl-card{border:1px solid var(--g2);border-radius:7px;padding:.9rem;cursor:pointer;transition:all .15s;position:relative;}
.tpl-card:hover{border-color:var(--y);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.07);}
.tpl-card-badge{display:inline-block;padding:.12rem .4rem;border-radius:3px;font-size:.65rem;font-weight:700;margin-bottom:.4rem;}
.tpl-card-name{font-weight:600;font-size:.86rem;margin-bottom:.25rem;}
.tpl-card-meta{font-size:.72rem;color:var(--g4);}
.tpl-card-del{position:absolute;top:.5rem;right:.5rem;background:none;border:none;color:var(--g3);cursor:pointer;font-size:.75rem;opacity:0;transition:opacity .15s;}
.tpl-card:hover .tpl-card-del{opacity:1;}
.tpl-card-del:hover{color:var(--red);}

/* MULTI-USER: PRESENCE BAR */
.presence-bar{display:flex;align-items:center;gap:.4rem;position:absolute;top:50%;right:1.5rem;transform:translateY(-50%);z-index:5;}
.presence-avatar{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;border:2px solid var(--bk);cursor:default;flex-shrink:0;transition:transform .15s;}
.presence-avatar:hover{transform:scale(1.15);}
.presence-avatar[title]:hover::after{content:attr(title);position:absolute;top:calc(100% + 4px);right:0;background:var(--bk);color:#fff;font-size:.68rem;padding:.2rem .5rem;border-radius:4px;white-space:nowrap;pointer-events:none;}
.presence-dot{width:7px;height:7px;border-radius:50%;background:var(--green);border:1.5px solid var(--bk);position:absolute;bottom:0;right:0;}
.sync-badge{display:flex;align-items:center;gap:.3rem;font-size:.65rem;color:var(--g3);padding:.2rem .5rem;border-radius:3px;background:rgba(255,255,255,.06);}
.sync-dot{width:6px;height:6px;border-radius:50%;background:var(--green);}
.sync-dot.syncing{background:var(--y);animation:pulse .7s ease-in-out infinite alternate;}
.sync-dot.conflict{background:var(--red);}
@keyframes pulse{from{opacity:.5}to{opacity:1}}

/* IDENTITY MODAL */
.identity-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:99999;align-items:center;justify-content:center;backdrop-filter:blur(3px);}
.identity-overlay.open{display:flex;}
.identity-box{background:var(--wh);border-radius:12px;padding:2rem;max-width:380px;width:92%;text-align:center;}
.identity-box h2{font-family:'DM Serif Display',serif;font-size:1.4rem;margin-bottom:.4rem;}
.identity-box p{font-size:.83rem;color:var(--g4);margin-bottom:1.2rem;}
.identity-avatar-preview{width:56px;height:56px;border-radius:50%;margin:0 auto .8rem;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;color:#fff;}
.color-picks{display:flex;gap:.5rem;justify-content:center;margin:.6rem 0 1rem;}
.color-pick{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .15s;}
.color-pick.active{border-color:var(--bk);transform:scale(1.2);}

/* VERSION CONFLICT BANNER */
.conflict-banner{display:none;background:#fff3cd;border-bottom:2px solid var(--y);padding:.5rem 1.5rem;font-size:.78rem;align-items:center;gap:.6rem;flex-shrink:0;}
.conflict-banner.show{display:flex;}

/* ── AUTH SCREEN ─────────────────────────────────────────── */
.auth-screen{
  position:fixed;inset:0;z-index:99999;
  background:var(--bk);
  display:flex;align-items:center;justify-content:center;
  font-family:'DM Sans',sans-serif;
}
.auth-screen.hidden{display:none;}
.auth-card{
  width:100%;max-width:420px;
  background:var(--bk2);
  border-radius:16px;
  border:1px solid var(--bk3);
  overflow:hidden;
  animation:authIn .35s cubic-bezier(.22,.68,0,1.2);
}
@keyframes authIn{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
.auth-header{
  background:var(--bk);
  padding:2.2rem 2rem 1.6rem;
  text-align:center;
  border-bottom:1px solid var(--bk3);
  position:relative;overflow:hidden;
}
.auth-header::after{
  content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(45deg,transparent,transparent 22px,rgba(245,200,0,.04) 22px,rgba(245,200,0,.04) 44px);
  pointer-events:none;
}
.auth-logo{
  width:54px;height:54px;margin:0 auto .9rem;
  background:var(--y);border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  position:relative;z-index:1;
}
.auth-title{
  font-family:'DM Serif Display',serif;
  color:var(--wh);font-size:1.6rem;
  position:relative;z-index:1;
}
.auth-sub{color:var(--g3);font-size:.8rem;margin-top:.3rem;position:relative;z-index:1;}
.auth-body{padding:1.8rem 2rem 2rem;}
.auth-midata-btn{
  width:100%;padding:.85rem 1.2rem;
  background:var(--y);border:none;border-radius:8px;
  font-family:'DM Serif Display',serif;font-size:1rem;
  color:var(--bk);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:.6rem;
  transition:opacity .15s,transform .1s;
  font-weight:600;letter-spacing:.01em;
}
.auth-midata-btn:hover{opacity:.9;transform:translateY(-1px);}
.auth-midata-btn:active{transform:scale(.98);}
.auth-midata-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.auth-midata-btn .midata-icon{
  width:22px;height:22px;background:var(--bk);border-radius:4px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.auth-divider{
  display:flex;align-items:center;gap:.7rem;
  color:var(--g4);font-size:.73rem;margin:1.2rem 0;
}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--bk3);}
.auth-manual-btn{
  width:100%;padding:.6rem 1rem;
  background:none;border:1px solid var(--bk3);border-radius:8px;
  color:var(--g3);font-family:'DM Sans',sans-serif;font-size:.82rem;
  cursor:pointer;transition:all .15s;
}
.auth-manual-btn:hover{border-color:var(--g4);color:var(--wh);}
.auth-manual-form{display:none;margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--bk3);}
.auth-manual-form.open{display:block;}
.auth-manual-form label{color:var(--g3);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:.3rem;}
.auth-manual-form input,.auth-manual-form select{
  width:100%;padding:.55rem .75rem;
  background:var(--bk3);border:1px solid var(--bk3);border-radius:6px;
  color:var(--wh);font-family:'DM Sans',sans-serif;font-size:.86rem;
  outline:none;transition:border-color .15s;margin-bottom:.75rem;
}
.auth-manual-form input::placeholder{color:var(--g4);}
.auth-manual-form input:focus,.auth-manual-form select:focus{border-color:var(--y);}
.auth-manual-form select option{background:var(--bk2);}
.auth-color-row{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap;}
.auth-color-dot{
  width:24px;height:24px;border-radius:50%;cursor:pointer;
  border:2px solid transparent;transition:all .15s;
}
.auth-color-dot.active{border-color:var(--wh);transform:scale(1.2);}
.auth-error{
  background:#3d1212;color:#ff8a8a;border-radius:6px;
  padding:.6rem .8rem;font-size:.78rem;margin-bottom:.8rem;
  display:none;
}
.auth-error.show{display:block;}
.auth-oauth-status{
  text-align:center;padding:1.5rem 1rem;
  color:var(--g3);font-size:.82rem;
}
.auth-oauth-status .spinner{
  width:32px;height:32px;border:3px solid var(--bk3);
  border-top-color:var(--y);border-radius:50%;
  animation:spin .8s linear infinite;margin:0 auto .8rem;
}
@keyframes spin{to{transform:rotate(360deg)}}
.auth-footer{
  text-align:center;margin-top:1.1rem;
  font-size:.72rem;color:var(--g4);
}
.auth-footer a{color:var(--g3);text-decoration:none;}
.auth-footer a:hover{color:var(--y);}
/* MIDATA badge */
.midata-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.18rem .55rem;border-radius:4px;font-size:.7rem;font-weight:700;}
.midata-badge.connected{background:#1a3a1a;color:#5dba5d;}
.midata-badge.disconnected{background:var(--bk3);color:var(--g4);}

.midata-import-card{border:1px solid var(--g2);border-radius:7px;padding:.75rem 1rem;margin-bottom:.5rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:.75rem;}
.midata-import-card:hover{border-color:var(--y);background:var(--g1);}
.midata-import-card.selected{border-color:var(--green);background:#e8f5e9;}
.midata-import-card-icon{font-size:1.4rem;flex-shrink:0;}
.midata-import-card-info{flex:1;min-width:0;}
.midata-import-card-name{font-weight:600;font-size:.88rem;margin-bottom:.15rem;}
.midata-import-card-meta{font-size:.73rem;color:var(--g4);}
.midata-import-card-check{width:18px;height:18px;border-radius:50%;border:2px solid var(--g2);flex-shrink:0;transition:all .15s;display:flex;align-items:center;justify-content:center;}
.midata-import-card.selected .midata-import-card-check{background:var(--green);border-color:var(--green);color:#fff;font-size:.7rem;}
.midata-token-section{background:var(--g1);border-radius:8px;padding:1rem 1.1rem;margin-bottom:1rem;}
.midata-tab-bar{display:flex;border-bottom:2px solid var(--g2);margin-bottom:1.2rem;}
.midata-tab{padding:.45rem .9rem;border:none;background:none;font-family:'DM Sans',sans-serif;font-size:.81rem;font-weight:600;color:var(--g4);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;}
.midata-tab.active{color:var(--bk);border-bottom-color:var(--y);}

/* ADMIN PANEL */
.admin-section{margin-bottom:2.2rem;}
.admin-section-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--bk);}
.admin-section-hd h3{font-family:'DM Serif Display',serif;font-size:1.1rem;}
.admin-role-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .55rem;border-radius:3px;font-size:.68rem;font-weight:700;}
.admin-role-abteilung{background:#7B3FA0;color:#fff;}
.admin-role-pfadi{background:var(--blue);color:#fff;}
.admin-role-local{background:var(--g3);color:var(--bk);}
.admin-tpl-editor{border:1px solid var(--g2);border-radius:7px;overflow:hidden;margin-bottom:.7rem;}
.admin-tpl-hd{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:var(--g1);}
.admin-tpl-hd-left{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0;}
.admin-tpl-name{font-weight:600;font-size:.86rem;}
.admin-tpl-body{padding:.75rem 1rem;font-size:.82rem;color:var(--g4);}
.admin-tpl-mats{display:flex;gap:.3rem;flex-wrap:wrap;padding:.4rem 1rem .7rem;border-top:1px solid var(--g1);}
.admin-tpl-mat{font-size:.68rem;background:var(--g2);padding:.12rem .4rem;border-radius:3px;color:var(--g4);}
.admin-access-denied{text-align:center;padding:3rem 1rem;}
.admin-access-denied .icon{font-size:2.8rem;margin-bottom:.8rem;}
.admin-access-denied h3{font-family:'DM Serif Display',serif;font-size:1.2rem;margin-bottom:.4rem;}
.admin-access-denied p{font-size:.83rem;color:var(--g4);line-height:1.6;max-width:380px;margin:0 auto;}
.admin-users-table{width:100%;border-collapse:collapse;font-size:.8rem;}
.admin-users-table th{text-align:left;padding:.42rem .7rem;border-bottom:2px solid var(--g2);font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g4);}
.admin-users-table td{padding:.5rem .7rem;border-bottom:1px solid var(--g1);vertical-align:middle;}
.admin-users-table tr:hover td{background:var(--g1);}
.role-select{border:1px solid var(--g2);border-radius:4px;padding:.2rem .4rem;font-family:'DM Sans',sans-serif;font-size:.75rem;background:var(--wh);cursor:pointer;}
.role-select:focus{outline:none;border-color:var(--y);}
.sb-item-admin{color:var(--y) !important;opacity:1 !important;}

/* IDENTITY MODAL TABS */
.id-tab-bar{display:flex;gap:0;border-bottom:2px solid var(--g2);margin-bottom:1.2rem;}
.id-tab{flex:1;padding:.42rem;border:none;background:none;font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:600;color:var(--g4);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;}
.id-tab.active{color:var(--bk);border-bottom-color:var(--y);}
.id-tab-content{display:none;}.id-tab-content.active{display:block;}


