/* Qualight – Dual Theme, Responsive */

/* ── LIGHT (default) ── */
:root {
  --bg:           #faf8f5;
  --bg-panel:     #ffffff;
  --bg-card:      #ffffff;
  --bg-input:     #f5f2ed;
  --bg-hover:     #f0edf7;
  --border:       #e0dbe8;
  --border-light: #cdc5db;
  --blue:         #7c6fb0;
  --blue-dark:    #5b5291;
  --blue-glow:    rgba(124,111,176,0.10);
  --green:        #5a9e84;
  --green-dark:   #4a8a72;
  --accent:       #e8a87c;
  --accent-dark:  #d4895a;
  --accent-glow:  rgba(232,168,124,0.10);
  --red:          #dc2626;
  --red-bg:       #fef2f2;
  --red-border:   #fca5a5;
  --text:         #3a3552;
  --text-sec:     #6b6584;
  --text-muted:   #7a7490;
  --shadow:       rgba(60,50,90,0.06);
  --overlay:      rgba(0,0,0,.25);
  --input-focus-bg:#ffffff;
  --sidebar-w:    220px;
  --topbar-h:     56px;
  --radius:       12px;
  --tr:           0.22s ease;
}

/* ── DARK ── */
[data-theme="dark"] {
  --bg:           #1a1540;
  --bg-panel:     #2d2654;
  --bg-card:      #352e5e;
  --bg-input:     #231e48;
  --bg-hover:     #3d3570;
  --border:       rgba(124,111,176,0.25);
  --border-light: rgba(124,111,176,0.40);
  --blue:         #a89fd4;
  --blue-dark:    #7c6fb0;
  --blue-glow:    rgba(168,159,212,0.12);
  --green:        #a8d5c3;
  --green-dark:   #7eb8a2;
  --accent:       #f0c5a8;
  --accent-dark:  #e8a87c;
  --accent-glow:  rgba(240,197,168,0.12);
  --red:          #ef4444;
  --red-bg:       rgba(239,68,68,0.08);
  --red-border:   rgba(239,68,68,0.3);
  --text:         #eae7f2;
  --text-sec:     #b8b2cc;
  --text-muted:   #9d97b8;
  --shadow:       rgba(0,0,0,.3);
  --overlay:      rgba(0,0,0,.55);
  --input-focus-bg:#2d2654;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

body{
  font-family:'Exo 2',Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  height:100vh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  transition:background .3s,color .3s;
}

/* ── TOPBAR ── */
.topbar{
  height:var(--topbar-h);
  background:var(--bg-panel);
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:center;
  padding:0 20px 0 0;
  position:relative;
  z-index:10;
  flex-shrink:0;
  transition:background .3s,border-color .3s;
}
.topbar-logo{
  width:var(--sidebar-w);
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 20px;
  flex-shrink:0;
  border-right:1px solid var(--border);
  height:100%;
}
.logo-icon{width:32px;height:32px;flex-shrink:0}
.logo-text{
  font-family:'Rajdhani',sans-serif;
  font-size:21px;
  font-weight:700;
  letter-spacing:.5px;
  color:var(--blue);
}
.topbar-spacer{flex:1}
.topbar-actions{display:flex;align-items:center;gap:4px}
.icon-btn{
  width:36px;height:36px;border-radius:8px;
  background:0;border:1px solid transparent;
  color:var(--text-sec);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:var(--tr);
}
.icon-btn:hover{background:var(--bg-hover);border-color:var(--border);color:var(--blue)}
.icon-btn svg{width:18px;height:18px}
.avatar-btn{
  width:34px;height:34px;border-radius:50%;
  background:var(--blue);border:none;
  color:#fff;font-weight:700;font-size:12px;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;margin-left:4px;
  position:relative;
}

/* ── USER DROPDOWN ── */
.user-dropdown{
  position:fixed;top:calc(var(--topbar-h) - 6px);right:16px;
  width:260px;background:var(--bg-panel);
  border:1px solid var(--border);border-radius:12px;
  box-shadow:0 8px 30px var(--shadow);
  z-index:9999;display:none;overflow:hidden;
  transition:background .3s,border-color .3s;
}
.user-dropdown.open{display:block}
.user-dropdown-info{padding:16px;border-bottom:1px solid var(--border)}
.user-dropdown-name{font-weight:700;font-size:15px;color:var(--text)}
.user-dropdown-email{font-size:12px;color:var(--text-muted);margin-top:2px}
.user-dropdown-role{
  display:inline-block;margin-top:6px;
  font-size:11px;font-weight:600;letter-spacing:.5px;
  color:var(--blue);background:var(--blue-glow);
  padding:3px 10px;border-radius:20px;
}
.user-dropdown-item{
  display:flex;align-items:center;gap:10px;
  padding:11px 16px;font-size:13px;font-weight:500;
  color:var(--text-sec);cursor:pointer;
  border:none;background:none;width:100%;text-align:left;
  font-family:'Exo 2',sans-serif;transition:var(--tr);
}
.user-dropdown-item:hover{background:var(--bg-hover);color:var(--text)}
.user-dropdown-item svg{width:16px;height:16px;flex-shrink:0}
.user-dropdown-item.logout{color:var(--red)}
.user-dropdown-item.logout:hover{background:var(--red-bg)}
.user-dropdown-sep{height:1px;background:var(--border);margin:0}
.user-dropdown-item .theme-label{flex:1}
.theme-switch{
  width:36px;height:20px;border-radius:10px;
  background:var(--border);position:relative;
  transition:background .2s;flex-shrink:0;
}
.theme-switch::after{
  content:'';position:absolute;left:2px;top:2px;
  width:16px;height:16px;border-radius:50%;
  background:#fff;transition:transform .2s;
}
[data-theme="dark"] .theme-switch{background:var(--blue)}
[data-theme="dark"] .theme-switch::after{transform:translateX(16px)}

/* ── THEME TOGGLE ── */
.theme-toggle{
  width:36px;height:36px;border-radius:8px;
  background:0;border:1px solid var(--border);
  color:var(--text-sec);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:var(--tr);
}
.theme-toggle:hover{background:var(--bg-hover);color:var(--blue);border-color:var(--border-light)}
.theme-toggle svg{width:18px;height:18px}
.theme-toggle .icon-sun,
.theme-toggle .icon-moon{display:none}
/* light: show moon (click to go dark) */
:root .theme-toggle .icon-moon{display:block}
/* dark: show sun (click to go light) */
[data-theme="dark"] .theme-toggle .icon-moon{display:none}
[data-theme="dark"] .theme-toggle .icon-sun{display:block}

/* ── LAYOUT ── */
.app-body{display:flex;flex:1;min-height:0;overflow:hidden}

/* ── SIDEBAR ── */
.sidebar{
  width:var(--sidebar-w);
  background:var(--bg-panel);
  border-right:1px solid var(--border);
  padding:16px 10px;
  display:flex;flex-direction:column;gap:2px;
  flex-shrink:0;overflow-y:auto;
  transition:background .3s,border-color .3s;
}
.nav-item{
  display:flex;align-items:center;gap:10px;
  padding:9px 12px;border-radius:8px;
  color:var(--text-sec);font-size:14px;font-weight:500;
  text-decoration:none;transition:var(--tr);
  border:1px solid transparent;
}
.nav-item:hover{background:var(--bg-hover);color:var(--text);border-color:var(--border)}
.nav-item.active{
  background:var(--blue-glow);
  color:var(--blue);border-color:rgba(124,111,176,0.18);font-weight:600;
}
.nav-item svg{width:18px;height:18px;flex-shrink:0;opacity:.7}
.nav-item.active svg{opacity:1}
.nav-badge{
  margin-left:auto;background:var(--blue);color:#fff;
  font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;
}

/* ── MAIN ── */
.main{flex:1;display:flex;min-height:0;min-width:0;overflow:hidden}

/* ── LIST PANE ── */
.list-pane{
  flex:1;border-right:1px solid var(--border);
  display:flex;flex-direction:column;
  min-height:0;overflow:hidden;
}
.pane-header-wrap{
  padding:28px 24px 16px;flex-shrink:0;
  border-bottom:1px solid var(--border);
}
.pane-scroll{
  flex:1;overflow-y:auto;padding:12px 24px 28px;min-height:0;
}
.pane-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:24px;gap:16px;flex-wrap:wrap;
}
.pane-title{
  font-family:'Rajdhani',sans-serif;
  font-size:28px;font-weight:700;color:var(--text);
}
.btn-primary{
  display:flex;align-items:center;gap:7px;
  padding:9px 18px;border-radius:var(--radius);
  background:var(--blue);color:#fff;
  font-family:'Exo 2',sans-serif;font-size:13px;font-weight:600;
  border:none;cursor:pointer;transition:var(--tr);
  box-shadow:0 2px 8px var(--blue-glow);
}
.btn-primary:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn-primary svg{width:15px;height:15px}
.section-label{
  font-size:11px;font-weight:600;letter-spacing:1.5px;
  color:var(--text-muted);text-transform:uppercase;margin-bottom:12px;
}

