/* ===== Cross-browser normalize ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;tab-size:4}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
button,input,select,textarea,optgroup{font:inherit;color:inherit;line-height:inherit;letter-spacing:inherit}
button{-webkit-appearance:none;appearance:none;cursor:pointer;border:none;background:none}
input,textarea{-webkit-appearance:none;appearance:none;border-radius:0;outline:none;background:none;border:none}
select{outline:none}
textarea{resize:vertical}
table{border-collapse:collapse;border-spacing:0}
ol,ul{list-style:none}
img,svg{display:block;max-width:100%;vertical-align:middle}
a{text-decoration:none;color:inherit}
button::-moz-focus-inner{border:0;padding:0}
@media screen and (max-width:768px){input,select,textarea{font-size:16px}}

/* ===== フォーカス可視化（キーボード操作用） ===== */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,.lb:focus-visible,.btn:focus-visible,[tabindex]:focus-visible,[contenteditable]:focus-visible{
  outline:2px solid var(--ac)!important;
  outline-offset:2px;
  border-radius:4px;
}

:root{
  /* ===== LIGHT MODE (default) ===== */
  --bg:#ffffff;--bg2:#f8f8f8;--bg3:#f0f0f0;
  --text:#1a1a1a;--t2:#666666;--t3:#999999;
  --border:#e5e5e5;
  --accent:#c9a961;--accent-light:#d4b776;
  --shadow-sm:0 1px 2px rgba(0,0,0,0.04);
  --shadow-md:0 2px 8px rgba(0,0,0,0.08);
  --shadow-lg:0 4px 16px rgba(0,0,0,0.12);
  --duration-100:100ms;--duration-200:200ms;--duration-300:300ms;

  /* ===== LEGACY TOKENS (compatibility) ===== */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;
  --r-sm:4px;--r-md:6px;--r-lg:8px;--r-pill:999px;
  --red:#e05555;--green:#4ade80;--yellow:#fbbf24;--blue:#60a5fa;--sw:212px;
  --sb-bg:#ffffff;--tog-bg:#ffffff;--scrollbar-track:#f0f0f0;
  --ac:#c9a961;--ac2:#d4b776;--adim:rgba(201,169,97,0.12);--adim2:rgba(201,169,97,0.22);
  --b1:#e5e5e5;--b2:#f0f0f0;--card:#ffffff;--card2:#f8f8f8;
  --dur-fast:100ms;--dur-base:200ms;--dur-slow:300ms;--ease-out:ease-out;
}
html,body{height:100%}
body{background:var(--bg);color:var(--text);font-family:"IBM Plex Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;font-size:12px;line-height:1.4}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--b2);border-radius:5px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}
.topbar{position:fixed;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--ac),var(--ac2),transparent);z-index:100}
a{color:inherit}

/* ===== TYPOGRAPHY (minimal-clean) ===== */
h1{font-size:2.5rem;font-weight:700;line-height:1.1;letter-spacing:-0.02em;color:var(--text);margin-bottom:1rem}
h2{font-size:1.75rem;font-weight:700;line-height:1.1;letter-spacing:-0.02em;color:var(--text);margin-bottom:0.75rem}
h3{font-size:1.125rem;font-weight:700;line-height:1.2;letter-spacing:-0.02em;color:var(--text);margin-bottom:0.5rem}
p{font-size:0.95rem;font-weight:400;line-height:1.6;color:var(--text)}
small{font-size:0.75rem;font-weight:500;color:var(--t3);line-height:1.4}

/* sidebar */
.sb{position:fixed;left:0;top:0;bottom:0;width:var(--sw);background:var(--sb-bg);border-right:1px solid var(--b1);z-index:50;display:flex;flex-direction:column;transition:transform .22s}
.sb-top{padding:12px 14px;border-bottom:1px solid var(--b1);text-align:center}
.sb-logo{font-size:15px;color:var(--ac);font-weight:600;letter-spacing:.14em}
.sb-sub{font-size:9px;color:var(--t3);letter-spacing:.2em;margin-top:3px}
.sb-nav{flex:1;overflow-y:auto;padding:6px 0}
.ns{font-size:9px;color:var(--t3);letter-spacing:.1em;padding:8px 16px 3px}
.ni{padding:7px 16px;font-size:12.5px;color:var(--t2);cursor:pointer;display:flex;align-items:center;gap:8px;border-left:2px solid transparent;transition:background .12s,color .12s,border-color .12s}
.ni:hover{background:var(--bg3);color:var(--text)}
.ni.active{color:var(--ac);background:var(--adim);border-left-color:var(--ac)}
.sb-foot{padding:8px 14px;border-top:1px solid var(--b1);display:flex;flex-direction:column;gap:6px}
.sb-ver{font-size:10px;color:var(--t3)}
.theme-tog{background:var(--bg2);border:1px solid var(--b1);border-radius:var(--r-sm);color:var(--t2);font-size:11px;padding:6px 10px;cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:5px;transition:all var(--dur-fast)}
.theme-tog:hover{border-color:var(--ac);color:var(--ac)}
.sb{transform:translateX(-100%)}.sb.open{transform:translateX(0)}
.tog{display:block;position:fixed;top:8px;left:8px;z-index:60;background:var(--tog-bg);border:1px solid var(--b2);color:var(--ac);width:34px;height:34px;border-radius:7px;cursor:pointer;font-size:16px}
.sb-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:45}.sb-ov.show{display:block}
@media(min-width:761px){.ph{padding-left:16px}}

