/* G9 · «Моя карта» — плоская карта места, отметок и маршрута дня.
   Раскладка: карта на весь экран, справа панель (на телефоне — нижний лист), крупные кнопки «Где я» и «Отметка» поверх карты. */
.mm{--mm-bg:#0b111a;--mm-panel:#0f1822f2;--mm-fg:#e6edf1;--mm-dim:#93a3ae;--mm-line:#2a3a46;--mm-gold:#d9b75c;--mm-teal:#5fc4b0;
 --mm-sea:#0e2236;--mm-land:#3f5a47;--mm-border:#c9b37a;--mm-river:#4f8fbf;--mm-city:#f1e9d2;--mm-country:#e8d6a4;--mm-halo:#08111bcc;--mm-ink:#0b111a;
 --mm-me:#3b8cff;--mm-me-halo:#3b8cff40;--mm-font:'Segoe UI',system-ui,sans-serif;
 position:fixed;inset:0;z-index:150;background:var(--mm-bg);color:var(--mm-fg);font:13px/1.45 var(--mm-font);display:grid;grid-template-columns:1fr min(360px,38vw);grid-template-rows:auto 1fr}
.mm[hidden]{display:none}
.mm-head{grid-column:1/-1;display:flex;align-items:baseline;gap:12px;padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));border-bottom:1px solid var(--mm-line);background:var(--mm-panel)}
.mm-head strong{font-size:16px;letter-spacing:.06em;color:var(--mm-gold)}.mm-sub{color:var(--mm-dim);font-size:12px}
.mm-x{margin-left:auto;width:36px;height:36px;border-radius:10px;border:1px solid var(--mm-line);background:transparent;color:var(--mm-fg);font-size:20px;cursor:pointer}
.mm-canvas{grid-column:1;grid-row:2;width:100%;height:100%;display:block;touch-action:none;cursor:grab}
.mm-canvas:active{cursor:grabbing}
.mm-fab{position:absolute;left:max(16px,env(safe-area-inset-left,0px));top:70px;display:flex;flex-direction:column;gap:8px;z-index:2}
.mm-big{font:600 15px var(--mm-font);padding:12px 18px;border-radius:12px;border:1px solid var(--mm-line);background:var(--mm-panel);color:var(--mm-fg);cursor:pointer;box-shadow:0 6px 24px #0008;text-align:left}
.mm-big.mm-gold,.mm-btn.mm-gold{background:var(--mm-gold);color:var(--mm-ink);border-color:var(--mm-gold)}
.mm-info{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(14px + env(safe-area-inset-bottom,0px));padding:6px 14px;border-radius:16px;background:var(--mm-panel);color:var(--mm-dim);font:12px 'JetBrains Mono',ui-monospace,monospace;pointer-events:none;max-width:60%;text-align:center}
.mm-attrib{position:absolute;bottom:calc(4px + env(safe-area-inset-bottom,0px));left:max(8px,env(safe-area-inset-left,0px));font-size:10px;color:var(--mm-dim);pointer-events:none}
.mm-side{grid-column:2;grid-row:2;overflow:auto;padding:12px max(16px,env(safe-area-inset-right,0px)) 16px 14px;background:var(--mm-panel);border-left:1px solid var(--mm-line);display:flex;flex-direction:column;gap:10px;min-width:0}
.mm-card{border:1px solid var(--mm-line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.mm-card h3{margin:0;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mm-gold);font-weight:600}
.mm-card p{margin:0}.mm-coord{font:12px 'JetBrains Mono',ui-monospace,monospace;color:var(--mm-fg)}
.mm-msg{margin:0;padding:8px 10px;border-radius:10px;border:1px solid var(--mm-gold);color:var(--mm-fg);background:#d9b75c14}
.mm-hint{color:var(--mm-dim);font-size:12px}
.mm-row{display:flex;flex-wrap:wrap;gap:6px}
.mm-btn{font:inherit;padding:8px 12px;border-radius:9px;border:1px solid var(--mm-line);background:#16222e;color:var(--mm-fg);cursor:pointer;text-decoration:none;text-align:left}
.mm-res{display:flex;flex-direction:column;gap:4px}
.mm input,.mm select,.mm textarea{font:inherit;width:100%;box-sizing:border-box;padding:8px;border-radius:8px;border:1px solid var(--mm-line);background:#121c27;color:var(--mm-fg)}
.mm label{color:var(--mm-dim);font-size:11px}
.mm-item{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:center;padding:4px 0;border-bottom:1px solid #ffffff0d}
.mm-item input{width:18px;height:18px;margin:0}.mm-item small{grid-column:2;color:var(--mm-dim)}
.mm-go{background:none;border:0;color:var(--mm-fg);font:inherit;text-align:left;padding:0;cursor:pointer}
.mm-item.done .mm-go{text-decoration:line-through;opacity:.65}
.mm :focus-visible{outline:2px solid var(--mm-gold);outline-offset:2px}
@media(max-width:720px){.mm{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.mm-side{grid-column:1;grid-row:3;max-height:44vh;border-left:0;border-top:1px solid var(--mm-line);padding-left:max(16px,env(safe-area-inset-left,0px))}.mm-fab{top:64px}.mm-big{font-size:14px;padding:10px 14px}.mm-info{max-width:80%}}
.mm-dot{width:18px;text-align:center;color:var(--mm-dim)}
@media(max-width:720px){.mm-info{display:none}}
.mm .mm-check{display:flex;gap:8px;align-items:center;color:var(--mm-fg);font-size:12px}.mm .mm-check input{width:16px;height:16px;margin:0}
.mm-sel{border-color:var(--mm-gold)}
.mm .mm-small{padding:3px 8px;font-size:11px;grid-column:2;justify-self:start}
.mm input[type=color]{width:34px;height:26px;padding:0;border-radius:6px}
/* 20 · резервная копия */
.bk{position:fixed;z-index:160;top:80px;right:16px;width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 100px);overflow:auto;background:#0b111af2;border:1px solid #c9a84c55;border-radius:14px;color:#e3e9ed;font:13px/1.45 'Segoe UI',system-ui,sans-serif;box-shadow:0 18px 60px #000a}
.bk[hidden]{display:none}
.bk-head{position:sticky;top:0;display:flex;align-items:center;padding:12px 16px;background:#0b111a;border-bottom:1px solid #c9a84c2a}
.bk-head strong{color:#e8d6a4;letter-spacing:.06em}.bk-x{margin-left:auto;width:30px;height:30px;border-radius:8px;border:1px solid #34444f;background:none;color:#e3e9ed;cursor:pointer}
.bk-body{padding:4px 16px 14px;display:flex;flex-direction:column;gap:8px}
.bk h3{margin:10px 0 0;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#c9a84c}
.bk-list{list-style:none;margin:0;padding:0}.bk-list li{display:flex;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px solid #ffffff0d;font-size:12px}.bk-list b{font-weight:500}.bk-list span{color:#93a3ae;white-space:nowrap}
.bk-hint{color:#93a3ae;font-size:12px;margin:0}.bk-note{margin:6px 0 0;padding:8px 10px;border:1px solid #c9a84c;border-radius:9px;background:#c9a84c14}
.bk-row{display:flex;flex-wrap:wrap;gap:6px}.bk-btn{font:inherit;padding:8px 12px;border-radius:9px;border:1px solid #34444f;background:#16222e;color:#e3e9ed;cursor:pointer}.bk-gold{background:#d9b75c;color:#0b111a;border-color:#d9b75c}
.bk-check{display:flex;gap:8px;align-items:flex-start;font-size:12px}.bk-text{width:100%;box-sizing:border-box;background:#121c27;color:#e3e9ed;border:1px solid #2f3f4b;border-radius:8px;padding:8px;font:11px ui-monospace,monospace}
.bk-confirm{border:1px solid #c9a84c66;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.bk :focus-visible{outline:2px solid #ffd77a;outline-offset:2px}
/* Ф1 · Формула дня */
.df{position:fixed;z-index:155;top:80px;right:16px;bottom:16px;width:min(520px,calc(100vw - 32px));display:flex;flex-direction:column;background:#0b111af5;border:1px solid #c9a84c55;border-radius:14px;color:#e3e9ed;font:13px/1.5 'Segoe UI',system-ui,sans-serif;box-shadow:0 18px 60px #000a}
.df[hidden]{display:none}
.df-head{display:flex;align-items:baseline;gap:10px;padding:12px 16px;border-bottom:1px solid #c9a84c2a}
.df-head strong{color:#e8d6a4;letter-spacing:.06em;font-size:15px}.df-date{color:#93a3ae;font-size:12px}
.df-x{margin-left:auto;width:30px;height:30px;border-radius:8px;border:1px solid #34444f;background:none;color:#e3e9ed;cursor:pointer}
.df-body{overflow:auto;padding:10px 16px 16px;display:flex;flex-direction:column;gap:10px;min-height:0}
.df-tabs{display:flex;flex-wrap:wrap;gap:4px;position:sticky;top:-10px;background:#0b111a;padding-block:6px;z-index:1}
.df-tabs button{font:inherit;font-size:12px;padding:6px 10px;border-radius:8px;border:1px solid #2f3f4b;background:transparent;color:#c9d5dc;cursor:pointer}.df-tabs button.on{background:#d9b75c;color:#0b111a;border-color:#d9b75c}
.df-note{margin:0;padding:8px 10px;border:1px solid #d9b75c;border-radius:9px;background:#d9b75c14}
.df-prev{margin:0;padding:8px 10px;border-left:3px solid #7fe0d0;background:#7fe0d00d;border-radius:0 8px 8px 0}
.df-key{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:12px;border:1px solid #c9a84c55;border-radius:12px;background:#c9a84c0a}
.df-key h3{margin:2px 0 4px;font-size:18px;font-weight:500;color:#f3e6bf}.df-key small{color:#c9a84c;letter-spacing:.08em;text-transform:uppercase;font-size:10px}.df-key p{margin:3px 0}
.df-hex{display:flex;flex-direction:column;gap:5px;width:58px;padding-top:6px}.df-hex span{height:7px;border-radius:2px}.df-hex .yang{background:#e8d6a4}.df-hex .yin{background:linear-gradient(90deg,#e8d6a4 0 42%,transparent 42% 58%,#e8d6a4 58%)}
.df-card{border:1px solid #2a3a46;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:5px}.df-card p{margin:0}.df-card summary{cursor:pointer;color:#e8d6a4}
.df-rows{display:grid;grid-template-columns:minmax(0,150px) 1fr;gap:4px 12px;margin:0}.df-rows dt{color:#93a3ae}.df-rows dd{margin:0;color:#e3e9ed}
.df-dim{color:#93a3ae;font-size:12px}.df-src{color:#8796a3;font-size:11px;border-left:2px solid #c9a84c55;padding-left:8px;margin:0}
.df-sub{color:#c9a84c;font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-top:4px}
.df-field{display:flex;flex-direction:column;gap:3px}.df-field span{color:#93a3ae;font-size:11px}
.df input,.df select,.df textarea{font:inherit;box-sizing:border-box;width:100%;padding:7px 8px;border-radius:8px;border:1px solid #2f3f4b;background:#121c27;color:#e3e9ed}
.df-chips{display:flex;flex-wrap:wrap;gap:5px}.df-chip{font:inherit;font-size:12px;padding:5px 10px;border-radius:999px;border:1px solid #2f3f4b;background:#121c27;color:#c9d5dc;cursor:pointer}.df-chip.on{background:#d9b75c22;border-color:#d9b75c;color:#f3e6bf}
.df-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.df-row select{width:auto}
.df-btn{font:inherit;padding:8px 12px;border-radius:9px;border:1px solid #34444f;background:#16222e;color:#e3e9ed;cursor:pointer;justify-self:start}.df-gold{background:#d9b75c;color:#0b111a;border-color:#d9b75c}.df-small{padding:3px 8px;font-size:11px}
.df-check{display:flex;gap:8px;align-items:center}.df-check input{width:16px;height:16px;margin:0}
.df-prompt,.df-pre{font:12px/1.45 ui-monospace,'JetBrains Mono',monospace;white-space:pre-wrap}.df-pre{margin:6px 0;color:#c9d5dc;max-height:300px;overflow:auto}
.df-light{list-style:none;margin:0;padding:0}.df-light li{padding:2px 0}.df-light b{color:#d9b75c}
.df :focus-visible{outline:2px solid #ffd77a;outline-offset:2px}
@media(max-width:600px){.df{top:auto;left:0;right:0;bottom:0;width:auto;max-height:82vh;border-radius:14px 14px 0 0}.df-rows{grid-template-columns:1fr}}
/* Ф1.1 · Цикл дня */
.df-tabs button{white-space:nowrap}
.df-hourwrap{display:flex;flex-direction:column;gap:4px}
.df-hours{position:relative;height:30px;border-radius:8px;background:#121c27;overflow:hidden;border:1px solid #2a3a46}
.df-ph{position:absolute;top:0;bottom:0;opacity:.45}
.df-band{position:absolute;top:0;bottom:0}.df-band.rahu{border:2px solid #ff6b6b;background:#ff6b6b22}.df-band.abhijit{background:#ffd77a;opacity:.85}
.df-pin{position:absolute;top:4px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px #0b111a}.df-pin.done{background:#7fe0a0}
.df-now{position:absolute;top:0;bottom:0;width:2px;background:#7fe0d0}
.df-ticks{position:relative;height:14px;font-size:10px;color:#8796a3}.df-ticks span{position:absolute;transform:translateX(-50%)}.df-ticks span:first-child{transform:none}.df-ticks span:last-child{transform:translateX(-100%)}
.df-grid{display:grid;grid-template-columns:90px 80px minmax(0,1fr) 130px;gap:6px}
.df-plan{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.df-plan li{display:grid;grid-template-columns:auto 46px minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:6px 8px;border:1px solid #2a3a46;border-radius:9px}
.df-plan li.done .df-pl-t{text-decoration:line-through;color:#8796a3}.df-plan input{width:16px;height:16px;margin:0}
.df-warn{color:#ff8a8a;font-size:12px}
.df-adv{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px}
.df-gen{margin:0;display:flex;justify-content:center}.df-gen img{width:min(100%,420px);aspect-ratio:1;border-radius:12px;border:1px solid #c9a84c44}
.df-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.df-thumb{flex:none;display:flex;flex-direction:column;gap:3px;align-items:center;padding:4px;border-radius:9px;border:1px solid #2f3f4b;background:none;color:#c9d5dc;font:inherit;font-size:11px;cursor:pointer}.df-thumb.on{border-color:#d9b75c}.df-thumb img{width:72px;height:72px;border-radius:6px}
@media(max-width:600px){.df-grid{grid-template-columns:1fr 1fr}.df-plan li{grid-template-columns:auto 42px minmax(0,1fr) auto}.df-plan li small{display:none}}
.df-comp{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.df-comp li{display:grid;grid-template-columns:16px minmax(0,170px) minmax(0,1fr);gap:8px;font-size:12px}
.df-comp li.out{color:#8796a3}.df-comp li.in .df-comp-m{color:#7fe0a0}.df-comp li b{font-weight:500}
@media(max-width:600px){.df-comp li{grid-template-columns:16px 1fr}.df-comp li span:last-child{grid-column:2}}
.df-demo{font-size:11px;padding:2px 8px;border-radius:999px;border:1px dashed #c9a84c;color:#e8d6a4}
.df-paint{width:100%;height:auto;aspect-ratio:4/5;border-radius:12px;border:1px solid #c9a84c44;background:#07090f}
.df-comp li.err{color:#ffb08a}.df-comp li.err .df-comp-m{color:#ff8a6a}
.df-agent{border-color:#7fe0d055}.df-agent-list li{cursor:help}
.df-tigel{border-color:#e0643a55}
/* Календарь · Луна · 108 */
.df-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.df-cal-h{font-size:10px;color:#8796a3;text-align:center;letter-spacing:.08em}
.df-cal-d{font:inherit;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:4px 5px;min-height:58px;border-radius:8px;border:1px solid #243140;background:#0f1722;color:#d6dde3;cursor:pointer;text-align:left;min-width:0;overflow:hidden}
.df-cal-d b{font-size:13px;font-weight:600}.df-cal-moon,.df-cal-key,.df-cal-tags{font-size:10px;line-height:1.25;white-space:nowrap;color:#a9b6bf}
.df-cal-key.new{color:#ffd77a;text-decoration:underline}.df-cal-tags{color:#ffd77a}
.df-cal-d.today{border-color:#7fe0d0}.df-cal-d.sel{outline:2px solid #ffd77a;outline-offset:-2px}.df-cal-d.eka{background:#2a2410}.df-cal-d.full{background:#1d2230}.df-cal-d.new{background:#0a0d14}
.df-eka{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:2px;font-size:12px}.df-eka li.past{color:#7d8a94}.df-eka li.today{color:#ffd77a}
.df-keys .df-chip{font-size:11px;padding:3px 7px;cursor:default}
.df-108{display:grid;grid-template-columns:34px repeat(9,minmax(0,1fr));gap:2px;font-size:10px}
.df-108-h,.df-108-m{color:#8796a3;text-align:center}.df-108-c{height:16px;border:1px solid #243140;border-radius:3px}
.df-office summary{cursor:pointer}
@media(max-width:600px){.df-cal-d{min-height:52px;padding:3px}.df-cal-moon,.df-cal-key{font-size:9px}}
.df-inline{flex-direction:row;align-items:center;gap:6px}.df-inline select{width:auto}
.df-spirit{border-color:#b9a3e655}