/* ── AREA CARDS ── */
.area-list{display:flex;flex-direction:column;gap:8px}
.area-card{
  display:flex;align-items:center;gap:14px;
  padding:14px 16px;border-radius:var(--radius);
  background:var(--bg-card);border:1px solid var(--border);
  cursor:pointer;transition:var(--tr);text-decoration:none;color:inherit;
}
.area-card:hover{border-color:var(--border-light);background:var(--bg-hover);box-shadow:0 2px 10px var(--shadow)}
.area-card.selected{border-color:var(--blue);background:var(--blue-glow)}
.area-icon{
  width:40px;height:40px;border-radius:10px;
  background:var(--blue-glow);border:1px solid rgba(124,111,176,0.12);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.area-icon svg{width:19px;height:19px;color:var(--blue)}
.area-info{flex:1;min-width:0}
.area-name{font-size:14px;font-weight:600;color:var(--text);margin-bottom:1px}
.area-meta{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:6px}
.area-meta-dot{width:5px;height:5px;border-radius:50%;background:var(--green)}
.area-arrow{color:var(--text-muted);transition:var(--tr)}
.area-card:hover .area-arrow{color:var(--blue);transform:translateX(2px)}
.area-arrow svg{width:15px;height:15px}

/* ── FORM PANE ── */
.form-pane{
  width:340px;flex-shrink:0;background:var(--bg-panel);
  padding:0;display:flex;flex-direction:column;
  overflow:hidden;border-left:1px solid var(--border);
  min-height:0;
  transition:background .3s,border-color .3s;
}
.form-title{
  font-family:'Rajdhani',sans-serif;font-size:20px;font-weight:700;
  color:var(--text);margin-bottom:0;padding:24px 24px 16px;
  border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;
  flex-shrink:0;
}
.form-title-icon{
  width:30px;height:30px;border-radius:8px;background:var(--blue);
  display:flex;align-items:center;justify-content:center;
}
.form-title-icon svg{width:15px;height:15px;color:#fff}
.form-fields{display:flex;flex-direction:column;gap:16px;flex:1;overflow-y:auto;padding:20px 24px 16px;min-height:0}
.field-group{display:flex;flex-direction:column;gap:6px}
.field-label{
  font-size:11px;font-weight:600;letter-spacing:.6px;
  color:var(--text-sec);text-transform:uppercase;
  display:flex;align-items:center;gap:6px;
}
.field-label svg{width:13px;height:13px;color:var(--blue)}
.field-input{
  width:100%;padding:10px 12px 10px 36px;
  background:var(--bg-input);border:1px solid var(--border);
  border-radius:8px;color:var(--text);
  font-family:'Exo 2',sans-serif;font-size:13px;outline:0;transition:var(--tr);
}
.field-input::placeholder{color:var(--text-muted)}
.field-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-glow);background:var(--input-focus-bg)}
.field-wrapper{position:relative}
.field-wrapper .input-icon{
  position:absolute;left:11px;top:50%;transform:translateY(-50%);
  color:var(--text-muted);pointer-events:none;transition:var(--tr);
}
.field-wrapper .input-icon svg{width:14px;height:14px}
.field-wrapper:focus-within .input-icon{color:var(--blue)}
.form-actions{
  display:flex;gap:10px;padding:12px 24px 16px;
  border-top:1px solid var(--border);
  background:var(--bg-panel);
  flex-shrink:0;
}
.btn-secondary{
  flex:1;padding:10px;border-radius:var(--radius);
  background:0;border:1px solid var(--border);
  color:var(--text-sec);font-family:'Exo 2',sans-serif;
  font-size:13px;font-weight:600;cursor:pointer;transition:var(--tr);
}
.btn-secondary:hover{background:var(--bg-hover);color:var(--text);border-color:var(--border-light)}
.btn-save{
  flex:2;padding:10px;border-radius:var(--radius);
  background:var(--blue);border:none;color:#fff;
  font-family:'Exo 2',sans-serif;font-size:13px;font-weight:700;
  cursor:pointer;transition:var(--tr);
  box-shadow:0 2px 8px var(--blue-glow);
}
.btn-save:hover{filter:brightness(1.08);transform:translateY(-1px)}