/* main */
.main{margin-left:0;min-height:100vh}
.page{display:none}
.page.active{display:block;animation:pageIn .22s cubic-bezier(.2,.7,.3,1) both}
.page.leaving{display:block;animation:pageOut .14s ease both}
#page-map.active,#page-map.leaving{display:flex;flex-direction:column;height:100dvh}
@keyframes pageIn{from{transform:translateX(22px)}to{transform:none}}
@keyframes pageOut{from{transform:none}to{transform:translateX(-14px)}}
.ph{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px 8px 52px;flex-wrap:wrap}
.ph-title{display:flex;flex-direction:column;gap:1px}
.ph-actions{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.places-head{position:sticky;top:0;z-index:40;background:var(--bg);box-shadow:0 1px 0 var(--b1)}
#page-places .ph{background:transparent}
.pt{font-size:17px;color:var(--ac);font-weight:600;letter-spacing:.04em;position:relative;padding-left:10px}.pt::before{content:'';position:absolute;left:0;top:2px;bottom:2px;width:3px;background:linear-gradient(180deg,var(--ac),var(--ac2));border-radius:2px}
.ps{font-size:11px;color:var(--t2);margin-top:1px}
.stats{display:flex;gap:6px;padding:0 16px 8px;flex-wrap:wrap}
.stat{background:var(--card);border:1px solid var(--b1);border-radius:var(--r-sm);padding:5px 11px;min-width:62px;text-align:center}
.stat .sl{font-size:9px;color:var(--t3);letter-spacing:.05em}
.stat .sv{font-size:16px;font-weight:600;margin-top:1px}.stat .sv.ac{color:var(--ac)}
.statpill{height:32px;display:inline-flex;align-items:center;gap:5px;background:var(--card);border:1px solid var(--b1);border-left:2px solid var(--adim2);border-radius:6px;padding:0 10px;white-space:nowrap}
.statpill .sl{font-size:9px;color:var(--t3)}
.statpill b{font-size:14px;font-weight:600}.statpill b.ac{color:var(--ac)}

/* toolbar */
.toolbox{margin:0 16px 8px;border:none;border-radius:var(--r-md);background:var(--bg2);overflow:hidden;padding:3px}
.toolbox .tb,.toolbox .fb{padding:1px 7px;margin:0;gap:6px;border:none;flex-wrap:wrap;align-items:center}
.toolbox .tb+.tb,.toolbox .fb+.fb:not(.bulk-bar),.toolbox .tb+.fb:not(.bulk-bar),.toolbox .fb+.tb{border-top:1px solid var(--b1)}
.toolbox .btn{padding:2px 9px;height:20px}
.toolbox .tb input,.toolbox .tb select,.toolbox .fb select{background:var(--bg);border:1px solid var(--b1);border-radius:6px;height:30px}
.toolbox .tb select,.toolbox .fb select{flex:0 0 auto;max-width:130px;min-width:0;width:auto}
.toolbox .fb .fl{display:flex;align-items:center;padding:0 3px;border:none;background:none;margin:0}
.toolbox .fb .fc{border-radius:5px;border:1px solid var(--b1);background:var(--bg2);padding:2px;margin:0}
.toolbox .fb .fc.on{background:var(--adim);border-color:var(--ac);color:var(--ac)}
.toolbox .fb .fsep{display:none}
button.fc{font-family:inherit;line-height:1.5}
.toolbox .fb select.fc-select{height:auto;padding:3px 8px;border-radius:5px;font-size:11px;min-width:auto;max-width:120px}
.toolbox .fb #sort-conds{display:inline-flex;align-items:center;margin:0;gap:2px}
.tb{display:flex;gap:6px;padding:0 16px 6px;flex-wrap:wrap;align-items:center}
.sw-w{flex:1;min-width:160px}
.tb input,.tb select,.fb select{background:var(--bg2);border:1px solid var(--b1);border-radius:6px;color:var(--text);font-size:11px;padding:6px 9px;font-family:inherit;height:30px;width:100%}
.tb select,.fb select{width:auto;min-width:96px;cursor:pointer}
.fb{display:flex;gap:5px;padding:0 16px 8px;flex-wrap:wrap;align-items:center}
.fl{font-size:9px;color:var(--t3);letter-spacing:.08em;margin-right:2px}
.fc{font-size:11px;color:var(--t2);background:var(--bg2);border:1px solid var(--b1);border-radius:13px;padding:3px 11px;cursor:pointer;transition:all .12s;user-select:none}
.fc:hover{border-color:var(--b2);color:var(--text)}
.fc.on{background:var(--adim);border-color:var(--ac);color:var(--ac)}
.fsep,.tb-sep{width:1px;height:16px;background:var(--b1);margin:0 3px;flex-shrink:0}

/* buttons */
.btn{background:var(--bg2);border:1px solid var(--b2);border-radius:6px;color:var(--text);font-size:11px;padding:6px 12px;cursor:pointer;font-family:inherit;height:30px;display:inline-flex;align-items:center;gap:5px;transition:all .12s;white-space:nowrap;text-decoration:none;box-sizing:border-box}
.btn:hover{border-color:var(--ac);color:var(--ac)}.btn:active{transform:scale(.96)}.btn.active{background:var(--ac);color:#1a1407;border-color:var(--ac);font-weight:600}
.btnp{background:var(--ac);color:#1a1407;border-color:var(--ac);font-weight:600}
.btnp:hover{background:var(--ac2);color:#1a1407;border-color:var(--ac2)}
.btnrd{color:var(--red);border-color:#532}.btnrd:hover{background:rgba(224,85,85,.12);border-color:var(--red);color:var(--red)}

/* ===== NEW BUTTON VARIANTS (minimal-clean) ===== */
.btn-primary{background:var(--accent);color:white;padding:0.75rem 1.5rem;border-radius:8px;border:none;font-weight:600;font-size:0.95rem;cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--duration-200) ease-out}
.btn-primary:hover{background:var(--accent-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.btn-primary:active{transform:scale(0.98)}
@media(prefers-color-scheme:dark){.btn-primary{color:#1a1a1a}}

.btn-secondary{background:var(--bg2);color:var(--text);padding:0.75rem 1.5rem;border-radius:8px;border:1px solid var(--border);font-weight:500;font-size:0.95rem;cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--duration-200) ease-out}
.btn-secondary:hover{background:var(--bg3);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.btn-secondary:active{transform:scale(0.98)}

.btn-ghost{background:transparent;color:var(--accent);padding:0.75rem 1.5rem;border-radius:8px;border:1px solid var(--border);font-weight:500;font-size:0.95rem;cursor:pointer;transition:all var(--duration-200) ease-out}
.btn-ghost:hover{background:var(--bg2)}

.lb{position:relative;background:none;border:none;color:var(--t2);cursor:pointer;text-decoration:none;font-size:13px;display:inline-flex;align-items:center;padding:2px;transition:color .12s}.lb:hover{color:var(--ac)}
/* 見た目のサイズは変えずクリック/タップ領域のみ拡大 */
.lb::after{content:'';position:absolute;inset:-4px}
.pc-cf .lb::after,.lv-acts .lb::after,.tv-acts .lb::after,.det-dest-act .lb::after{inset:-2px}
.disp-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:250;background:var(--card);border:1px solid var(--b1);border-radius:8px;padding:8px;box-shadow:0 6px 20px rgba(0,0,0,.45);min-width:200px;display:flex;flex-direction:column;gap:4px}
.disp-row{display:flex;align-items:center;gap:4px;padding:3px 4px;border-radius:5px}
.disp-row:hover{background:var(--bg2)}
.disp-lb{font-size:11px;color:var(--t2);flex:1;white-space:nowrap}
.disp-val{font-size:11px;min-width:38px;text-align:center;color:var(--text)}
.disp-row .lb{font-size:14px;padding:2px 5px}
.disp-tog{font-size:11px!important;border:1px solid var(--b2);border-radius:5px;padding:3px 7px!important}
.disp-tog.on{background:var(--ac);color:#1a1407;border-color:var(--ac)}

/* grid cards */
.cg{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:8px;padding:0 16px 18px}
#cards.cg{grid-template-columns:repeat(auto-fill,minmax(var(--pc-w,178px),1fr))}
#col-cards.cg,#cold-body .cg{grid-template-columns:repeat(auto-fill,minmax(var(--pc-w,178px),1fr))}
.col-cat-list{display:flex;flex-direction:column;gap:2px;padding-bottom:12px}
.col-cat-sec{padding:0 16px}
.col-cat-hd{display:flex;align-items:baseline;gap:12px;padding:14px 0 8px;border-bottom:2px solid var(--ac);margin:0 2px 18px}
.col-cat-nm{font-size:16px;font-weight:700;color:var(--text)}
.col-cat-cnt{font-size:12px;font-weight:500;color:var(--t3)}
.col-cat-hd .lb{margin-left:auto}
.col-cat-hd .lb+.lb{margin-left:0}
.col-cat-grid{grid-template-columns:repeat(auto-fill,minmax(var(--pc-w,200px),1fr));gap:12px;padding:0 0 6px;border-radius:8px;transition:background .12s,outline-color .12s}
.col-cat-grid.drag-over{background:var(--adim);outline:2px dashed var(--ac);outline-offset:4px}
.col-cat-empty{grid-column:1/-1;text-align:center;padding:24px;font-size:12px;color:var(--t3);border:1px dashed var(--b1);border-radius:8px;background:var(--card2);font-style:italic}
/* コレクション一覧: カードをエディトリアル寄りに強調（Option B） */
#col-cards .pc{border-radius:var(--r-lg);box-shadow:0 1px 2px rgba(0,0,0,.04);transition:border-color var(--dur-fast),box-shadow .15s,transform .15s}
#col-cards .pc:hover{box-shadow:0 4px 12px var(--adim2);transform:translateY(-2px)}
#col-cards .pc-b{padding:11px 12px}
#col-cards .pc-nm{font-size:13px;font-weight:700;line-height:1.35}
#col-cards .pc-ruby{font-size:10px;font-weight:500;min-height:13px}
#col-cards .pc-cf{border-top:none;padding-top:0;height:26px}
.pc{background:var(--card);border:1px solid var(--b1);border-radius:var(--r-md);overflow:hidden;position:relative;cursor:pointer;transition:border-color var(--dur-fast);display:flex;flex-direction:column}
.card-dragging{opacity:.55;outline:2px dashed var(--ac);outline-offset:-2px}
.pc:hover{border-color:var(--ac)}.pc:hover .pc-img{filter:brightness(1)}
.pc.sel{border-color:var(--ac);box-shadow:0 0 0 2px var(--adim2)}
.pc.editing{border-color:rgba(251,146,60,.4);box-shadow:0 0 0 1px rgba(251,146,60,.25),0 0 12px rgba(251,146,60,.12)}
.pc-chk-wrap{position:absolute;top:6px;left:6px;z-index:10;width:20px;height:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.pc-chk{display:block;width:16px;height:16px;border-radius:4px;border:2px solid rgba(255,255,255,.5);background:rgba(0,0,0,.35);opacity:.5;transition:opacity .15s,background .12s,border-color .12s;flex-shrink:0}
.pc-chk.checked{background:var(--ac);border-color:var(--ac);opacity:1}
.pc-chk.checked::after{content:'✓';display:block;color:#1a1407;font-size:11px;font-weight:900;text-align:center;line-height:14px}
.pc:hover .pc-chk{opacity:1;border-color:rgba(255,255,255,.8)}
.pc-imgwrap{position:relative}
.pc-img-fade{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity var(--thumb-fade-ms,600ms) ease;pointer-events:none}
.pc-img{width:100%;height:var(--pc-img-h,140px);object-fit:cover;object-position:center;display:block;background:var(--card2);filter:brightness(.85);opacity:1;transition:opacity .6s ease,transform .3s ease}
.pc-ph{width:100%;height:var(--pc-img-h,140px);display:flex;align-items:center;justify-content:center;color:var(--t3);font-size:26px;background:var(--card2)}
.pc-ov{position:absolute;right:5px;bottom:5px;display:flex;gap:3px;background:rgba(0,0,0,.62);border-radius:5px;padding:2px 4px}
.pc-ov .badge{font-size:8.5px;padding:1px 6px}
.pc-b{padding:7px 9px;flex:1;display:flex;flex-direction:column}
.pc-cf{margin-top:auto}
.pc-no{font-size:8px;color:var(--t3);font-weight:400;line-height:1;margin-bottom:1px;opacity:.7}
.pc-nm{font-size:var(--pc-nm-size,12px);font-weight:600;line-height:1.3;word-break:break-word}
.status-badge{position:absolute;bottom:6px;left:6px;z-index:15;font-size:14px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-weight:600}
.status-badge.want{background:rgba(96,165,250,.24);color:var(--blue)}
.status-badge.done{background:rgba(74,222,128,.24);color:var(--green)}
.pc-ruby{font-size:9px;color:var(--t2);margin-top:1px;min-height:12px}
.pc-folder{cursor:pointer}
.pc-folder .pc-folder-ph{font-size:30px;background:var(--card2)}
#col-breadcrumb{display:flex;align-items:center;gap:10px;padding:0 16px 8px}
#col-breadcrumb .col-bc-name{font-size:13px;font-weight:600;color:var(--ac)}
.pc-meta{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}
.badge{font-size:9px;padding:2px 7px;border-radius:10px;white-space:nowrap;border:1px solid rgba(255,255,255,.08)}
.bw{background:rgba(96,165,250,.14);color:var(--blue)}.bd{background:rgba(74,222,128,.14);color:var(--green)}
.bc{background:var(--adim);color:var(--ac)}
.toolbox .tb-stats{padding:1px}
.fstats{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.fstats .fst-g{display:inline-flex;align-items:center;gap:2px;white-space:nowrap}
.fstats .fst-section{background:var(--bg2);border:1px solid var(--b1);border-radius:6px;padding:4px 8px}
@media(orientation:portrait){
  .fstats{justify-content:space-between}
  .fstats .fst-g-flex{flex:1;justify-content:center}
}
.fstats .fst-lb{font-size:8px;color:var(--t3)}
.fstats .fst-cat{font-size:10px;color:var(--t2);display:inline-flex;align-items:center;gap:2px}
.fstats b{font-size:12px;font-weight:600}
.fstats .fst-done{color:#86efac}.fstats .fst-want{color:#93c5fd}
.fstats .fst-slash,.fstats .fst-sep{color:var(--t3);font-size:10px}
.fstats .fst-total{color:var(--ac)}
.dest-erow{display:flex;gap:10px;background:var(--card2);border:1px solid var(--b1);border-radius:8px;padding:8px;margin-bottom:8px;position:relative}
.dest-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.dest-top{display:flex;gap:10px;align-items:stretch}
.dest-thumb{flex:0 0 160px;width:160px;border-radius:6px;overflow:hidden;background:var(--card);border:1px solid var(--b1);display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--t3)}
.dest-thumb img{width:100%;height:100%;object-fit:cover}
.dest-fields-top{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.dest-fields-bottom{display:flex;flex-direction:column;gap:5px}
.dest-fields-top input[type=text],.dest-fields-bottom input[type=text]{width:100%;background:var(--bg2);border:1px solid var(--b1);border-radius:6px;color:var(--text);font-size:12px;padding:5px 8px;font-family:inherit;outline:none}
.dest-fields-top input[type=text]:focus,.dest-fields-bottom input[type=text]:focus{border-color:var(--ac)}
.dest-name-row{display:flex;gap:5px}
.dest-name-row .dst-n{flex:1;min-width:0}
.dest-name-row .dst-cat{flex:0 0 auto;max-width:130px;background:var(--bg2);border:1px solid var(--b1);border-radius:6px;color:var(--text);font-size:11.5px;padding:5px 6px;font-family:inherit;cursor:pointer}
.dest-row2{display:flex;gap:5px;align-items:center}
.dest-row2 .dst-lat,.dest-row2 .dst-lng{flex:1;width:auto;min-width:70px}
.dest-row2 .dst-status{flex:0 0 auto;background:var(--bg2);border:1px solid var(--b1);border-radius:6px;color:var(--text);font-size:11px;padding:5px 6px;font-family:inherit;cursor:pointer}
.dest-row2 .dst-up{height:28px;padding:0 8px;flex:0 0 auto;cursor:pointer}
.tr{display:flex;flex-wrap:wrap;gap:3px;margin-top:5px;min-height:18px}
.pc .tr{flex-wrap:nowrap;overflow:hidden}
#cold-body .pc .tr{display:none}
#cards.hide-tags .pc .tr{display:none}
.pc .tr .tp{flex-shrink:0}
.tp{font-size:9px;color:var(--t2);background:var(--bg3);border:1px solid var(--b1);border-radius:3px;padding:1px 6px;cursor:pointer}.tp:hover{border-color:var(--ac);color:var(--ac)}
.pc-bot{margin-top:auto;display:flex;flex-direction:column}
.pc-why{font-size:10px;color:var(--ac);opacity:.85;line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;word-break:break-word}
.pc-why:empty{display:none}
.pc-cf{display:flex;align-items:center;justify-content:space-between;margin-top:3px;padding-top:3px;border-top:1px solid var(--b1);height:23px;box-sizing:border-box;flex-shrink:0;overflow:hidden}
.pc-links{display:flex;gap:4px;align-items:center;height:18px}.pc-acts{display:flex;gap:3px;align-items:center;height:18px}
.pc-cf .lb,.pc-cf .lb img{height:18px;line-height:18px}
.pc-cf .lb{display:inline-flex;align-items:center;justify-content:center;padding:0 1px}
.edit-badge{position:absolute;top:5px;left:50%;transform:translateX(-50%);z-index:5;font-size:9px;font-weight:700;color:#fb923c;background:rgba(251,146,60,.14);border:1px solid rgba(251,146,60,.4);border-radius:9px;padding:1px 8px}
/* 編集済（updatedAt）。編集中バッジは中央なので右上に置いて重ならないようにする */
.upd-badge{position:absolute;top:5px;right:5px;z-index:5;font-size:9px;font-weight:700;color:#93c5fd;background:rgba(147,197,253,.14);border:1px solid rgba(147,197,253,.4);border-radius:9px;padding:1px 8px}

/* list view */
.lv{display:flex;flex-direction:column;gap:4px;padding:0 16px 18px}
.lv-row{background:var(--card);border:1px solid var(--b1);border-radius:var(--r-md);display:flex;align-items:center;gap:10px;padding:0 10px 0 0;cursor:pointer;overflow:hidden;transition:border-color var(--dur-fast)}
.lv-row:hover{border-color:var(--b2)}.lv-row.sel{border-color:var(--ac)}
.lv-th{width:64px;align-self:stretch;min-height:52px;object-fit:cover;background:var(--card2);display:flex;align-items:center;justify-content:center;color:var(--t3);font-size:16px;overflow:hidden;flex-shrink:0}
.lv-th img{width:100%;height:100%;object-fit:cover}
.lv-info{flex:1;min-width:0;padding:6px 0}
.lv-nm{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lv-sub{font-size:10px;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.lv-acts{display:flex;gap:4px;flex-shrink:0}
.cv{display:flex;flex-direction:column;gap:2px;padding:0 16px 18px}
.cv-row{background:var(--card);border:1px solid var(--b1);border-radius:var(--r-sm);display:flex;align-items:center;gap:8px;padding:5px 8px;cursor:pointer;transition:border-color var(--dur-fast)}
.cv-row:hover{border-color:var(--b2)}.cv-row.sel{border-color:var(--ac)}.cv-row.editing{border-color:rgba(251,146,60,.4)}
.cv-nm{font-size:13px;font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.cv-ruby{font-size:10px;color:var(--t3);font-weight:400}.cv-pref{font-size:10px;color:var(--t2);white-space:nowrap;flex-shrink:0}
.tv-wrap{padding:0 16px 18px;overflow-x:auto}
.tv{width:100%;border-collapse:collapse;font-size:12px}
.tv th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--b2);color:var(--t2);font-weight:600;white-space:nowrap;position:sticky;top:0;background:var(--bg)}
.tv td{padding:6px 8px;border-bottom:1px solid var(--b1);vertical-align:middle}
.tv tr{cursor:pointer;transition:background .1s}.tv tr:hover td{background:var(--card2)}.tv tr:hover td:first-child{box-shadow:inset 2px 0 0 var(--ac)}.tv tr.sel td{background:var(--adim2)}
.tv .tv-nm{font-weight:600;white-space:nowrap}.tv .tv-acts{display:flex;gap:4px;white-space:nowrap}

.empty{text-align:center;padding:48px 16px;color:var(--t3);font-size:13px}.empty::before{content:'🔍';display:block;font-size:32px;margin-bottom:10px;opacity:.5}

/* modal */
.mo{position:fixed;inset:0;background:rgba(0,0,0,.66);z-index:200;overflow-y:auto;display:none}
.mo.show{display:block;animation:moFadeIn var(--dur-base) ease both}
#focal-mo{z-index:210}
.mo.hiding{animation:moFadeOut var(--dur-base) ease both}
.mo.show .md{animation:moCardIn .22s var(--ease-out) both}
.mo.hiding .md{animation:moCardOut .18s ease both}
@keyframes moFadeIn{from{opacity:0}to{opacity:1}}
@keyframes moFadeOut{from{opacity:1}to{opacity:0}}
@keyframes moCardIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@keyframes moCardOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(8px) scale(.98)}}
.md{background:var(--card);border:1px solid var(--b2);border-radius:var(--r-lg);max-width:calc(100% - 16px);width:100%;margin:26px auto;box-shadow:var(--sh-3);overflow:hidden;animation:mdIn .18s var(--ease-out) both}
@keyframes mdIn{from{opacity:0;transform:scale(.97) translateY(6px)}to{opacity:1;transform:none}}
.mh{padding:11px 15px;background:var(--bg2);border-bottom:1px solid var(--b1);display:flex;align-items:center;gap:10px}
.mh h3{font-size:14px;color:var(--ac);font-weight:600;flex:1}
.mc{padding:13px 15px;max-height:74vh;overflow-y:auto}
.ma{padding:10px 15px;border-top:1px solid var(--b1);display:flex;gap:8px;justify-content:flex-end;background:var(--bg2)}
.x{background:none;border:none;color:var(--t2);font-size:21px;cursor:pointer;line-height:1;padding:0 3px}.x:hover{color:#fff}
.fi{margin-bottom:7px}
.fi label{display:block;font-size:10px;color:var(--t2);letter-spacing:.04em;margin-bottom:3px}
.fi input,.fi select,.fi textarea{width:100%;background:var(--bg2);border:1px solid var(--b1);border-radius:var(--r-sm);color:var(--text);font-size:11.5px;padding:6px 9px;font-family:inherit;transition:border-color var(--dur-fast)}
.fi input:focus,.fi select:focus,.fi textarea:focus{border-color:var(--ac)}
.fi textarea{resize:vertical;min-height:42px}
.r2{display:grid;grid-template-columns:1fr 1fr;gap:7px}.r3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
.fil{display:flex;align-items:center;gap:7px;background:var(--bg2);border:1px solid var(--b1);border-radius:var(--r-sm);padding:0 9px;margin-bottom:7px;transition:border-color var(--dur-fast)}
.fil:focus-within{border-color:var(--ac)}
.fil>.fll{font-size:10px;color:var(--t2);flex-shrink:0;min-width:58px;white-space:nowrap}
.fil>input,.fil>select,.fil>textarea{flex:1;min-width:0;background:none;border:none;color:var(--text);font-size:12.5px;padding:7px 0;font-family:inherit;outline:none}
.ip-wrap{width:100%;height:170px;border-radius:var(--r-md);border:1px solid var(--b2);background:var(--card2);display:flex;align-items:center;justify-content:center;color:var(--t3);font-size:30px;overflow:hidden;margin-bottom:7px}
.ip-wrap img{width:100%;height:100%;object-fit:cover}
#addr-map{width:100%;height:200px;border:1px solid var(--b1);border-radius:var(--r-md);margin-bottom:7px;background:var(--bg2)}
#addr-map iframe{width:100%;height:100%;border:none;border-radius:var(--r-md)}
.col-sec{font-size:10px;color:var(--ac);letter-spacing:.08em;text-transform:uppercase;margin:10px 0 5px;padding-bottom:3px;border-bottom:1px solid var(--b1)}
.rowdel{background:none;border:1px solid var(--b2);color:var(--t2);border-radius:5px;cursor:pointer;width:26px;flex-shrink:0}.rowdel:hover{border-color:var(--red);color:var(--red)}
.hday{display:inline-block;font-size:11px;padding:3px 8px;border:1px solid var(--b1);border-radius:5px;cursor:pointer;color:var(--t2);user-select:none}.hday.on{background:var(--adim);border-color:var(--ac);color:var(--ac)}
.hrs-times{display:grid;grid-template-columns:72px 1fr 1fr 1fr 1fr auto auto;align-items:center;gap:4px}
.hrs-times:has(.hrs-2-wrap[style*="none"]){grid-template-columns:72px 1fr 1fr auto auto}
.hrs-t{background:var(--bg2);border:1px solid var(--b1);border-radius:6px;color:var(--text);font-size:12px;padding:5px 6px;width:100%;min-width:0}
.hrs-label{background:var(--bg2);border:1px solid var(--b1);border-radius:6px;color:var(--text);font-size:11px;padding:5px 6px;width:100%;min-width:0}
.hrs-t:focus{outline:none;border-color:var(--ac)}
.hrs-btn2{height:26px;font-size:10px;padding:0 8px;flex-shrink:0}
.hrs-2-wrap{display:contents}
.fld{display:flex;align-items:center;background:var(--bg2);border:1px solid var(--b1);border-radius:var(--r-sm);margin-bottom:6px;overflow:hidden;transition:border-color var(--dur-fast)}
.fld:focus-within{border-color:var(--ac)}
.fld>span{font-size:9px;color:var(--t2);flex:0 0 72px;padding:0 8px;letter-spacing:.02em}
.fld input,.fld select,.fld textarea{flex:1;min-width:0;background:none;border:none;color:var(--text);font-size:11.5px;padding:6px 9px;font-family:inherit}
.fld textarea{resize:vertical;min-height:38px}
.fld .btn{height:auto;align-self:stretch;border:none;border-left:1px solid var(--b1);border-radius:0}.img-prev{width:100%;height:180px;border-radius:var(--r-md);overflow:hidden;background:var(--card2);border:1px solid var(--b1);margin-bottom:8px;display:flex;align-items:center;justify-content:center;color:var(--t3);font-size:12px;position:relative}
.img-prev img{width:100%;height:100%;object-fit:cover}
#img-prev{height:auto;min-height:0;padding:6px;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:6px}
.img-strip{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.focal-dbtn{padding:0;justify-content:center;width:28px;height:28px;font-size:12px}
.imgthumb{position:relative;width:var(--pc-w,178px);height:var(--pc-img-h,140px);border-radius:6px;overflow:hidden;border:1px solid var(--b1);background:var(--card2)}
.imgthumb img{width:100%;height:100%;object-fit:cover;display:block}
.imgthumb-rep{position:absolute;bottom:3px;left:3px;font-size:9px;font-weight:700;background:var(--ac);color:#1a1407;border-radius:3px;padding:1px 6px}
.imgthumb-ov{position:absolute;top:3px;right:3px;display:flex;gap:3px}
.imgthumb-ov button{width:19px;height:19px;border:none;border-radius:4px;background:rgba(0,0,0,.62);color:#fff;cursor:pointer;font-size:11px;line-height:1;padding:0}
.imgthumb-ov button:hover{background:var(--ac);color:#1a1407}
.updbtn{background:var(--bg2);border:none;color:var(--t2);font-size:10px;padding:5px 10px;cursor:pointer;font-family:inherit;transition:background var(--dur-fast),color var(--dur-fast)}
.updbtn.on{background:var(--adim);color:var(--ac)}
.tag-panel{user-select:none;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}
.tag-sec{border:1px solid var(--b1);border-radius:5px;overflow:visible;flex-shrink:0}
.tag-sec-hd{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg2);font-size:11px;color:var(--t2);letter-spacing:.05em;min-height:26px;cursor:pointer}
.tag-sec-hd span{flex:1;font-weight:600;color:var(--text)}
.tag-sec-hd input.tc-rename{flex:1;background:var(--bg);border:1px solid var(--ac);border-radius:3px;color:var(--text);font-size:9px;padding:1px 5px;outline:none}
.tc-arrow{flex:0 0 auto!important;font-size:9px;color:var(--t3);width:10px;text-align:center;font-weight:400!important}
.tc-selbadge{flex:0 0 auto!important;font-size:9px;color:var(--ac);background:var(--adim);border-radius:3px;padding:1px 6px;font-weight:600!important;margin-right:2px}
.tag-sec.collapsed .tag-sec-body{display:none}
.tag-sec-body{display:flex;flex-wrap:wrap;gap:4px;padding:4px 6px;min-height:18px;overflow:visible}
.tag-sec-body.drag-over{background:var(--adim);outline:2px dashed var(--ac);outline-offset:-2px;border-radius:0 0 7px 7px}
.tag-sec-hd .tc-drag{flex:0 0 auto!important;cursor:grab;color:var(--t3);font-weight:400!important;user-select:none;font-size:13px;padding:0 2px}
.tag-sec-hd .tc-drag:active{cursor:grabbing}
.tag-sec.cat-dragging{opacity:.5}
.tag-sec.cat-over{outline:2px dashed var(--ac);outline-offset:-2px;border-radius:7px}
.tag-chip{font-size:11px;color:var(--t2);background:var(--bg2);border:1px solid var(--b1);border-radius:3px;padding:3px 8px;cursor:pointer;transition:all .1s;display:inline-flex;align-items:center;gap:3px;position:relative}
.tag-chip:hover{border-color:var(--b2);transform:translateY(-1px)}
.tag-chip.sel{background:var(--adim);border-color:var(--ac);color:var(--ac);font-weight:600}
.tag-chip .cnt{font-size:9px;color:var(--t3);margin-left:2px}
.tagflow{padding:6px 16px 14px;display:flex;flex-direction:column;gap:6px;overflow:hidden}
.tf-lane{overflow:hidden;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.tf-track{display:inline-flex;gap:8px;animation-name:tf-scroll;animation-timing-function:linear;animation-iteration-count:infinite;will-change:transform}
.tf-lane:hover .tf-track{animation-play-state:paused}
.tf-chip{pointer-events:none;flex-shrink:0}
@keyframes tf-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
#idea-board{display:flex;flex-direction:column;gap:10px}
.idea-folder{border:none;background:none;overflow:visible;margin-bottom:6px}
.idea-folder.idea-folder-dragging{opacity:.5}
.idea-folder-hd{display:flex;align-items:center;gap:8px;padding:5px 4px;background:none;border:none}
.ifd-drag{cursor:grab;color:var(--t3);font-size:13px;user-select:none;line-height:1}
.ifd-drag:active{cursor:grabbing}
.ifd-name{font-weight:600;font-size:12.5px;color:var(--nc,var(--text))}
.ifd-cnt{font-size:10px;color:var(--t3)}
.ifd-acts{margin-left:auto;display:flex;gap:4px}
.idea-folder-body{display:flex;flex-wrap:wrap;gap:6px;padding:2px 4px 7px;min-height:0}
.idea-folder-body.idea-drop-over{background:var(--adim);border-radius:6px}
.idea-folder-empty{width:100%;color:var(--t3);font-size:11px;padding:4px 2px;text-align:left}
.idea-note{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text);background:var(--bg2);border:none;border-radius:13px;padding:4px 10px;cursor:grab}
.idea-note::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--nc,var(--t3));flex-shrink:0}
.idea-note.idea-dragging{opacity:.4}
.idea-note:active{cursor:grabbing}
.idea-note-body{font-size:12px;line-height:1.3;color:var(--text);word-break:break-word}
.idea-note-del{background:none;border:none;color:var(--t3);cursor:pointer;font-size:11px;line-height:1;padding:0 1px}
.idea-note-del:hover{color:#f87171}
.tag-chip.sel .cnt{color:var(--ac2)}
.tag-chip.dragging{opacity:.4}
.tag-chip.drop-before::before,.tag-chip.drop-after::after{content:'';position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ac);border-radius:1px}
.tag-chip.drop-before::before{left:-3px}
.tag-chip.drop-after::after{right:-3px}
#cold-body .pc{cursor:grab}
#cold-body .pc-why,#cold-body .pc-cf{display:none}
#cold-body .pc.dragging,#col-cards .pc.dragging{opacity:.4}
#cold-body .pc.drag-over,#col-cards .pc.drag-over{outline:2px dashed var(--ac);outline-offset:-2px}
.spot-row{display:flex;flex-direction:column;gap:3px;margin-bottom:6px}
.spot-line{display:flex;gap:4px;align-items:center}
.spot-drag{cursor:grab;color:var(--t3);font-size:14px;padding:0 4px;flex-shrink:0;user-select:none;line-height:1}
.spot-drag:active{cursor:grabbing}
.spot-ac{border:1px solid var(--b1);border-radius:6px;background:var(--card);max-height:180px;overflow-y:auto}
.spot-ac-item{display:flex;align-items:center;gap:8px;padding:5px 8px;cursor:pointer}
.spot-ac-item:hover{background:var(--bg2)}
.spot-ac-th{width:34px;height:34px;object-fit:cover;border-radius:5px;flex-shrink:0;background:var(--card2)}
.spot-ac-ph{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:5px;background:var(--card2);font-size:16px;flex-shrink:0}
.spot-ac-tx{display:flex;flex-direction:column;min-width:0}
.spot-ac-nm{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spot-ac-meta{font-size:10px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tag-chip .drag-hdl{cursor:grab;color:var(--t3);font-size:8px;padding-right:1px}
.tag-chip-edit{display:none;background:none;border:none;color:var(--t3);cursor:pointer;font-size:9px;padding:0 0 0 3px;line-height:1;opacity:.7}
.tag-chip:hover .tag-chip-edit{display:inline}
.tag-chip-edit:hover{color:var(--ac);opacity:1}
.tag-chip-box{display:flex;flex-wrap:wrap;align-items:center;gap:5px;background:var(--bg2);border:1px solid var(--b1);border-radius:6px;padding:5px 8px;cursor:text;min-height:38px}
.tag-chip-box #tag-chips{display:inline-flex;flex-wrap:wrap;gap:5px;align-items:center}
.tag-chip-box input{background:none;border:none;outline:none;color:var(--text);font-size:12px;padding:2px 0;font-family:inherit}
.fld-tag{overflow:visible}
#tag-ac{flex-basis:100%;width:100%;margin-top:6px;padding-top:8px;border-top:1px solid var(--b1);max-height:200px;overflow-y:auto;flex-wrap:wrap;gap:6px}
.dest-tag-ac{flex-basis:100%;width:100%;margin-top:6px;padding-top:8px;border-top:1px solid var(--b1);max-height:160px;overflow-y:auto;flex-wrap:wrap;gap:6px}
.f-tag-chip{display:inline-flex;align-items:center;gap:3px;background:none;border:1px solid var(--b2);color:var(--t2);border-radius:4px;padding:2px 7px;font-size:11px;white-space:nowrap}
.f-tag-chip button{background:none;border:none;color:var(--t3);cursor:pointer;font-size:12px;padding:0 0 0 2px;line-height:1}
.arch-preset{display:inline-block;font-size:11px;padding:2px 8px;border-radius:12px;border:1px solid var(--b2);color:var(--t3);cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}
.arch-preset:hover{background:var(--bg3);color:var(--text)}
.arch-preset.on{background:var(--ac);color:#000;border-color:var(--ac)}
.arch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.arch-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:6px;border-radius:9px;border:1px solid var(--b2);cursor:pointer;transition:background .12s,border-color .12s}
.arch-card:hover{background:var(--bg3)}
.arch-card.on{background:var(--adim);border-color:var(--ac)}
.arch-chip-thumb{width:100%;aspect-ratio:1/1;border-radius:7px;object-fit:cover;background:var(--card2)}
.arch-chip-thumb-ph{width:100%;aspect-ratio:1/1;border-radius:7px;background:var(--card2);display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--t3)}
.arch-card-nm{font-size:11.5px;text-align:center;line-height:1.3;color:var(--t2);word-break:break-word}
.arch-card.on .arch-card-nm{color:var(--ac);font-weight:600}
.arch-chip-thumb-btn{position:absolute;top:3px;right:3px;display:none;background:rgba(0,0,0,.55);border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:11px;padding:2px 4px;line-height:1}
.arch-card:hover .arch-chip-thumb-btn{display:inline}
.arch-chip-thumb-btn:hover{background:var(--ac);color:#000}
.lt-btn{padding:4px 10px;font-size:11px}
.lt-btn.lt-on{background:var(--adim);border-color:var(--ac);color:var(--ac)}
/* ── 地図ツールバー：セグメントグループ ── */
.map-tb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 16px 10px}
.map-tb-seg{display:flex;align-items:center;background:var(--bg2);border:1px solid var(--b1);border-radius:8px;overflow:hidden}
.map-tb-seg button{background:transparent;border:none;border-right:1px solid var(--b1);color:var(--text2);font-size:12px;padding:6px 10px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .12s;white-space:nowrap;height:30px;box-sizing:border-box}
.map-tb-seg button:last-child{border-right:none}
.map-tb-seg button:hover{background:var(--adim);color:var(--ac)}
.map-tb-seg button.lt-on{background:var(--ac);color:#1a1407;font-weight:600}
.map-tb-icon-btn{background:var(--bg2);border:1px solid var(--b1);border-radius:8px;color:var(--text2);font-size:14px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .12s}
.map-tb-icon-btn:hover{border-color:var(--ac);color:var(--ac);background:var(--adim)}
.map-tb-icon-btn.lt-on{background:var(--ac);color:#1a1407;border-color:var(--ac)}
.map-tb-sel{font-size:11px;padding:0 8px;border:1px solid var(--b1);background:var(--bg2);color:var(--text2);border-radius:8px;cursor:pointer;height:32px}
.map-tb-sel:hover{border-color:var(--ac)}
.map-tb-divider{width:1px;height:22px;background:var(--b1);margin:0 2px}
.map-tags-row{display:flex;gap:5px;padding:0 16px 8px;overflow-x:auto;flex-shrink:0}
.map-tags-row .tag-chip{flex-shrink:0;cursor:pointer}
.col-autotag-chip{display:inline-block;font-size:12px;padding:4px 12px;border-radius:14px;border:1px solid var(--b2);color:var(--t2);cursor:pointer;white-space:nowrap;transition:background .12s,color .12s,border-color .12s}
.col-autotag-chip:hover{background:var(--bg3);color:var(--text)}
.col-autotag-chip.on{background:var(--ac);color:#000;border-color:var(--ac)}

/* plan tabs */
.plan-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px;border-bottom:1px solid var(--b1);margin-bottom:2px}
.plan-tab{height:30px;padding:0 14px;font-size:12px;white-space:nowrap;flex-shrink:0}
.places-plan-tabs{padding:4px 16px;border-bottom:none;margin:0}
.places-head .toolbox{margin-bottom:0}
.places-plan-tabs .plan-tab{height:24px;padding:0 10px;font-size:11px}
.plan-tab-pane{display:none}.plan-tab-pane.active{display:block}
/* ヘルプモーダル：横に広げて多段組み（スクロール不要にする） */
#help-mo .md{max-width:min(97vw,1280px);width:97%;margin:12px auto}
#help-mo .mc{max-height:none;overflow:visible;padding:10px 14px}
.help-cols{columns:300px 4;column-gap:20px;font-size:11.5px;line-height:1.55}
.help-sec{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;margin-bottom:12px}
.help-sec .col-sec{margin:0 0 4px}
.help-sec ul,.help-sec ol{margin:0;padding-left:17px}
.help-sec li{margin-bottom:2px}
/* 重複検知：カテゴリ別文字数（密レイアウト） */
.dup-catlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:3px}
.dup-row{display:flex;align-items:center;gap:4px;background:var(--card);border:1px solid var(--b1);border-radius:4px;padding:1px 4px}
.dup-nm{flex:1;min-width:0;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dup-inp{width:52px;flex:0 0 52px;background:var(--bg2);border:1px solid var(--b1);border-radius:3px;color:var(--text);font-size:11px;padding:1px 3px;font-family:inherit}
.dup-u{font-size:9px;color:var(--t3);flex:0 0 auto}

/* Leaflet Draw dark theme */
.leaflet-draw-toolbar a{background-color:#111 !important;border-bottom:1px solid #2a2a2a !important}
.leaflet-draw-toolbar a:hover{background-color:#1a1407 !important}
.leaflet-draw-section{background:#0e0e0e !important;border:1px solid var(--ac) !important;border-radius:6px !important}
.leaflet-draw-toolbar{border-radius:6px !important;overflow:hidden}
.leaflet-draw-actions a{background-color:#111 !important;color:var(--ac) !important;border-left:1px solid #2a2a2a !important;font-size:11px !important}
.leaflet-draw-actions a:hover{background-color:#1a1407 !important}
.leaflet-draw-actions li:first-child a{border-radius:0 4px 4px 0 !important}
#map-canvas{position:relative;z-index:0;isolation:isolate}
.lpin{position:relative;width:30px;height:40px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.5))}
.lpin .em{position:absolute;top:3px;left:0;width:30px;text-align:center;font-size:15px;line-height:1}
.lpin.done::after{content:'✓';position:absolute;bottom:13px;right:1px;font-size:9px;font-weight:900;color:#fff;background:var(--green);border-radius:50%;width:12px;height:12px;line-height:12px;text-align:center;border:1px solid #000}
.leaflet-popup-content{font-family:inherit}
.leaflet-popup-content b{color:#1a1407}
/* ── 地図マーカー簡易メニュー ── */
.mpm-popup .maplibregl-popup-content{background:#000;border-radius:8px;padding:10px 12px;box-shadow:0 6px 20px rgba(0,0,0,.5)}
.mpm-popup .maplibregl-popup-tip{border-top-color:#000!important;border-bottom-color:#000!important}
.mpm-popup .maplibregl-popup-close-button{color:#d4af37;font-size:16px}
.map-popup-menu{font-family:inherit;min-width:210px}
.mpm-header{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}
.mpm-thumb{flex:0 0 auto;width:52px;height:52px;border-radius:6px;overflow:hidden;background:#1f1f1f;display:flex;align-items:center;justify-content:center;font-size:24px}
.mpm-info{flex:1;min-width:0}
.mpm-ruby{font-size:9px;color:#999;letter-spacing:.03em;margin-bottom:1px}
.mpm-title{font-weight:700;font-size:14px;color:#d4af37;margin-bottom:2px}
.mpm-cat-icon{margin-right:4px}
.mpm-addr{font-size:11px;color:#e5e5e5;line-height:1.4}
.mpm-detail-btn{width:100%;background:#d4af37;border:none;border-radius:6px;padding:2px 9px;font-size:10px;font-weight:600;font-family:inherit;color:#fff;cursor:pointer;transition:all .12s;margin-bottom:8px}
.mpm-detail-btn:hover{background:#e6c34f}
.mpm-emoji-row{display:flex;gap:4px;justify-content:space-between}
.mpm-emoji{flex:1;background:#1f1f1f;border:1px solid #333;border-radius:6px;padding:6px 0;font-size:14px;cursor:pointer;transition:all .12s;display:flex;align-items:center;justify-content:center}
.mpm-emoji:hover{background:#d4af37;border-color:#d4af37}
.mpm-emoji.mpm-danger:hover{background:#e05555;border-color:#e05555}

/* detail */
.det-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.det-item{background:var(--card);border:1px solid var(--b1);border-radius:var(--r-sm);padding:5px 9px;display:flex;align-items:center;gap:6px;transition:border-color var(--dur-fast)}
.det-item:hover{border-color:var(--b2)}
.di-l{font-size:8px;color:var(--t2);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;min-width:55px}
.di-v{font-size:11.5px;flex:1;word-break:break-word}
.det-sec{margin-bottom:9px}
.det-sec h4{font-size:9px;color:var(--ac);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;padding-bottom:3px;border-bottom:1px solid var(--b1)}
.det-memo{background:var(--card);border:1px solid var(--b1);border-radius:var(--r-md);padding:8px 11px;font-size:12.5px;color:var(--t2);white-space:pre-wrap;line-height:1.5}
.det-img{width:100%;max-height:230px;object-fit:cover;border-radius:var(--r-md);border:1px solid var(--b2);margin-bottom:8px}
.det-img-wrap{width:100%;height:180px;overflow:hidden;border-radius:var(--r-md);border:1px solid var(--b2);margin-bottom:7px;background:var(--card)}
.det-img-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.det-why{position:relative;padding:14px 8px 6px;font-size:11.5px;min-height:32px}
.det-why::before{content:'💡 なぜ行きたいか';position:absolute;top:3px;left:8px;font-size:8px;color:var(--t3);letter-spacing:.04em}
.det-memo-label{position:relative;padding:14px 8px 6px;font-size:11.5px;min-height:32px}
.det-memo-label::before{content:'メモ';position:absolute;top:3px;left:8px;font-size:8px;color:var(--t3);letter-spacing:.04em;text-transform:uppercase;font-weight:700}
.det-3col{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;align-items:start}
.det-4col{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;align-items:start}
.det-c1,.det-c2,.det-c3,.det-c4{min-width:0}
.det-dest-list{display:flex;flex-direction:column;gap:6px}
.det-dest{display:flex;flex-direction:row;gap:0;background:var(--card2);border:1px solid var(--b1);border-radius:6px;padding:0;align-items:stretch;position:relative;overflow:hidden}
.det-dest.done{opacity:.6}
.det-dest-img{width:56px;height:auto;object-fit:cover;border-radius:0;flex-shrink:0;background:var(--card);align-self:stretch}
.det-dest-ph{width:56px;display:flex;align-items:center;justify-content:center;border-radius:0;background:var(--card);font-size:20px;color:var(--t3);flex-shrink:0;align-self:stretch}
.det-dest-body{flex:1;min-width:0;display:flex;align-items:center;padding:6px 10px;gap:8px}
.det-dest-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.det-dest-nm{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;text-align:left}
.det-dest.done .det-dest-nm{text-decoration:line-through}
.det-dest-memo{font-size:10px;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.det-dest-act{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;justify-content:flex-end;flex-shrink:0}
.det-dest-act .lb{font-size:9px;padding:2px 6px;height:20px}
.dest-drag-hdl{cursor:grab;color:var(--t3);font-size:14px;user-select:none;padding:3px 6px;line-height:1;position:absolute;top:2px;right:2px;background:rgba(0,0,0,0.3);border-radius:3px;z-index:2}
.det-dest.dest-dragging{opacity:.3}
.det-dest.dest-over{border:2px solid var(--ac)}
.det-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.linkbtn{display:inline-flex;align-items:center;gap:5px;text-decoration:none}
#det-mo{display:none!important}
#det-mo.show{display:flex!important;align-items:center;justify-content:center}
#det-mo .md{width:97vw;max-width:1200px;margin:0 auto;display:flex;flex-direction:column;height:auto;max-height:90dvh}
#det-mo .mc{flex:0 1 auto;max-height:none;min-height:0}
#tag-mo .mc{flex:1 1 auto;max-height:none;min-height:0;overflow-y:hidden;display:flex;flex-direction:column}
#edit-mo .fld{background:var(--bg)}
#edit-mo .fld>span{flex:0 0 auto;min-width:0;padding:0 9px;font-weight:700;color:var(--text);align-self:stretch;display:flex;align-items:center;border-right:1px solid var(--b2)}
#edit-mo{display:none!important}
#edit-mo.show{display:flex!important;align-items:center;justify-content:center}
#edit-mo .md{width:97vw;max-width:1500px;margin:0 auto;height:90vh;max-height:90vh;display:flex;flex-direction:column}
#edit-mo .mc{flex:1 1 auto;max-height:none;min-height:0}
.edit-grid{display:grid;grid-template-columns:1fr;gap:0 22px;align-items:start}
.edit-col{min-width:0}
/* 場所を編集モーダル：余白・間隔を詰めて左詰め上詰め */
#edit-mo .mc{padding:8px 10px}
#edit-mo .edit-grid{gap:0 12px;align-items:start}
#edit-mo .col-sec{margin:0;padding:0}
#edit-mo .fld{margin-bottom:0}
#edit-mo .fi{margin-bottom:4px}
#edit-mo .r2,#edit-mo .r3{gap:4px}
#edit-mo .fld input,#edit-mo .fld select,#edit-mo .fld textarea{padding:4px 9px}
#edit-mo .fi input,#edit-mo .fi select,#edit-mo .fi textarea{padding:4px 9px}
#edit-mo .fld>span{padding:0 6px}
@media(min-width:900px){#det-mo .det-2col{grid-template-columns:1fr 1fr}}

/* ===== RESPONSIVE EDIT MODAL (1920x1080対応) ===== */
@media(min-width:1024px){
  .edit-grid{grid-template-columns:1fr 1fr;gap:0 16px}
}
@media(min-width:1400px){
  .edit-grid{grid-template-columns:1fr 1fr 1fr;gap:0 18px}
}
@media(min-width:1920px){
  #edit-mo .md{width:98vw;max-width:1700px}
  .edit-grid{gap:0 20px}
  #edit-mo .mc{padding:10px 12px}
}

/* print */
#print-area{display:none}
@media print{
  body>*{display:none !important}
  body{background:#fff !important}
  #print-area{display:block !important;color:#111;font-size:12px;line-height:1.7}
  #print-area h1{font-size:20px;border-bottom:2px solid #b8962e;padding-bottom:6px;margin-bottom:4px}
  #print-area .pr-sub{font-size:11px;color:#666;margin-bottom:14px}
  #print-area .pr-item{border:1px solid #ccc;border-radius:6px;padding:9px 12px;margin-bottom:8px;page-break-inside:avoid}
  #print-area .pr-nm{font-size:14px;font-weight:700}
  #print-area .pr-meta{font-size:10px;color:#555}
  #print-area .pr-memo{font-size:11px;color:#333;margin-top:3px;white-space:pre-wrap}
}

/* toast */
#toast{position:fixed;top:20px;left:50%;transform:translateX(-50%) translateY(-20px);background:var(--card2);border:1px solid var(--ac);color:var(--ac);padding:9px 18px;border-radius:var(--r-md);font-size:12px;z-index:400;opacity:0;transition:all .25s;pointer-events:none}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
#toast.err{border-color:var(--red);color:var(--red)}

/* bulk selection bar */
.bulk-bar{display:none;border-top:1px solid var(--adim2);background:rgba(232,201,122,.04)}
.bulk-bar.show{display:flex}
.bulk-cnt{font-size:13px;color:var(--ac);font-weight:700}
@keyframes selWinIn{from{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:none}}

/* quick-add window */
.qadd-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.66);backdrop-filter:blur(2px);z-index:299}
.qadd-ov.show{display:block;animation:moFadeIn .2s ease both}
.qadd-win{display:none;position:fixed;z-index:300;top:50%;left:50%;transform:translate(-50%,-50%);width:880px;max-width:calc(100vw - 16px);background:#1c1a14;border:1px solid var(--adim2);border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.7);overflow:hidden}
.qadd-win.show{display:block;animation:selWinIn .16s ease}
.qadd-hd{display:flex;align-items:center;padding:8px 8px 7px;border-bottom:1px solid var(--b1);background:#221f17;gap:6px}
.qadd-title{flex:1;font-size:13px;font-weight:700;color:var(--text)}
.qadd-close{background:none;border:none;color:var(--t3);cursor:pointer;font-size:13px;padding:2px 5px;border-radius:4px;line-height:1}
.qadd-close:hover{background:var(--card2);color:var(--text)}
.qadd-dupinfo{font-size:11.5px;color:var(--ac);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}
.qadd-list{padding:4px 4px;display:flex;flex-direction:column;gap:6px;max-height:400px;overflow-y:auto;overflow-x:hidden}
.qadd-entry{display:flex;align-items:stretch;gap:8px;padding-bottom:6px;border-bottom:1px solid var(--b1)}
.qadd-entry:last-child{border-bottom:none;padding-bottom:0}
.qadd-entry.done .qadd-inp{opacity:.4}
.qadd-body{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.qadd-r1,.qadd-r2{display:flex;align-items:center;gap:3px}
.qadd-thumb{flex-shrink:0;width:64px;align-self:stretch;border-radius:8px;overflow:hidden;background:var(--card2);border:1px solid var(--b1);display:flex;align-items:center;justify-content:center;color:var(--t3);font-size:20px}
.qadd-thumb img{width:100%;height:100%;object-fit:cover}
.qadd-paste{flex-shrink:0;background:none;border:1px solid var(--b1);border-radius:5px;color:var(--t3);cursor:pointer;font-size:12px;padding:5px 6px;line-height:1;transition:background .1s,color .1s}
.qadd-paste:hover{background:var(--adim2);border-color:var(--ac);color:var(--ac)}
.qadd-num{font-size:10px;color:var(--t3);min-width:18px;text-align:right;flex-shrink:0;padding-right:2px}
.qadd-inp{background:var(--bg2);border:1px solid var(--b1);border-radius:6px;color:var(--text);font-size:12.5px;padding:5px 7px;outline:none;transition:border-color .12s;min-width:0}
.qadd-inp:focus{border-color:var(--ac)}
.qadd-inp-nm{flex:1 1 200px}
.qadd-inp-rb{flex:1 1 140px}
.qadd-inp-ad{flex:2 1 250px}
.qadd-inp-latlng{flex:0 0 150px}
.qadd-inp-why{flex:1 1 260px;min-width:120px}
.qadd-r2 .qadd-commit{margin-left:auto}
.qadd-commit{background:none;border:1px solid var(--b1);border-radius:5px;color:var(--t3);cursor:pointer;font-size:12px;padding:4px 6px;flex-shrink:0;transition:background .1s,color .1s;line-height:1}
.qadd-commit:hover{background:var(--ac);border-color:var(--ac);color:#1a1407}
.qadd-commit:disabled{opacity:.3;cursor:default}
.qadd-plus{background:none;border:1px solid var(--b1);border-radius:5px;color:var(--ac);cursor:pointer;font-size:14px;padding:3px 7px;flex-shrink:0;line-height:1;transition:background .1s}
.qadd-plus:hover{background:var(--adim2)}
.qadd-sel{background:var(--bg2);border:1px solid var(--b1);border-radius:6px;color:var(--text);font-size:11.5px;padding:5px 4px;cursor:pointer;flex-shrink:0;max-width:80px}
.qadd-sel-st{max-width:none;flex:0 0 96px}
.qadd-entry .qadd-sel:not(.qadd-sel-st){flex:0 0 80px;max-width:80px}
.qadd-ft{display:flex;gap:6px;padding:6px 8px 8px;border-top:1px solid var(--b1);justify-content:flex-end}
#qadd-simple-btn.on{background:var(--ac);border-color:var(--ac);color:#1a1407}
.qadd-list.qadd-simple .qadd-thumb,.qadd-list.qadd-simple .qadd-inp-rb,.qadd-list.qadd-simple .qadd-inp-ad,.qadd-list.qadd-simple .qadd-sel-st,.qadd-list.qadd-simple .qadd-r2{display:none}
.qadd-list.qadd-simple .qadd-entry{padding-bottom:3px}
.qadd-list.qadd-simple .qadd-inp-nm{flex:1 1 auto}
.qadd-list.qadd-simple .qadd-sel{max-width:130px;flex:0 0 130px}
.wiki-choice-item{transition:border-color .12s,background .12s}
.wiki-choice-item:hover{border-color:var(--ac)!important;background:var(--adim2)!important}

@media(max-width:760px){
  .sb{transform:translateX(-100%)}.sb.open{transform:translateX(0)}.main{margin-left:0}
  .tog{display:block}.sb-ov.show{display:block}
  .ph{padding-left:48px}.det-2col,.det-grid{grid-template-columns:1fr}
}

/* ===== Dashboard tag ranking ===== */
.tag-rank{display:flex;flex-wrap:wrap;gap:6px}
.tag-rank .chip b{margin-left:4px;color:var(--ac)}

/* ===== Gallery ===== */
.gal-item{position:relative;cursor:pointer;border-radius:6px;overflow:hidden;background:var(--bg2);border:1px solid var(--b1)}
.gal-item img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.gal-name{position:absolute;bottom:0;left:0;right:0;padding:4px 6px;background:rgba(0,0,0,.6);font-size:10px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gal-group{margin-bottom:16px}
.gal-group-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text);padding:6px 2px;margin-bottom:6px;border-bottom:1px solid var(--b1);cursor:pointer}
.gal-group-head span{font-size:10px;font-weight:500;color:var(--t2);background:var(--card);border:1px solid var(--b1);border-radius:10px;padding:1px 8px}
.gal-group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:3px}

/* ===== Checklist ===== */
.cl-sec{background:var(--card);border:1px solid var(--b1);border-radius:8px;padding:10px 12px;margin-bottom:8px}
.cl-sec-head{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.cl-sec-name{font-weight:600;font-size:13px;color:var(--text);flex:1}
.cl-sec-prog{font-size:11px;color:var(--ac)}
.cl-items{display:flex;flex-direction:column;gap:3px;margin-bottom:6px}
.cl-item{display:flex;align-items:center;gap:7px;padding:3px 0}
.cl-item.done .cl-it-text{text-decoration:line-through;color:var(--t3)}
.cl-it-text{flex:1;font-size:13px;color:var(--t2)}
.cl-add-row{display:flex;gap:5px;margin-top:4px}

/* ===== Collections ===== */
.col-sr-item{padding:7px 10px;cursor:pointer;border-bottom:1px solid var(--b1)}
.col-sr-item:hover{background:var(--bg2)}

/* ===== Events / Calendar ===== */
.ev-item{background:var(--card);border:1px solid var(--b1);border-radius:8px;padding:10px 12px;margin-bottom:6px}
.ev-title{font-weight:600;font-size:13px;color:var(--text);margin-bottom:3px}
.ev-meta{font-size:11px;color:var(--t3);margin-bottom:6px}
.ev-acts{display:flex;gap:5px}

/* ===== Ideas ===== */
.idea-card{background:var(--card);border:1px solid var(--b1);border-radius:8px;padding:10px 12px;margin-bottom:6px;cursor:grab}
.idea-top{display:flex;align-items:center;gap:6px}
.idea-title{flex:1;font-size:13px;color:var(--text)}
.idea-cat{font-size:11px;margin-top:3px}

/* ===== Backup ===== */
.bk-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--b1);font-size:12px;color:var(--t2)}

/* ===== Spot rows ===== */
.spot-row{display:flex;gap:4px;margin-bottom:4px}

/* ===== TOP PAGE (Dashboard) ===== */
.top-card{background:var(--card);border:1px solid var(--b1);border-radius:8px;padding:10px 8px;text-align:center;cursor:pointer;transition:all .12s}
.top-card:hover{border-color:var(--ac);background:var(--bg2)}
.top-card-label{font-size:11px;color:var(--t3);margin-bottom:4px;letter-spacing:.05em}
.top-card-value{font-size:32px;font-weight:700;color:var(--ac);margin-bottom:2px}
.top-card-sub{font-size:10px;color:var(--t2)}
.top-sec{background:var(--card);border:1px solid var(--b1);border-radius:8px;padding:10px}
.top-sec-title{font-size:13px;font-weight:600;color:var(--ac);margin-bottom:6px;letter-spacing:.05em}
.top-list-row{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:5px 6px;background:var(--card2);border-radius:5px;cursor:pointer;font-size:12px;color:var(--text);transition:background .12s}
.top-list-row:hover{background:var(--bg2)}
.top-list-sub{font-size:9px;color:var(--t3);white-space:nowrap;flex-shrink:0}
.top-empty{padding:5px 6px;background:var(--card2);border-radius:5px;color:var(--t3);font-size:12px}
/* ダッシュボード・地図用（ページ先頭にあり、上に固定要素が無いページ）。
   スポットページのゲージは .places-head の内側にあり、ヘッダーごと固定されるため対象外 */
.page:not(#page-places) > .gapi-monitor{position:sticky;top:0;z-index:5}

@media(prefers-reduced-motion:reduce){
  .page.active,.page.leaving,.mo.show,.mo.hiding,.mo .md{animation:none!important}
}

/* ===== CARD COMPONENT (minimal-clean) ===== */
.card{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:1.5rem;box-shadow:var(--shadow-sm);transition:all var(--duration-200) ease-out}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card-title{font-size:1.125rem;font-weight:700;margin-bottom:0.5rem;color:var(--text)}
.card-text{font-size:0.95rem;color:var(--t2);line-height:1.6}

/* ===== INPUT FIELD (minimal-clean) ===== */
.input-field{width:100%;padding:0.75rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--bg2);color:var(--text);font-size:0.95rem;font-family:inherit;transition:all var(--duration-200) ease-out}
.input-field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(201,169,97,0.1);transform:translateY(-1px)}
@media(prefers-color-scheme:dark){.input-field:focus{box-shadow:0 0 0 2px rgba(212,175,55,0.2)}}

.input-label{font-weight:600;font-size:0.9rem;color:var(--text)}
.input-group{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}

/* ===== TAG COMPONENT (minimal-clean) ===== */
.tag{display:inline-block;padding:0.4rem 0.8rem;border-radius:6px;font-size:0.8rem;font-weight:600;background:var(--bg2);color:var(--text);border:1px solid var(--border);letter-spacing:0.03em}
.tag-accent{background:rgba(201,169,97,0.1);color:var(--accent);border-color:var(--accent)}
@media(prefers-color-scheme:dark){.tag-accent{background:rgba(212,175,55,0.15)}}

/* ===== DARK MODE ===== */
@media(prefers-color-scheme:dark){
  :root{
    --bg:#1a1a1a;--bg2:#262626;--bg3:#333333;
    --text:#ffffff;--t2:#b0b0b0;--t3:#808080;
    --border:#404040;
    --accent:#d4af37;--accent-light:#e6c200;
    --shadow-sm:0 1px 2px rgba(0,0,0,0.3);
    --shadow-md:0 2px 8px rgba(0,0,0,0.5);
    --shadow-lg:0 4px 16px rgba(0,0,0,0.6);

    --sb-bg:#1a1a1a;--tog-bg:#262626;--scrollbar-track:#1a1a1a;
    --ac:#d4af37;--ac2:#e6c200;--adim:rgba(212,175,55,0.12);--adim2:rgba(212,175,55,0.22);
    --b1:#404040;--b2:#333333;--card:#262626;--card2:#1a1a1a;
  }

  .mo{background:rgba(0,0,0,0.6)}
  .btn-primary{color:#1a1a1a}
  .input-field:focus{box-shadow:0 0 0 2px rgba(212,175,55,0.2)}
  .tag-accent{background:rgba(212,175,55,0.15)}
}

/* ===== CALENDAR ===== */
.cal-legend{display:flex;gap:10px;padding:4px 12px;background:var(--bg);font-size:11px;align-items:center;border-bottom:1px solid var(--b1)}
.cal-legend span{display:flex;align-items:center;gap:3px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);flex:1;overflow:auto}
.cal-dow{background:var(--bg2);border-bottom:1px solid var(--b1);font-weight:600;font-size:11px;position:sticky;top:0;z-index:10}
.cal-dow div{padding:4px;text-align:center;color:var(--t2)}
.cal-dow div:first-child{color:var(--red)}
.cal-dow div:last-child{color:var(--blue)}
.cal-body{background:var(--bg)}
.cal-cell{border:1px solid var(--b1);padding:4px;min-height:100px;cursor:pointer;background:var(--bg2);position:relative;overflow:hidden}
.cal-cell.other{opacity:.35}
.cal-cell.today{background:var(--adim);border-color:var(--ac)}
.cal-cell:hover{background:var(--bg3)}
.cal-daynum{display:block;font-weight:600;font-size:12px;color:var(--text);margin-bottom:2px}
.cal-cell.other .cal-daynum{color:var(--t3)}
.cal-cell:first-child .cal-daynum{color:var(--red)}
.cal-cell:nth-child(7n) .cal-daynum{color:var(--blue)}
.cal-cell.today .cal-daynum{color:var(--ac)}
.cal-events{display:flex;flex-direction:column;gap:2px;font-size:9px}
.cal-event{border-left:3px solid;padding:2px 4px;border-radius:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;line-height:1.2}
.cal-event.ev{border-color:var(--red);background:rgba(220,38,38,.12)}
.cal-event.sh{border-color:var(--green);background:rgba(34,197,94,.12)}
.cal-event.pln{border-color:var(--yellow);background:rgba(217,119,6,.12)}
.cal-event-more{padding:2px 4px;color:var(--ac);font-weight:600;font-size:8px}
.cal-upcoming{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px 16px;border-top:1px solid var(--b1);background:var(--bg)}
.cal-upcoming-col{background:var(--card);border:1px solid var(--b1);border-radius:var(--r-md);padding:8px 10px;min-width:0}
.cal-upcoming-hd{font-size:12px;font-weight:700;color:var(--text);border-bottom:1px solid var(--b1);padding-bottom:6px;margin-bottom:6px}
.cal-upcoming-list{display:flex;flex-direction:column;gap:3px;max-height:180px;overflow-y:auto}
.cal-upcoming-item{display:flex;align-items:center;gap:6px;font-size:11px;padding:3px 5px;border-radius:4px;cursor:pointer;border-left:3px solid;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .1s}
.cal-upcoming-item:hover{background:var(--bg2)}
.cal-upcoming-item.ev{border-color:var(--red);background:rgba(220,38,38,.08)}
.cal-upcoming-item.sh{border-color:var(--green);background:rgba(34,197,94,.08)}
.cal-upcoming-item.pln{border-color:var(--yellow);background:rgba(217,119,6,.08)}
.cal-upcoming-date{flex-shrink:0;font-weight:600;color:var(--t2)}
.cal-upcoming-empty{font-size:11px;color:var(--t3);padding:6px 2px}
@media(max-width:760px){
  .cal-cell{min-height:64px;font-size:10px}
  .cal-events{max-height:3em}
  .cal-event{font-size:8px}
}
