* {
  box-sizing: border-box;
}
.invitation-result {
    max-width: 640px;
    margin: 24px auto;
    padding: 20px;
    border-radius: 10px;
    background: #fff;
}
.invitation-result form {
    display: grid;
    gap: 10px;
}
.invitation-result input {
    width: 100%;
    padding: 10px;
}
.invitation-link { font-family: monospace; }
.invitation-qr{margin:1.25rem 0}.invitation-qr>div{display:inline-block;padding:.75rem;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.invitation-qr img,.invitation-qr canvas{display:block;max-width:100%;height:auto}
.invitation-share-actions{display:flex;flex-wrap:wrap;gap:.65rem}.button-link{display:inline-block;padding:.55rem .8rem;border-radius:6px;background:#e2e8f0;color:#1e293b;text-decoration:none}.button-link:hover,.button-link:focus-visible{background:#bfdbfe;color:#1d4ed8}
.form-error { color: #a40000; font-weight: bold; }
.friends-panel { max-width:640px;margin:24px auto;padding:20px;border-radius:10px;background:#fff; }
.friends-panel li { margin:.5rem 0; }
.welcome-heading { display:flex;align-items:center;gap:.65rem;flex-wrap:wrap; }
.message-notification { padding:.3rem .6rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.85rem;text-decoration:none; }
.message-notification:hover { background:#b91c1c; }
.friend-unread { color:#dc2626;font-weight:bold; }
.user-invitation{padding:.35rem 0}.user-invitation>summary{cursor:pointer;font-weight:700}.user-invitation form{display:grid;gap:.45rem;margin-top:.5rem}.user-invitation label{font-size:.82rem}.user-invitation input{width:100%;min-width:220px;padding:.45rem}.user-invitation button{width:100%}
.chat-page { max-width:760px;margin:2rem auto;padding:1rem; }
.chat-messages { display:flex;flex-direction:column;gap:.75rem;margin:1rem 0; }
.chat-message { max-width:78%;padding:.75rem 1rem;border-radius:12px;background:#e5e7eb; }
.chat-message.mine { align-self:flex-end;background:#dbeafe; }
.chat-message.theirs { align-self:flex-start; }
.chat-message p { margin:.35rem 0;white-space:normal;overflow-wrap:anywhere; }
.chat-message time { color:#64748b;font-size:.8rem; }
.chat-compose { display:grid;gap:.6rem; }
.chat-compose textarea { min-height:7rem;padding:.7rem;resize:vertical; }
body{
 font-family:Arial;
 padding:0px;
margin-top: 0px;
}
.listLine{
    display: ruby-base;
}

#toolbar{
    position:sticky;
    top:0;
    background:#eee;
    padding:8px;
    display:block;
    align-items:center;
    gap:0px;
    z-index:1000;
    flex-wrap:wrap;
    width: 100%;
    min-height: 40px;
    border-bottom-right-radius: 10px;
border-bottom-left-radius: 10px;
    

}
/*#toolbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: #eee;
    z-index: 1000;
    transform: translate3d(0,0,0);
    will-change: transform;
}*/

#toolbar a{
    text-decoration:none;
    font-size:18px;
    padding-right: 5px;
}

#toolbar select{
    font-size:10px;
}
.toolbar-status{display:flex;align-items:center;gap:.35rem}.app-version{font-size:.78rem;font-weight:700;padding:.18rem .42rem;border:1px solid currentColor;border-radius:999px;white-space:nowrap}.user-menu-version{display:flex!important;align-items:center;justify-content:space-between;gap:1rem}
.user-menu{position:relative}
.user-menu summary{display:flex;align-items:center;gap:.35rem;padding:.35rem .55rem;border:1px solid #b8b8b8;border-radius:6px;background:#fff;cursor:pointer;list-style:none;white-space:nowrap}
.user-menu summary::-webkit-details-marker{display:none}
.user-menu summary:focus-visible{outline:2px solid #2563eb;outline-offset:2px}
.user-menu-badge{display:inline-grid;place-items:center;min-width:1.25rem;height:1.25rem;padding:0 .3rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.75rem;font-weight:700}
.user-menu-panel{position:absolute;right:0;top:calc(100% + .4rem);z-index:1100;display:grid;min-width:240px;padding:.55rem;border:1px solid #ccc;border-radius:8px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18)}
#toolbar .user-menu-panel a{display:block;padding:.55rem;border-radius:5px;font-size:.9rem;color:#111}
#toolbar .user-menu-panel a:hover{background:#f1f5f9}
.user-menu-heading{padding:.35rem .55rem;font-size:.78rem;font-weight:700;text-transform:uppercase;color:#64748b}
.user-menu-empty{margin:0;padding:.55rem;color:#64748b;font-size:.85rem}
.user-menu-panel hr{width:100%;margin:.35rem 0;border:0;border-top:1px solid #e2e8f0}
.user-menu-panel form{margin:0}
.user-menu-panel button{width:100%;padding:.55rem;border:0;border-radius:5px;background:transparent;text-align:left;cursor:pointer;font-size:.9rem}
.user-menu-panel button:hover{background:#fef2f2;color:#b91c1c}
.topbar,
.subbar {
  display: flex;
}
.centrer {
    width: fit-content;
    margin: auto;
}
.nav {
    width: fit-content;
    margin: auto;
}
.project{
 display:block;
 padding:15px;
 margin:10px 0;
 background:#f2f2f2;
 border-radius:8px;
 text-decoration:none;
 color:black;
 font-size:18px;
 width:90%
}

/*img {
    cursor: pointer;
    transition: 0.2s;
}
img:hover {
    transform: scale(1.05);
}
*/
#viewer {
    position: fixed;
    top:0; left:0;
    width:100%; height:100%;
    background: rgba(0,0,0,0.8);
    display:none;
    align-items:center;
    justify-content:center;
}
#viewer img {
    max-width:90%;
    max-height:90%;
}
.loginForm{
margin-bottom:20px;
position:relative;
}

.loginForm input{
width:100%;
padding:8px;
font-size:16px;
}

.history{
display:none;
background:#f5f5f5;
padding:6px;
margin-top:5px;
border-radius:6px;
}
.field-history>summary{width:max-content;max-width:100%;cursor:pointer;list-style:none}
.field-history>summary::-webkit-details-marker{display:none}
.field-history>summary b::before{content:"▸";display:inline-block;margin-right:.35rem;color:#64748b;transition:transform .15s ease}
.field-history[open]>summary b::before{transform:rotate(90deg)}
.field-history[open]>.history{display:block}

.suggestions{
position:absolute;
background:white;
/* border:1px solid #ccc; */
width:95%;
max-height:150px;
overflow:auto;
z-index:9;
}

.suggestions div{
padding:6px;
cursor:pointer;
}

.suggestions div:hover{
background:#eee;
}

.photo{
width:110px;
margin:5px;
border:1px solid #ccc;
cursor:pointer;
}

/*ELEMENTS*/


/* Fond sombre */
#filters {
  position: fixed;        /* reste collé à l'écran */
  top: 8%;                /* centré verticalement */
  left: 2%;               /* centré horizontalement */
  width: 96vw;            /* 90% largeur écran */
  height: 90dvh;           /* 90% hauteur écran */

  background: white;
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);

  overflow-y: auto;       
  overflow-x: auto
  ;

  display: none;          /* caché par défaut */
  z-index: 1000;
}
/*
#filters{
display:none;
border:1px solid #ccc;
padding:10px;
margin-bottom:10px;
border-radius:6px;

position:sticky;
    top:50px;
    background:#eee;
    padding:8px;
   
    align-items:center;
    gap:8px;
    z-index:1001;
    flex-wrap:wrap;
    width: 100%;
}
*/
.element{
border:1px solid #ccc;
margin-bottom:10px;
padding:10px;
border-radius:6px;
}

.attribute{margin-left:10px;}
.quick-edit-field{display:flex;align-items:center;gap:.5rem;margin:.4rem 10px .8rem;padding:.45rem;border-radius:6px;background:#f1f5f9}
.quick-edit-field input:not([type="checkbox"]),.quick-edit-field select,.quick-edit-field textarea{min-width:180px;max-width:100%;padding:.4rem .5rem}
.quick-edit-field textarea{width:100%;min-height:4rem;resize:vertical}
.quick-edit-status{color:#475569;font-size:.8rem}

img.photo{max-width:100px;margin:5px;}
.image-attribute{margin-top:.45rem}
.version-gallery{display:flex;gap:.5rem;max-width:100%;padding:.4rem 0;overflow-x:auto}
.version-thumbnail{position:relative;flex:0 0 auto;width:92px;height:92px;padding:0;border:2px solid transparent;border-radius:8px;background:#e2e8f0;overflow:hidden;cursor:pointer}
.version-thumbnail:first-child{border-color:#3b82f6}
.version-thumbnail img{display:block;width:100%;height:100%;object-fit:cover}
.version-thumbnail span{position:absolute;right:3px;bottom:3px;padding:.1rem .35rem;border-radius:999px;background:rgba(15,23,42,.82);color:#fff;font-size:.7rem}
.version-thumbnail:hover,.version-thumbnail:focus-visible{border-color:#1d4ed8;transform:translateY(-1px)}
.image-editor{width:min(96vw,1100px);max-height:94dvh;padding:0;border:0;border-radius:12px;box-shadow:0 24px 70px rgba(15,23,42,.45)}
.image-editor::backdrop{background:rgba(15,23,42,.72)}
.image-editor-header,.image-editor-footer,.image-editor-tools{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#f8fafc}
.image-editor-header{justify-content:space-between;border-bottom:1px solid #cbd5e1}
.image-editor-header button{border:0;background:transparent;font-size:1.25rem;cursor:pointer}
.image-editor-tools{flex-wrap:wrap;border-bottom:1px solid #cbd5e1}
.image-editor-tools label{display:flex;align-items:center;gap:.35rem;font-size:.85rem}
.image-editor-tools input[type="number"]{width:6.5rem;padding:.35rem}
.image-editor-tools input[type="text"]{width:12rem;padding:.35rem}
.image-editor-tools button,.image-editor-footer button{padding:.5rem .7rem}
.image-editor-tools button.active{border-color:#1d4ed8;background:#dbeafe;color:#1d4ed8;font-weight:700}
.image-editor-stage{display:grid;place-items:center;max-height:65dvh;padding:1rem;overflow:auto;background:#334155}
.image-editor-stage canvas{display:block;max-width:none;max-height:none;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.3);cursor:crosshair;touch-action:none}
.image-editor-footer{justify-content:flex-end;border-top:1px solid #cbd5e1}
.image-editor-footer span{margin-right:auto;color:#475569}
@media(max-width:600px){.version-thumbnail{width:76px;height:76px}.image-editor-tools{align-items:flex-start}.image-editor-footer{align-items:stretch;flex-direction:column}}
.filterRow{
    display:flex;
    gap:10px;
    align-items:center;
    margin-bottom:6px;
}

.filterRow label{
    min-width:120px;
}
/*Element*/

.field{
margin-bottom:20px;
position:relative;
}

.field input {
  width: 100%;
  padding: 8px;
  font-size: 16px;
  box-sizing: border-box;
}
.field-description{margin:.35rem 0;color:#64748b;font-size:.9rem}
.field-long-text{width:100%;min-height:8rem;padding:.65rem;resize:vertical}
.typed-checkbox{display:flex;align-items:center;gap:.5rem;padding:.65rem 0}
.typed-checkbox input{width:1.2rem;height:1.2rem}
.typed-rating{display:flex;gap:.15rem;padding:.35rem 0}
.rating-star{padding:.1rem;border:0;background:transparent;color:#cbd5e1;font-size:2rem;line-height:1;cursor:pointer}
.rating-star.selected{color:#f59e0b}
.rating-star:hover,.rating-star:focus-visible{color:#fbbf24;transform:scale(1.08)}
.rating-star:disabled{cursor:default}
.gps-inputs{display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:.75rem}
.gps-inputs label{font-size:.85rem;color:#475569}
.gps-inputs input{margin-top:.25rem}
.gps-actions{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:.75rem}
.gps-actions button{padding:.55rem .75rem}
.gps-status{color:#475569;font-size:.85rem}
.gps-map{grid-column:1/-1;width:100%;height:320px;border:1px solid #cbd5e1;border-radius:8px;background:#e2e8f0}
@media(max-width:600px){.gps-inputs{grid-template-columns:1fr}.gps-map{height:260px}}
.project-link-inputs{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:.75rem;align-items:end}
.project-link-inputs label{display:grid;gap:.3rem;color:#475569;font-size:.85rem}
.project-link-inputs select{width:100%;padding:.55rem}
.project-link-open{grid-column:1/-1;width:max-content}
.project-link-display{font-weight:600}
.plan-field-editor{display:flex;align-items:end;flex-wrap:wrap;gap:.75rem;padding:.75rem;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc}
.plan-field-editor label{display:grid;gap:.3rem;min-width:min(100%,280px);font-weight:700}
.plan-field-editor select{width:100%;padding:.55rem}
.plan-field-editor p{margin:0;width:100%;color:#475569}
@media(max-width:600px){.project-link-inputs{grid-template-columns:1fr}.project-link-open{grid-column:1}}
.typed-images{display:flex;align-items:flex-start;gap:.6rem;overflow-x:auto;margin:.5rem 0}
.typed-images .photo{max-width:180px;max-height:180px;object-fit:contain}
.typed-image-upload{display:inline-block;padding:.55rem .75rem;border-radius:6px;background:#eef2f7;cursor:pointer}
.typed-image-upload input{display:block;margin-top:.4rem}
.typed-camera-button{padding:.55rem .75rem;border:0;border-radius:6px;background:#dbeafe;color:#1d4ed8;font-weight:700;cursor:pointer}
.typed-camera-button:hover,.typed-camera-button:focus-visible{background:#bfdbfe}

/* Timeline des dernières versions */
.timeline{
    margin:16px 10px 24px;
    padding:14px 16px 10px;
    border:1px solid #d8e0e8;
    border-radius:10px;
    background:#f8fafc;
    overflow-x:auto;
}
.timeline-heading{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
}
.timeline-heading h2{
    margin:0;
    font-size:17px;
}
.timeline-heading span{
    color:#64748b;
    font-size:13px;
}
.timeline-track{
    position:relative;
    height:92px;
    min-width:520px;
    margin:12px 12px 0;
}
.timeline-track::before{
    content:"";
    position:absolute;
    top:37px;
    right:0;
    left:0;
    height:3px;
    border-radius:3px;
    background:#cbd5e1;
}
.timeline-item{
    position:absolute;
    left:var(--position);
    top:0;
    width:100px;
    margin-left:-50px;
    color:#1e3a5f;
    font-size:12px;
    text-align:center;
    text-decoration:none;
    transform:translateX(0);
}
.timeline-dot{
    display:block;
    width:14px;
    height:14px;
    margin:29px auto 7px;
    border:3px solid #f8fafc;
    border-radius:50%;
    background:#2563eb;
    box-shadow:0 0 0 2px #2563eb;
}
.timeline-item:hover .timeline-dot,
.timeline-item:focus .timeline-dot{
    background:#f59e0b;
    box-shadow:0 0 0 3px #f59e0b;
}
.timeline-date,.timeline-label{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.timeline-date{ color:#64748b; }
.timeline-label{ margin-top:2px; font-weight:bold; }

/*gallery*/
.grid {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.card {
    border:1px solid #ccc;
    padding:10px;
    width:200px;
    border-radius:8px;
}
.card img {
    width:100%;
}
.meta {
    font-size:12px;
}

/**/
/* --- ELEMENT --- */
.element{
    border:1px solid #ccc;
    margin-bottom:10px;
    padding:12px;
    border-radius:10px;
    background:white;
    transition:0.2s;
    position:relative;
}

/* sélection visuelle */
.element.selected{
    background:#d0ebff;
    border-color:#339af0;
}

/* checkbox cachée (on garde pour compatibilité) */
.element input[type="checkbox"]{
    position:absolute;
    top:10px;
    right:10px;
    transform:scale(1.3);
}

/* --- bouton flottant --- */
#bulkBar{
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    background:#222;
    color:white;
    padding:10px;
    display:block;
/*    display:flex;
    gap:10px;
    align-items:center;
    justify-content:space-between;*/
    z-index:999;
}

/* caché si rien sélectionné */
#bulkBar.hidden{
    display:none;
}

#bulkBar select,
#bulkBar button{
    font-size:10px;
    padding:6px;
}
#renameBuilder{
display: none;
transition: all 0.2s ease;
}
#fieldsContainer{
    max-height: 80%;
    overflow-y: auto;
    position: relative; /* 🔥 IMPORTANT */
}

.filterRow{
    display:flex;
    align-items:center;
    gap:10px;
    padding:5px;
    background:white;
}

.dragHandle {
    touch-action: none;
}

.dragging{
    opacity:0.8;
    background:#ddd;
    pointer-events:none;
}
#countSelected{
    margin-right: auto;
}
.sharing-page{max-width:900px;margin:2rem auto;padding:0 1rem}.sharing-form,.sharing-row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;background:#fff;padding:1rem;margin:.75rem 0;border-radius:8px}.sharing-row strong{min-width:10rem}
.schema-card{background:#fff;padding:1rem;margin:1rem 0;border-radius:8px}.schema-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.5rem;margin:1rem 0}.schema-fields>div{display:flex;gap:.75rem;align-items:center;padding:.4rem;border-bottom:1px solid #ddd}.share-elements{max-height:22rem;overflow:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.4rem;width:100%}
.share-selection-actions{display:flex;flex-wrap:wrap;gap:.4rem;grid-column:1/-1;position:sticky;top:0;z-index:1;padding:.35rem 0;background:#fff}.share-selection-actions button{padding:.35rem .6rem}
.schema-collapse>summary{padding:.65rem .75rem;border-radius:7px;background:#eef2f7;font-size:1.05rem;font-weight:700;cursor:pointer}
.schema-collapse>summary:hover,.schema-collapse>summary:focus-visible{background:#dbeafe;color:#1d4ed8}
.schema-collapse-content{padding-top:1rem}
.schema-global-merge{margin:1rem 0;padding:1rem;border:1px solid #f59e0b;border-radius:8px;background:#fffbeb}
.schema-project-filter{display:flex;align-items:end;gap:.75rem;margin:1rem 0;padding:1rem;border-radius:8px;background:#fff}
.schema-project-filter label{font-weight:700}
.schema-project-filter select{min-width:240px;padding:.5rem}
.schema-global-merge>summary{cursor:pointer;font-weight:700}
.schema-global-merge-form{display:flex;align-items:end;gap:.75rem;margin-top:1rem}
.schema-global-merge-form label{display:grid;flex:1;gap:.35rem;font-weight:700}
.schema-global-merge-form select{width:100%;padding:.5rem}
@media(max-width:700px){.schema-project-filter,.schema-global-merge-form{align-items:stretch;flex-direction:column}.schema-global-merge-form>span{transform:rotate(90deg);align-self:center}}
.schema-add-attribute{display:flex;align-items:end;gap:.75rem;margin:1rem 0;padding:1rem;border:1px dashed #94a3b8;border-radius:8px;background:#f8fafc}
.schema-name-row{display:flex;align-items:end;gap:.6rem;margin-bottom:.75rem}.schema-name-row label{display:grid;flex:1;gap:.3rem}.schema-name-row input{width:100%;box-sizing:border-box;padding:.45rem .55rem}
.schema-add-attribute label{display:grid;flex:1;gap:.35rem;font-weight:700}
.schema-add-attribute input{width:100%;padding:.5rem .6rem}
@media(max-width:600px){.schema-add-attribute,.schema-name-row{align-items:stretch;flex-direction:column}}
.schema-fields-table{margin:1rem 0;overflow-x:auto;border:1px solid #d8dee6;border-radius:8px}
.schema-field-header,.schema-field-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(145px,1fr) 80px 90px 80px 105px minmax(260px,2fr);align-items:center;min-width:1025px}
.schema-permissions-help{padding:.75rem 1rem;border-left:4px solid #3b82f6;background:#eff6ff;color:#334155}
.schema-field-header{background:#eef2f7;color:#334155;font-size:.78rem;font-weight:700;text-transform:uppercase}
.schema-field-header span,.schema-field-row>*{padding:.65rem .75rem}
.schema-column-toggle{padding:.65rem .25rem;border:0;background:transparent;color:inherit;font:inherit;text-transform:inherit;cursor:pointer}
.schema-column-toggle:hover,.schema-column-toggle:focus-visible{background:#dbeafe;color:#1d4ed8}
.schema-field-header span:not(:first-child):not(:last-child),.schema-field-row>label:not(:last-child){text-align:center}
.schema-toggle-cell{display:grid;align-self:stretch;place-items:center;cursor:pointer}
.schema-toggle-cell:hover{background:#e0f2fe}
.schema-toggle-cell input{width:1.05rem;height:1.05rem;cursor:pointer}
.schema-field-row:nth-child(odd){background:#f8fafc}
.schema-field-row+.schema-field-row{border-top:1px solid #e2e8f0}
.schema-field-name{position:relative;padding:.65rem .75rem}
.schema-field-name>strong{display:flex;align-items:center}
.schema-field-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;margin-right:.5rem;padding:.12rem .4rem;border:0;border-radius:999px;background:#e2e8f0;color:#334155;font-size:.75rem;font-weight:700;line-height:1.2;cursor:pointer}
.schema-field-count:hover,.schema-field-count:focus-visible,.schema-field-count[aria-expanded="true"]{background:#bfdbfe;color:#1d4ed8}
.schema-field-occurrences{margin-top:.5rem;padding:.5rem;border:1px solid #cbd5e1;border-radius:6px;background:#fff;font-weight:400}
.schema-field-occurrences ul{margin:0;padding:0;list-style:none}
.schema-field-occurrences li{display:flex;justify-content:space-between;gap:.75rem;padding:.15rem 0}
.schema-field-description{width:100%;min-width:220px;padding:.45rem .55rem}
.schema-field-row select{width:100%;padding:.4rem}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.schema-manager{margin-top:1rem;padding:.75rem;border:1px solid #bbb;border-radius:8px}.schema-manager summary{cursor:pointer;font-weight:700}
.toolbar-schema-table-wrap{width:100%;margin:1rem 0;overflow-x:auto;border:1px solid #d8dee6;border-radius:8px}.toolbar-schema-table{width:100%;min-width:570px;border-collapse:collapse;background:#fff}.toolbar-schema-table th,.toolbar-schema-table td{padding:.65rem .75rem;border-bottom:1px solid #e2e8f0}.toolbar-schema-table thead th{position:sticky;top:0;background:#eef2f7;color:#334155;font-size:.78rem;text-transform:uppercase}.toolbar-schema-table tbody th{text-align:left}.toolbar-schema-table td{text-align:center}.toolbar-schema-table tbody tr:nth-child(even){background:#f8fafc}.toolbar-schema-table tbody tr:last-child>*{border-bottom:0}.toolbar-schema-table label{display:grid;min-height:1.8rem;place-items:center;cursor:pointer}.toolbar-schema-table input{width:1.1rem;height:1.1rem;cursor:pointer}
.plan-project-group{margin:1.5rem 0}.plan-project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1rem}.plan-library-card{margin:0}.plan-library-card>img{display:block;max-width:100%;max-height:320px;margin:.75rem 0;border:1px solid #cbd5e1}.plan-library-card form,.plan-upload-card form{display:flex;align-items:end;flex-wrap:wrap;gap:.6rem;margin:.75rem 0}.plan-library-card label,.plan-upload-card label{display:grid;gap:.3rem}.plan-library-card input,.plan-library-card select,.plan-upload-card input,.plan-upload-card select{max-width:100%;padding:.45rem}
.plan-bulk-actions{position:sticky;top:.5rem;z-index:10;display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0;padding:.8rem;border:1px solid #bfdbfe;border-radius:9px;background:#eff6ff;box-shadow:0 2px 8px #0f172a14}.plan-selection-actions,.plan-bulk-action{display:flex;align-items:end;flex-wrap:wrap;gap:.4rem}.plan-selection-actions{align-items:center}.plan-bulk-action label{display:grid;gap:.25rem;font-weight:700}.plan-bulk-action select,.plan-bulk-action input{min-width:180px;padding:.4rem}.plans-table-wrap{overflow-x:auto;border:1px solid #d8dee6;border-radius:9px;background:#fff}.plans-table{width:100%;min-width:850px;border-collapse:collapse}.plans-table th,.plans-table td{padding:.6rem .7rem;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:middle}.plans-table thead{background:#eef2f7}.plans-table tbody tr:nth-child(even){background:#f8fafc}.plans-table tbody tr:last-child>*{border-bottom:0}.plans-table th small{display:block;margin-top:.2rem;color:#64748b;font-weight:400}.plan-select-cell{display:grid;min-width:2rem;min-height:2rem;place-items:center;cursor:pointer}.plan-select{width:1.1rem;height:1.1rem}.plan-table-preview{display:block;width:90px;height:64px;border:1px solid #cbd5e1;border-radius:4px;object-fit:cover}.plan-capability{display:inline-block;margin:.12rem;padding:.15rem .4rem;border-radius:999px;font-size:.75rem;font-weight:700}.plan-capability.allowed{background:#dcfce7;color:#166534}.plan-capability.denied{background:#f1f5f9;color:#94a3b8;text-decoration:line-through}
@media(max-width:700px){.plan-bulk-actions{position:static}.plan-bulk-action{width:100%}.plan-bulk-action label{flex:1}.plan-bulk-action select,.plan-bulk-action input{width:100%;min-width:0}}
.plan-update-open{display:block;margin-top:.45rem;padding:.3rem .5rem;font-size:.78rem}.plan-revision-editor{width:min(96vw,1100px);max-width:none;max-height:94vh;padding:1rem;border:0;border-radius:10px}.plan-revision-editor::backdrop{background:#0f172acc}.plan-revision-heading{display:flex;align-items:center;justify-content:space-between}.plan-revision-heading h2{margin:.2rem 0}.plan-revision-heading button{font-size:1.2rem}.plan-revision-file-fields{display:flex;align-items:end;flex-wrap:wrap;gap:.75rem}.plan-revision-file-fields label{display:grid;gap:.35rem}.plan-revision-file-fields input[type=number]{width:6rem}.plan-revision-controls{display:flex;align-items:end;flex-wrap:wrap;gap:.65rem;margin:.8rem 0}.plan-revision-controls label{display:grid;gap:.2rem}.plan-revision-controls input[type=number]{width:6rem}.plan-revision-stage{max-height:58vh;overflow:auto;border:1px solid #94a3b8;background:repeating-conic-gradient(#e2e8f0 0 25%,#fff 0 50%) 50%/20px 20px}.plan-revision-stage canvas{display:block;max-width:100%;height:auto;cursor:move;touch-action:none}.plan-revision-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.8rem}.plan-revision-footer span{flex:1}.plan-revision-footer button{font-weight:700}
.plan-scale-control{min-width:min(100%,280px)}.plan-scale-control>span{display:flex;align-items:center;gap:.45rem}.plan-scale-control input[type=range]{width:180px;max-width:35vw}
.plan-name-editor{display:flex;align-items:center;gap:.35rem}.plan-name-input{width:min(260px,24vw);min-width:140px;padding:.35rem .45rem;font-weight:700}.plan-name-editor button{padding:.35rem .45rem}
@media(max-width:700px){.plan-revision-controls label{width:100%}.plan-revision-controls input[type=range]{width:100%}.plan-revision-stage{max-height:48vh}.plan-revision-footer{align-items:stretch;flex-direction:column}}
.project-summary{list-style:none}.home-recent{margin:.15rem 0 1rem 2rem;padding:.55rem .8rem;border-left:3px solid #cbd5e1;background:#f8fafc;max-width:42rem}.home-recent small{font-weight:700;color:#475569}.home-recent ol{margin:.4rem 0 0;padding-left:1.5rem}.home-recent li{padding:.18rem 0}.home-recent time{margin-left:.7rem;color:#64748b;font-size:.85em}.home-recent-empty{margin:.35rem 0 0;color:#64748b}.preferences-page{max-width:42rem;margin:2rem auto;padding:1rem}.preferences-card{margin:1rem 0;background:#fff;padding:1.25rem;border-radius:10px}.preferences-card label{display:block;margin-bottom:1rem}.preferences-card input,.preferences-card select,.preferences-card textarea{display:block;width:100%;margin-top:.4rem;max-width:28rem;padding:.45rem}.password-preferences-form{border-left:4px solid #3b82f6}
.project-tree{margin:.35rem 0;padding-left:1.4rem;border-left:2px solid #e2e8f0}.project-tree:first-of-type{padding-left:.5rem;border-left:0}.create-subproject{margin-left:.45rem;text-decoration:none}.project-hierarchy-manager .schema-card{margin:.7rem 0 .7rem min(calc(var(--project-depth) * 1.5rem),40%)}.project-hierarchy-manager form{display:flex;align-items:end;flex-wrap:wrap;gap:.6rem}.project-hierarchy-manager label{display:grid;gap:.3rem}.project-hierarchy-manager select{padding:.45rem}
.project-description{max-width:42rem;margin:.25rem 0 .5rem 1.5rem;color:#64748b;font-size:.9rem}
.project-csv-import{margin:1rem 0;padding:1rem;border:1px solid #cbd5e1;border-radius:8px}.project-csv-import legend{font-weight:700}.project-csv-import p{margin-top:0;color:#64748b}
.history-user{display:inline-block;padding:.08rem .4rem;border-radius:999px;background:#e2e8f0;color:#334155;font-size:.82em;font-weight:700}
.history-duration-tool{position:sticky;top:.5rem;z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:.65rem 1rem;margin:1rem;padding:.8rem 1rem;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;box-shadow:0 2px 8px #0f172a14}.history-duration-tool>div:first-child{display:grid;gap:.15rem}.history-duration-tool>div:first-child span{color:#475569;font-size:.85rem}.history-duration-actions{display:flex;flex-wrap:wrap;gap:.4rem}.history-duration-result{flex-basis:100%}.history-duration-result:empty{display:none}.history-duration-result ol{margin:.25rem 0 .5rem;padding-left:1.5rem}.history-version-row{display:flex;align-items:flex-start;gap:.45rem;padding:.35rem .2rem;border-bottom:1px solid #e2e8f0}.history-version-row:last-child{border-bottom:0}.history-version-selector{display:grid;min-width:1.6rem;min-height:1.6rem;place-items:center;cursor:pointer}.history-version-select{width:1.05rem;height:1.05rem}.history-version-content{flex:1;min-width:0}.history-delete{padding:.2rem .35rem}
@media(max-width:600px){.history-duration-tool{position:static;margin:.75rem 0}.history-duration-actions{width:100%}.history-duration-actions button{flex:1}.history-version-row{align-items:center}.history-version-content time{display:block}}
.projects-manager{max-width:1500px}.projects-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.projects-heading h1{margin-bottom:.25rem}.projects-heading p{margin-top:0;color:#64748b}.project-status:empty{display:none}.project-status{padding:.6rem .8rem;border-left:4px solid #3b82f6;background:#eff6ff}.projects-table-wrap{overflow-x:auto;border:1px solid #d8dee6;border-radius:9px;background:#fff}.projects-table{width:100%;border-collapse:collapse}.projects-table th,.projects-table td{padding:.65rem;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:middle}.projects-table thead{background:#eef2f7}.drag-cell{width:2.5rem;text-align:center!important}.project-drag-handle{padding:.55rem;border:0;background:transparent;font-size:1.25rem;cursor:grab;touch-action:none}.project-name{display:block;padding-left:calc(var(--project-depth) * 1.25rem);white-space:nowrap}.project-name::before{content:'↳';display:inline-block;width:1.2rem;color:#94a3b8}.project-row[data-depth="0"] .project-name::before{content:'📁'}.project-description-form{display:flex;align-items:center;gap:.35rem;min-width:240px}.project-description-form textarea{width:100%;min-width:180px;resize:vertical}.project-schema-form{display:flex;flex-wrap:wrap;gap:.35rem;min-width:220px}.project-schema-form select{min-width:140px}.project-actions{display:flex;align-items:center;gap:.45rem}.project-actions form{display:inline}.project-delete{border-color:#fecaca;background:#fff1f2}.project-row.is-dragging{opacity:.35}.project-row.drop-before>*{border-top:4px solid #2563eb}.project-row.drop-after>*{border-bottom:4px solid #2563eb}.project-row.drop-inside>*{background:#dbeafe;box-shadow:inset 0 0 0 2px #2563eb}
@media(max-width:700px){.projects-heading{align-items:flex-start;flex-direction:column}.projects-table,.projects-table tbody,.projects-table tr,.projects-table th,.projects-table td{display:block}.projects-table thead{display:none}.project-row{position:relative;padding:.7rem 0;border-bottom:2px solid #cbd5e1}.projects-table .project-row>*{padding:.4rem .75rem;border:0}.projects-table .drag-cell{position:absolute;top:.25rem;right:.25rem;width:auto}.project-row>th{padding-right:3.5rem!important}.project-description-form,.project-schema-form{min-width:0}.project-schema-form select{flex:1}.project-row.drop-before{border-top:4px solid #2563eb}.project-row.drop-after{border-bottom:4px solid #2563eb}.project-row.drop-inside{background:#dbeafe}}