/* ── SPA page transition ── */
.main{transition:opacity .15s ease}
.main.spa-loading{opacity:0;pointer-events:none}

/* ── SCROLLBAR ── */
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}

/* ── MOBILE MENU TOGGLE ── */
.menu-toggle{
  display:none;width:36px;height:36px;border-radius:8px;
  background:0;border:1px solid var(--border);
  color:var(--text-sec);cursor:pointer;
  align-items:center;justify-content:center;margin-right:12px;
}
.menu-toggle svg{width:20px;height:20px}

/* ══ RESPONSIVE ══ */
@media(max-width:1024px){
  .form-pane{width:300px}
  .form-title{padding:20px 20px 14px}
  .form-fields{padding:16px 20px 12px}
  .form-actions{padding:10px 20px 14px}
}
@media(max-width:860px){
  .form-pane{
    display:none;position:fixed;right:0;top:var(--topbar-h);bottom:0;
    z-index:30;width:360px;max-width:90vw;
    box-shadow:-4px 0 24px rgba(0,0,0,.15);
  }
  .form-pane.mobile-open{display:flex}
  .form-backdrop{display:none;position:fixed;inset:0;top:var(--topbar-h);background:var(--overlay);z-index:29}
  .form-backdrop.open{display:block}
  .list-pane{border-right:none}
  .resize-handle{display:none}
}
@media(max-width:768px){
  .menu-toggle{display:flex}
  .sidebar{
    position:fixed;left:0;top:var(--topbar-h);bottom:0;
    z-index:20;transform:translateX(-100%);transition:transform .2s ease;
    box-shadow:4px 0 20px var(--shadow);
  }
  .sidebar.open{transform:translateX(0)}
  .sidebar-backdrop{
    display:none;position:fixed;inset:0;top:var(--topbar-h);
    background:var(--overlay);z-index:19;
  }
  .sidebar-backdrop.open{display:block}
  .topbar-logo{width:auto;border-right:none;padding:0 12px}
  .pane-header{flex-direction:column;align-items:flex-start}
  .pane-header-wrap{padding:20px 16px 12px}
  .pane-scroll{padding:8px 16px 20px}
}
@media(max-width:640px){
  .filter-group{flex-direction:column;gap:6px}
  .filter-select{width:100%}
  .q-toast-container{left:12px;right:12px;bottom:12px}
  .q-toast{max-width:none}
}
@media(max-width:480px){
  .pane-title{font-size:22px}
  .area-card{padding:12px 14px;gap:10px}
  .area-icon{width:36px;height:36px}
  .area-icon svg{width:16px;height:16px}
  .btn-primary{padding:8px 14px;font-size:12px}
}
@media(max-width:360px){
  .pane-title{font-size:18px}
  .pane-subtitle{font-size:11px}
  .topbar{height:48px}
  .btn-primary{font-size:11px;padding:7px 12px}
}
/* Close/dismiss buttons — min 44x44 tap target */
.modal-close,.ai-modal-close,.area-chip-remove{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}

