/* HAVEN_FOLIO_MEMORY_MOBILE_R2 — formal Folio Mobile Memory renderer */
:root{
  --hm-accent:#6e4f9a;--hm-accent-soft:#eee9f5;--hm-rose:#c77ea5;--hm-gold:#b58b48;
  --hm-bg:#f7f6f9;--hm-paper:#fff;--hm-ink:#211d29;--hm-ink2:#5f5868;--hm-ink3:#8d8596;
  --hm-line:rgba(74,61,87,.12);--hm-line2:rgba(74,61,87,.20);--hm-shadow:0 10px 32px rgba(49,40,60,.08);
  --hm-head:108px;
}
[data-theme="dark"]{
  --hm-bg:#1c1a22;--hm-paper:#25222c;--hm-ink:#f1edf6;--hm-ink2:#c1b8cb;--hm-ink3:#8f8799;
  --hm-line:rgba(236,229,244,.10);--hm-line2:rgba(236,229,244,.17);--hm-accent-soft:rgba(150,116,197,.14);--hm-shadow:0 12px 34px rgba(0,0,0,.22)
}
html.hm-mobile-html,html.hm-mobile-html body{height:100%;overflow:hidden;background:var(--hm-bg)}
body.hm-mobile-body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}
.hm-root{height:100%;min-height:100%;background:var(--hm-bg);color:var(--hm-ink);font-family:Inter,"Noto Sans SC","PingFang SC",system-ui,sans-serif;overflow:hidden}
.hm-root *{box-sizing:border-box}
.hm-head{height:calc(var(--hm-head) + env(safe-area-inset-top));padding:calc(10px + env(safe-area-inset-top)) 16px 9px;background:rgba(247,246,249,.92);backdrop-filter:blur(18px);border-bottom:1px solid var(--hm-line);position:relative;z-index:80}
[data-theme="dark"] .hm-head{background:rgba(28,26,34,.92)}
.hm-title-row{height:42px;display:flex;align-items:center;justify-content:space-between}
.hm-title{font-family:Georgia,"Noto Serif SC",serif;font-size:28px;font-style:italic;letter-spacing:.01em;font-weight:500}
.hm-count{font-size:11px;color:var(--hm-ink3);font-variant-numeric:tabular-nums}
.hm-tabs{height:38px;padding:3px;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:rgba(91,78,106,.065);border:1px solid var(--hm-line);border-radius:12px}
.hm-tab{appearance:none;border:0;background:transparent;border-radius:9px;color:var(--hm-ink2);font:600 13px/1 system-ui,sans-serif}
.hm-tab.on{background:var(--hm-paper);color:var(--hm-accent);box-shadow:0 2px 8px rgba(53,43,64,.08)}
[data-theme="dark"] .hm-tab.on{background:rgba(255,255,255,.065);color:#dacbed}
.hm-stage{height:calc(100% - var(--hm-head) - env(safe-area-inset-top));position:relative;overflow:hidden}
.hm-view{position:absolute;inset:0;display:none;overflow:hidden}
.hm-view.on{display:block}
.hm-scroll{height:100%;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:14px 14px calc(28px + env(safe-area-inset-bottom));scrollbar-width:none}
.hm-scroll::-webkit-scrollbar{display:none}
.hm-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.hm-search{flex:1;height:42px;display:flex;align-items:center;gap:8px;padding:0 12px;border-radius:12px;background:var(--hm-paper);border:1px solid var(--hm-line);box-shadow:0 3px 14px rgba(50,42,60,.035)}
.hm-search span{color:var(--hm-ink3);font-size:17px}
.hm-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--hm-ink);font:400 14px system-ui,sans-serif}
.hm-icon-btn,.hm-add,.hm-small-btn{appearance:none;border:1px solid var(--hm-line);background:var(--hm-paper);color:var(--hm-ink2);height:42px;border-radius:12px;padding:0 12px;font:600 13px system-ui,sans-serif;display:flex;align-items:center;justify-content:center;gap:5px}
.hm-icon-btn{width:44px;padding:0;position:relative;font-size:17px}
.hm-filter-dot{position:absolute;right:5px;top:5px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--hm-accent);color:#fff;font:700 9px/15px system-ui;text-align:center}
.hm-quick{display:flex;gap:7px;overflow-x:auto;margin:0 -14px 14px;padding:0 14px;scrollbar-width:none}
.hm-quick::-webkit-scrollbar{display:none}
.hm-chip{white-space:nowrap;appearance:none;border:1px solid var(--hm-line);background:var(--hm-paper);color:var(--hm-ink2);border-radius:999px;padding:8px 11px;font:600 11px/1 system-ui}
.hm-chip.on{border-color:rgba(110,79,154,.34);background:var(--hm-accent-soft);color:var(--hm-accent)}
.hm-section-head{display:flex;align-items:end;justify-content:space-between;margin:18px 2px 9px}
.hm-section-date{font-family:Georgia,"Noto Serif SC",serif;font-style:italic;font-size:21px;color:var(--hm-ink)}
.hm-section-date small{font-family:system-ui,sans-serif;font-style:normal;font-size:10px;color:var(--hm-ink3);margin-left:7px}
.hm-section-count{font-size:10px;color:var(--hm-ink3)}
.hm-timeline{position:relative;margin-left:4px;padding-left:18px}
.hm-timeline:before{content:"";position:absolute;left:4px;top:4px;bottom:4px;width:1px;background:linear-gradient(var(--hm-accent),rgba(110,79,154,.08))}
.hm-memory-row{position:relative;background:var(--hm-paper);border:1px solid var(--hm-line);border-radius:14px;padding:13px 13px 12px;margin-bottom:9px;box-shadow:0 3px 14px rgba(48,40,58,.035)}
.hm-memory-row:before{content:"";position:absolute;left:-18px;top:18px;width:9px;height:9px;border-radius:50%;background:var(--hm-accent);border:2px solid var(--hm-bg);box-shadow:0 0 0 2px rgba(110,79,154,.14)}
.hm-memory-top{display:flex;align-items:baseline;gap:8px;margin-bottom:5px}
.hm-time{font:600 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--hm-ink3)}
.hm-memory-title{font:650 15px/1.35 system-ui,sans-serif;color:var(--hm-ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.hm-memory-text{font:400 12px/1.6 system-ui,sans-serif;color:var(--hm-ink2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hm-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:9px}
.hm-badge{font:600 9px/1 system-ui,sans-serif;padding:4px 6px;border-radius:999px;background:rgba(91,78,106,.07);color:var(--hm-ink3);border:1px solid var(--hm-line)}
.hm-badge.level{background:var(--hm-accent-soft);color:var(--hm-accent)}
.hm-badge.feel{background:rgba(199,126,165,.11);color:var(--hm-rose)}
.hm-badge.favorite{background:rgba(181,139,72,.10);color:var(--hm-gold)}
.hm-badge.imp{margin-left:auto;background:transparent;border:0;padding-right:0;font-variant-numeric:tabular-nums}
.hm-fab{position:absolute;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:36;width:52px;height:52px;border-radius:50%;border:0;background:#201d26;color:#fff;box-shadow:0 10px 28px rgba(28,24,34,.25);font-size:24px;line-height:1}
[data-theme="dark"] .hm-fab{background:#ddd1ed;color:#241f2c}
.hm-viewbar{display:flex;align-items:center;gap:7px;margin:2px 0 12px}
.hm-viewbar .hm-small-btn{height:34px;border-radius:10px;padding:0 10px;font-size:11px}
.hm-viewbar .hm-small-btn.on{background:#211e27;color:#fff;border-color:#211e27}
[data-theme="dark"] .hm-viewbar .hm-small-btn.on{background:#ddd1ed;color:#241f2c;border-color:#ddd1ed}
.hm-viewbar select{margin-left:auto;height:34px;border-radius:10px;border:1px solid var(--hm-line);background:var(--hm-paper);color:var(--hm-ink2);padding:0 9px;font:600 11px system-ui}
.hm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.hm-card{min-width:0;min-height:138px;background:var(--hm-paper);border:1px solid var(--hm-line);border-radius:14px;padding:12px;display:flex;flex-direction:column;box-shadow:0 3px 14px rgba(48,40,58,.035)}
.hm-card-title{font:650 14px/1.35 system-ui;color:var(--hm-ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hm-card-text{font:400 11px/1.5 system-ui;color:var(--hm-ink2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:7px 0 10px}
.hm-card-foot{margin-top:auto;display:flex;align-items:center;gap:5px;font-size:9px;color:var(--hm-ink3)}
.hm-card-foot .imp{margin-left:auto}
.hm-list .hm-memory-row{margin-left:0}
.hm-empty,.hm-loading,.hm-error{margin:42px 14px;text-align:center;color:var(--hm-ink3);font:400 13px/1.7 system-ui}
.hm-error{color:#a25766}
.hm-galaxy{height:100%;position:relative;background:#0e0d18;color:#ece9f4;overflow:hidden}
.hm-galaxy .cs-canvas{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;touch-action:none}
.hm-galaxy .cs-canvas svg{width:100%!important;height:100%!important;display:block}
.hm-galaxy .cs-hover-card{display:none!important}
.hm-galaxy-top{position:absolute;left:12px;right:12px;top:12px;z-index:26;display:flex;gap:8px;pointer-events:none}
.hm-galaxy-top>*{pointer-events:auto}
.hm-galaxy-search{height:40px;flex:1;border-radius:13px;background:rgba(25,23,38,.78);backdrop-filter:blur(16px);border:1px solid rgba(236,233,244,.10);display:flex;align-items:center;gap:8px;padding:0 12px}
.hm-galaxy-search input{width:100%;border:0;outline:0;background:transparent;color:#ece9f4;font:400 13px system-ui}
.hm-galaxy-btn{height:40px;min-width:42px;border-radius:13px;border:1px solid rgba(236,233,244,.11);background:rgba(25,23,38,.78);backdrop-filter:blur(16px);color:#c9c1d4;font:600 12px system-ui;padding:0 11px}
.hm-galaxy-bottom{position:absolute;left:50%;bottom:calc(15px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:26;display:flex;align-items:center;gap:5px;background:rgba(25,23,38,.84);border:1px solid rgba(236,233,244,.12);backdrop-filter:blur(16px);border-radius:999px;padding:5px}
.hm-galaxy-bottom button{width:37px;height:34px;border:0;border-radius:999px;background:transparent;color:#c9c1d4;font-size:16px}
.hm-galaxy-bottom .pct{width:48px;text-align:center;color:#8f899a;font:600 10px ui-monospace,monospace}
.hm-galaxy-bottom .reset{width:auto;padding:0 10px;font:600 10px system-ui}
.hm-galaxy-count{position:absolute;right:14px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:24;color:#777184;font:600 9px ui-monospace,monospace}
.hm-sheet-mask{position:fixed;inset:0;z-index:200;background:rgba(18,15,23,.34);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center}
.hm-sheet{width:100%;max-height:min(88dvh,760px);overflow:hidden;background:var(--hm-paper);color:var(--hm-ink);border-radius:22px 22px 0 0;border:1px solid var(--hm-line);box-shadow:0 -16px 50px rgba(20,16,26,.18);padding:8px 0 calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column}
.hm-sheet-grip{width:38px;height:4px;border-radius:3px;background:var(--hm-line2);margin:3px auto 7px}
.hm-sheet-head{height:48px;display:flex;align-items:center;padding:0 17px;border-bottom:1px solid var(--hm-line);gap:10px}
.hm-sheet-head h3{margin:0;font:650 16px system-ui;flex:1}
.hm-link-btn{appearance:none;border:0;background:transparent;color:var(--hm-accent);font:650 13px system-ui;padding:8px 4px}
.hm-danger{color:#aa4e61!important}
.hm-sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:15px 17px 8px}
.hm-detail-kicker{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px;color:var(--hm-ink3);font-size:10px}
.hm-detail-title{font-family:Georgia,"Noto Serif SC",serif;font-size:24px;line-height:1.35;font-weight:500;margin:0 0 12px}
.hm-detail-summary{font:500 13px/1.7 system-ui;color:var(--hm-ink2);padding:11px 12px;background:rgba(91,78,106,.055);border-radius:12px;margin-bottom:13px}
.hm-detail-body{font:400 14px/1.8 system-ui;white-space:pre-wrap;word-break:break-word;color:var(--hm-ink);min-height:80px}
.hm-detail-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}
.hm-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}
.hm-primary,.hm-secondary{height:44px;border-radius:12px;font:650 13px system-ui;border:1px solid var(--hm-line)}
.hm-primary{background:#211e27;color:#fff;border-color:#211e27}
.hm-secondary{background:var(--hm-paper);color:var(--hm-ink2)}
[data-theme="dark"] .hm-primary{background:#ddd1ed;color:#241f2c;border-color:#ddd1ed}
.hm-form{display:grid;gap:13px}
.hm-field{display:grid;gap:6px}
.hm-field label,.hm-filter-title{font:650 11px/1.2 system-ui;color:var(--hm-ink2);letter-spacing:.02em}
.hm-field input,.hm-field textarea,.hm-field select{width:100%;border:1px solid var(--hm-line2);background:var(--hm-bg);color:var(--hm-ink);border-radius:11px;padding:10px 11px;outline:0;font:400 14px/1.5 system-ui}
.hm-field textarea{min-height:110px;resize:vertical}
.hm-field-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.hm-range-row{display:flex;align-items:center;gap:10px}
.hm-range-row input{flex:1;padding:0}
.hm-range-value{width:28px;text-align:center;color:var(--hm-accent);font:700 13px ui-monospace,monospace}
.hm-choice-row{display:flex;gap:7px;flex-wrap:wrap}
.hm-choice{appearance:none;border:1px solid var(--hm-line);background:var(--hm-bg);color:var(--hm-ink2);height:34px;border-radius:999px;padding:0 11px;font:600 11px system-ui}
.hm-choice.on{background:var(--hm-accent-soft);border-color:rgba(110,79,154,.30);color:var(--hm-accent)}
.hm-switches{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hm-toggle{height:42px;border:1px solid var(--hm-line);border-radius:11px;background:var(--hm-bg);display:flex;align-items:center;justify-content:space-between;padding:0 11px;color:var(--hm-ink2);font:600 11px system-ui}
.hm-toggle b{width:23px;height:14px;border-radius:9px;background:var(--hm-line2);position:relative}
.hm-toggle b:after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:#fff;transition:.16s}
.hm-toggle.on b{background:var(--hm-accent)}.hm-toggle.on b:after{left:11px}
.hm-filter-section{padding:0 0 17px;margin-bottom:17px;border-bottom:1px solid var(--hm-line)}
.hm-filter-section:last-child{border-bottom:0;margin-bottom:0}
.hm-filter-title{margin-bottom:10px;text-transform:uppercase;color:var(--hm-ink3)}
.hm-filter-search{margin:9px 0}
.hm-tag-cloud{display:flex;flex-wrap:wrap;gap:7px;max-height:210px;overflow:auto}
.hm-toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:300;background:rgba(32,29,39,.94);color:#fff;border-radius:999px;padding:9px 14px;font:600 11px system-ui;box-shadow:0 8px 24px rgba(0,0,0,.2)}
@media(max-width:360px){.hm-grid{grid-template-columns:1fr}.hm-head{padding-left:12px;padding-right:12px}.hm-title{font-size:25px}}
@media(min-width:700px) and (max-width:900px){.hm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hm-scroll{padding-left:22px;padding-right:22px}.hm-head{padding-left:22px;padding-right:22px}}

/* HAVEN_FOLIO_MEMORY_POLISH_R3: mobile layout retained; wording/search/detail responsiveness aligned with desktop. */

/* HAVEN_FOLIO_DIARY_ROOT_R1 — tiny module switch, no height change to accepted Memory R4 */
.hm-title-tools{display:flex;align-items:center;gap:9px}
.hm-area-switch{appearance:none;border:1px solid var(--hm-line);background:rgba(255,255,255,.58);color:#675d70;border-radius:999px;padding:6px 9px;font:650 10px Inter,"Noto Sans SC",system-ui,sans-serif;letter-spacing:.02em}
[data-theme="dark"] .hm-area-switch{background:rgba(255,255,255,.05);color:#c9c0d1;border-color:rgba(255,255,255,.1)}

/* HAVEN_FOLIO_DIARY_ROOT_R1_2_NAV — root owns module navigation on mobile */
.hm-area-switch{display:none!important}

/* HAVEN_IMPORTANCE_RESTORE_R1 */
.hm-importance-row .hm-choice{min-width:34px;padding:0 8px}
.hm-filter-hint{margin-top:7px;color:var(--hm-ink3);font:500 10px/1.45 system-ui}
