:root{--bg:#fcfcfa;--grid-minor:#648ca00d;--grid-major:#648ca01a;--accent:#c73e1d;--cat-concept:#c73e1d;--cat-howto:#2b4c7e;--cat-template:#b8860b;--cat-example:#3a6b4f;--cat-other:#5a5a5a;--card-bg:#fff;--card-border:#d8d5cc;--text:#2a2a26;--text-muted:#6b6a62;--font-body:"BIZ UDPGothic", "Hiragino Kaku Gothic ProN", sans-serif;--font-heading:"Shippori Mincho", "Hiragino Mincho ProN", serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:13px;line-height:1.9}h1,h2,h3{font-family:var(--font-heading);color:var(--text);font-weight:700}button{font-family:inherit}.btn{font-family:var(--font-body);border:1px solid var(--card-border);background:var(--card-bg);color:var(--text);cursor:pointer;border-radius:2px;padding:8px 14px;font-size:13px}.btn:hover{border-color:var(--accent)}.btn--active{background:var(--accent);border-color:var(--accent);color:#fff}.map-view{flex-direction:column;height:100vh;display:flex}.map-toolbar{border-bottom:1px solid var(--card-border);background:var(--card-bg);gap:8px;padding:10px 16px;display:flex}.map-body{flex:1;min-height:0;display:flex}.map-viewport{cursor:grab;background-color:var(--bg);flex:1;position:relative;overflow:hidden}.map-viewport:active{cursor:grabbing}.map-camera{background-image:linear-gradient(to right, var(--grid-major) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-major) 1px, transparent 1px), linear-gradient(to right, var(--grid-minor) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-minor) 1px, transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;position:absolute;top:0;left:0}.map-links{pointer-events:none;position:absolute;top:0;left:0}.map-link{fill:none;stroke:var(--accent);stroke-width:1.5px;opacity:.55}.doc-card{background:var(--card-bg);border:1px solid var(--card-border);cursor:grab;-webkit-user-select:none;user-select:none;border-left-width:4px;border-radius:2px;padding:10px 12px;position:absolute;box-shadow:3px 3px #5a5a5a14}.doc-card:active{cursor:grabbing}.doc-card--selected{outline:2px solid var(--accent)}.doc-card--connecting{outline:2px dashed var(--accent)}.doc-card__title{font-family:var(--font-heading);margin-bottom:4px;font-size:13px;font-weight:700}.doc-card__note{color:var(--text-muted);font-size:11px;line-height:1.5}.map-panel{border-left:1px solid var(--card-border);background:var(--card-bg);flex-shrink:0;width:440px;overflow-y:auto}.map-loading{color:var(--text-muted);padding:32px}.markdown-panel{padding:24px}.markdown-panel--empty{color:var(--text-muted)}.markdown-panel h1,.markdown-panel h2,.markdown-panel h3{line-height:1.5}.markdown-panel table{border-collapse:collapse;width:100%;margin:12px 0;font-size:12px}.markdown-panel th,.markdown-panel td{border:1px solid var(--card-border);text-align:left;padding:6px 8px}.markdown-panel code{background:#f4f3ec;border-radius:2px;padding:1px 4px;font-size:12px}.markdown-panel pre{background:#f4f3ec;border-radius:2px;padding:12px;overflow-x:auto}.markdown-panel pre code{background:0 0;padding:0}.mobile-list{padding:12px 16px 32px}.mobile-search{width:100%;font-size:15px;font-family:var(--font-body);border:1px solid var(--card-border);border-radius:2px;min-height:44px;margin-bottom:16px;padding:10px 12px}.mobile-section__heading{margin:20px 0 8px;font-size:14px}.mobile-card{text-align:left;background:var(--card-bg);border:1px solid var(--card-border);width:100%;font-family:var(--font-body);border-left-width:4px;border-radius:2px;min-height:44px;margin-bottom:8px;padding:12px;display:block}.mobile-card__title{font-family:var(--font-heading);margin-bottom:4px;font-size:15px;font-weight:700}.mobile-card__note{color:var(--text-muted);font-size:13px}.mobile-empty{color:var(--text-muted);padding:24px 0}.mobile-reader{padding:12px 16px 32px;font-size:15px}.mobile-back{color:var(--accent);cursor:pointer;background:0 0;border:none;min-height:44px;padding:10px 0;font-size:15px}.mobile-reader__title{margin:8px 0 16px;font-size:20px}.mobile-reader .markdown-panel{padding:0}.mobile-related{border-top:1px solid var(--card-border);margin-top:32px;padding-top:16px}.mobile-related__heading{margin:0 0 8px;font-size:14px}.mobile-related__list{margin:0;padding:0;list-style:none}.mobile-related__link{text-align:left;border:none;border-bottom:1px solid var(--card-border);width:100%;color:var(--accent);font-family:var(--font-body);cursor:pointer;background:0 0;min-height:44px;padding:12px 0;font-size:15px;display:block}