/* ── Auto dark mode fallback (no localStorage preference) ── */
@media(prefers-color-scheme:dark){
  :root:not([data-theme]){
    --bg:#1a1540;--bg-panel:#2d2654;--bg-card:#352e5e;--bg-input:#231e48;--bg-hover:#3d3570;
    --border:rgba(124,111,176,0.25);--border-light:rgba(124,111,176,0.40);
    --blue:#a89fd4;--blue-dark:#7c6fb0;--blue-glow:rgba(168,159,212,0.12);
    --green:#a8d5c3;--green-dark:#7eb8a2;
    --accent:#f0c5a8;--accent-dark:#e8a87c;--accent-glow:rgba(240,197,168,0.12);
    --red:#ef4444;--red-bg:rgba(239,68,68,0.08);--red-border:rgba(239,68,68,0.3);
    --text:#eae7f2;--text-sec:#b8b2cc;--text-muted:#9d97b8;
    --shadow:rgba(0,0,0,.3);--overlay:rgba(0,0,0,.55);--input-focus-bg:#2d2654;
  }
}

/* ── Skip to content (accessibility) ── */
.skip-link{position:absolute;left:-9999px;top:auto;z-index:9999;background:var(--blue);color:#fff;padding:8px 16px;border-radius:0 0 8px 0;font-size:13px;font-weight:600;text-decoration:none}
.skip-link:focus{left:0;top:0}

/* ── Skeleton loader ── */
.q-skeleton{background:linear-gradient(90deg,var(--bg-input) 25%,var(--bg-hover) 50%,var(--bg-input) 75%);background-size:200% 100%;animation:q-shimmer 1.5s infinite;border-radius:8px}
.q-skeleton-card{width:100%;height:64px;border-radius:var(--radius)}
@keyframes q-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ── Button loading state ── */
.btn-loading{opacity:0.7;pointer-events:none}
.btn-loading .btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:q-spin .6s linear infinite;margin-right:6px;vertical-align:middle}
@keyframes q-spin{to{transform:rotate(360deg)}}

/* ── Toast notifications ── */
.q-toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.q-toast{pointer-events:auto;background:var(--bg-card);color:var(--text);border-left:4px solid var(--blue);padding:12px 16px;border-radius:8px;box-shadow:0 4px 16px var(--shadow);font-size:13px;font-family:'Exo 2',sans-serif;animation:q-toast-in .3s ease;max-width:360px;word-break:break-word}
.q-toast.success{border-left-color:var(--green)}
.q-toast.error{border-left-color:var(--red)}
.q-toast.warning{border-left-color:var(--accent)}
.q-toast.fade-out{opacity:0;transform:translateX(20px);transition:opacity .3s,transform .3s}
@keyframes q-toast-in{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}

/* ── Focus-visible (keyboard navigation) ── */
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
button:focus:not(:focus-visible),a:focus:not(:focus-visible),
input:focus:not(:focus-visible),select:focus:not(:focus-visible),
textarea:focus:not(:focus-visible){outline:none}

/* ── Confirm modal ── */
.q-confirm-overlay{position:fixed;inset:0;background:var(--overlay);z-index:10000;display:flex;align-items:center;justify-content:center}
.q-confirm-dialog{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 30px var(--shadow);padding:24px;max-width:400px;width:90vw;animation:q-toast-in .2s ease}
.q-confirm-dialog h3{font-family:'Rajdhani',sans-serif;font-size:18px;font-weight:700;color:var(--text);margin-bottom:8px}
.q-confirm-dialog p{font-size:13px;color:var(--text-sec);line-height:1.5;margin-bottom:20px}
.q-confirm-buttons{display:flex;gap:10px;justify-content:flex-end}
.q-confirm-buttons button{padding:9px 18px;border-radius:8px;font-family:'Exo 2',sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:var(--tr);border:none}
.q-confirm-cancel{background:var(--bg-input);color:var(--text-sec);border:1px solid var(--border) !important}
.q-confirm-cancel:hover{background:var(--bg-hover);color:var(--text)}
.q-confirm-ok{background:var(--blue);color:#fff;box-shadow:0 2px 8px var(--blue-glow)}
.q-confirm-ok:hover{filter:brightness(1.08)}
.q-confirm-ok.destructive{background:var(--red);box-shadow:0 2px 8px var(--red-bg)}

/* ── @keyframes spin (alias) ── */
@keyframes spin{to{transform:rotate(360deg)}}

/* ══════════════════════════════════════════════════
   Tile Grid — Obszary (Plant → Area → Sub-area)
   ══════════════════════════════════════════════════ */
.area-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;align-content:start}
.area-tile{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;cursor:pointer;transition:var(--tr);position:relative;display:flex;flex-direction:column;gap:6px}
.area-tile:hover{border-color:var(--blue);box-shadow:0 4px 16px var(--shadow);transform:translateY(-2px)}
.area-tile.selected{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-glow)}
.area-tile-icon{width:42px;height:42px;border-radius:10px;background:var(--bg-hover);display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--blue);flex-shrink:0}
.area-tile-icon svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:2}
.area-tile-name{font-family:'Rajdhani',sans-serif;font-size:17px;font-weight:700;color:var(--text);line-height:1.2}
.area-tile-desc{font-size:12px;color:var(--text-sec);line-height:1.4;max-height:36px;overflow:hidden;text-overflow:ellipsis}
.area-tile-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted);background:var(--bg-input);padding:3px 10px;border-radius:20px;width:fit-content}

/* Breadcrumb bar */
.breadcrumb-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:13px;color:var(--text-sec);border-bottom:1px solid var(--border);background:var(--bg-panel)}
.breadcrumb-bar a{color:var(--blue);text-decoration:none;cursor:pointer;font-weight:500}
.breadcrumb-bar a:hover{text-decoration:underline}
.breadcrumb-bar .bc-sep{color:var(--text-muted)}
.breadcrumb-bar .bc-current{color:var(--text);font-weight:600}
.breadcrumb-back{display:flex;align-items:center;gap:4px;cursor:pointer;color:var(--blue);font-weight:500;padding:4px 8px;border-radius:6px;transition:var(--tr)}
.breadcrumb-back:hover{background:var(--bg-hover)}
.breadcrumb-back svg{width:18px;height:18px}

/* Tile header with actions */
.tile-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;flex-wrap:wrap;gap:8px}
.tile-header-actions{display:flex;gap:8px;flex-wrap:wrap}

/* Icon toggle (collapsed by default) */
.icon-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);transition:var(--tr)}
.icon-toggle:hover{border-color:var(--blue)}
.icon-toggle-preview{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--blue)}
.icon-toggle-preview svg{width:24px;height:24px}
.icon-toggle-label{font-size:13px;color:var(--text-sec);flex:1}
.icon-toggle-arrow{width:16px;height:16px;color:var(--text-muted);transition:transform .2s ease}

/* Icon selector grid */
.icon-selector{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:6px}
.icon-selector-item{width:40px;height:40px;border-radius:8px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--tr);color:var(--text-sec);background:var(--bg-input)}
.icon-selector-item svg{width:22px;height:22px}
.icon-selector-item:hover{border-color:var(--blue);color:var(--blue)}
.icon-selector-item.active{border-color:var(--blue);background:var(--blue);color:#fff}

/* AI modal */
.ai-modal-overlay{position:fixed;inset:0;background:var(--overlay);z-index:10000;display:flex;align-items:center;justify-content:center}
.ai-modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 30px var(--shadow);padding:24px;max-width:700px;width:90vw;max-height:85vh;overflow-y:auto;animation:q-toast-in .2s ease}
.ai-modal h3{font-family:'Rajdhani',sans-serif;font-size:18px;font-weight:700;color:var(--text);margin-bottom:12px}
.ai-modal textarea{width:100%;min-height:100px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);color:var(--text);font-family:'Exo 2',sans-serif;font-size:13px;resize:vertical}
.ai-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
/* AI tree preview */
.ai-tree{margin-top:16px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;max-height:360px;overflow-y:auto}
.ai-node{display:flex;align-items:flex-start;gap:10px;padding:6px 8px;border-radius:6px}
.ai-node-icon{width:28px;height:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--blue)}
.ai-node-icon svg{width:20px;height:20px}
.ai-node-info{flex:1;min-width:0}
.ai-node-name{font-weight:600;font-size:13px;color:var(--text)}
.ai-node-desc{font-size:11px;color:var(--text-muted);margin-top:2px;line-height:1.3}
.ai-root{background:var(--bg-hover);margin-bottom:4px}
.ai-root .ai-node-icon{width:32px;height:32px;color:var(--blue)}
.ai-root .ai-node-icon svg{width:24px;height:24px}
/* editable inputs inside tree */
.ai-edit-input{display:block;width:100%;border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-family:'Exo 2',sans-serif;font-size:13px;color:var(--text);background:var(--bg-input);margin-bottom:4px;transition:border-color .15s}
.ai-edit-input:focus{outline:none;border-color:var(--blue)}
.ai-edit-name{font-weight:600}
.ai-edit-desc{font-size:11px;color:var(--text-muted)}
.ai-edit-dir{font-size:11px;color:var(--text-sec)}
.ai-root .ai-edit-name{font-size:15px;font-weight:700}
.ai-root .ai-edit-desc{font-size:12px}
.ai-remove-btn{background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;padding:0 4px;line-height:1;border-radius:4px;transition:var(--tr);flex-shrink:0;align-self:flex-start;margin-top:4px}
.ai-remove-btn:hover{color:var(--red);background:rgba(239,68,68,.1)}
/* branches — vertical + horizontal lines */
.ai-branch{position:relative;margin-left:16px;padding-left:20px;border-left:2px solid var(--border)}
.ai-branch.ai-last{border-left-color:transparent}
.ai-connector{position:absolute;left:-2px;top:18px;width:20px;height:0;display:flex;align-items:center}
.ai-line-h{display:block;width:100%;border-top:2px solid var(--border)}
/* corner for last item */
.ai-branch.ai-last::before{content:'';position:absolute;left:-2px;top:0;width:2px;height:18px;background:var(--border)}
.ai-area{background:var(--bg-hover)}

/* Plant chip (different color from area chip) */
.plant-chip{display:inline-flex;align-items:center;gap:6px;background:#1a6b3f20;color:#1a6b3f;border:1px solid #1a6b3f40;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500}
[data-theme="dark"] .plant-chip{background:#2ecc7120;color:#2ecc71;border-color:#2ecc7140}
.plant-chip-remove{background:none;border:none;cursor:pointer;color:inherit;font-size:16px;line-height:1;min-width:20px;min-height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:var(--tr)}
.plant-chip-remove:hover{background:#1a6b3f30}

@media(max-width:640px){
  .area-tile-grid{grid-template-columns:1fr}
  .icon-selector{grid-template-columns:repeat(4,1fr)}
}
