*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:#F5EDDF;color:#24231C;--paper:#FFFCF4;--ink:#24231C;--muted:#777369;--line:#CCC8BD;--accent:#E66B2D}button,input,select,textarea{font:inherit;color:inherit}button,select{cursor:pointer}button{font-size:14px;border:1px solid var(--line);padding:12px 19px;border-radius:7px;background:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:hover{border-color:var(--accent)}a{color:inherit;text-decoration:none}header.toolbar{height:77px;padding:0 38px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}header.toolbar>div{display:flex;align-items:center;gap:25px}.brand{font-size:30px;font-weight:850;letter-spacing:-.05em}header.toolbar span{font-size:19px;border-left:1px solid var(--line);padding-left:25px}header nav{display:flex;gap:14px}.toolbar #svgButton{color:white;background:var(--accent);border-color:var(--accent)}main.tool-main{padding:26px 38px 18px}.heading h1{font-size:40px;line-height:1.2;letter-spacing:-.04em;margin:0 0 12px;font-weight:750}.heading p{font-size:19px;color:var(--muted);margin:0 0 22px;line-height:1.5}.calendar-top{display:flex;align-items:end;justify-content:space-between;gap:25px;margin:22px 0}.year-control{display:flex;align-items:center;gap:16px;font-size:16px;font-weight:650}.year-control select{font-size:18px;padding:9px 13px;border:1px solid var(--line);border-radius:6px;background:var(--paper);min-width:120px}.stats{display:flex;gap:28px;margin:0}.stats>div{display:flex;flex-direction:column-reverse;min-width:125px;border-left:1px solid var(--line);padding-left:30px}.stats>div:first-child{border:0}.stats dt{font-size:16px;color:var(--muted)}.stats dd{font-size:37px;color:var(--accent);margin:0 0 5px;font-weight:750;line-height:1.2}.calendar-panel{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:24px 23px 18px}.calendar-scroll{overflow:auto}.calendar-scroll svg{display:block;width:100%;min-width:850px;height:auto}.day-detail{border-top:1px solid var(--line);padding:20px 0 3px;margin-top:12px}.day-detail h2{font-size:23px;margin:0 0 10px;line-height:1.3}.day-detail p{font-size:17px;color:var(--muted);white-space:pre-wrap;margin:0;line-height:1.5}.explanation{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:34px 0 25px}.explanation>div{padding-left:30px;border-left:1px solid var(--line)}.explanation>div:first-child{border:0;padding-left:0}.explanation h3{font-size:18px;margin:0 0 9px}.explanation p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}.privacy{padding-top:17px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);display:flex;justify-content:space-between;gap:20px}.privacy #status{font-size:12px}.graph-workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:28px;margin-top:17px}.graph-area{min-width:0}.query-controls{display:flex;align-items:center;gap:12px;margin-bottom:16px}.query-controls input{width:min(34%,360px);min-width:130px;font-size:14px;padding:12px 16px;border:1px solid var(--line);border-radius:6px;background:transparent}.query-controls select{font-size:14px;padding:12px 14px;min-width:140px;background:transparent;border:1px solid var(--line);border-radius:6px}.zoom-controls{display:flex;gap:12px;margin-left:auto}.zoom-controls button{white-space:nowrap;min-width:85px}.graph-canvas{height:510px;background:var(--paper);border:1px solid var(--line);border-radius:9px;overflow:hidden;touch-action:none;cursor:grab}.graph-canvas svg{display:block;width:100%;height:100%}.graph-canvas [data-node]{cursor:pointer}.graph-canvas [data-node]:focus{outline:none}.graph-canvas [data-node]:focus rect,.graph-canvas [data-node]:focus circle{stroke:var(--accent);stroke-width:4}.inspector{border-left:1px solid var(--line);padding:22px 20px 10px;overflow-wrap:anywhere;min-width:0;background:var(--paper);border-radius:9px}.inspector h2{font-size:27px;margin:0 0 29px;line-height:1.3}.inspector h3{font-size:18px;margin:0 0 12px}.inspector section{padding-top:22px;margin-top:21px;border-top:1px solid var(--line)}.inspector section:first-of-type{border:0;padding:0;margin:0}.inspector p{font-size:15px;line-height:1.65;white-space:pre-wrap;margin:0 0 8px}.inspector code,.inspector a{font:14px/1.6 ui-monospace,monospace;overflow-wrap:anywhere}.inspector a{color:#567F9D;text-decoration:underline}.inspector .evidence-label{font-size:13px;color:var(--muted);margin-top:10px}.graph-footer{display:flex;align-items:center;gap:25px;margin-top:20px;font-size:13px;color:var(--muted)}.graph-footer p{margin:0}.graph-footer>p:last-child{margin-left:auto}.neighbor-control{display:flex;align-items:center;gap:10px;padding-left:25px;border-left:1px solid var(--line);font-size:13px}.neighbor-control[hidden]{display:none}.neighbor-control input{appearance:none;width:20px;height:20px;border:1px solid var(--line);border-radius:4px;margin:0}.neighbor-control input:checked{background:var(--accent);box-shadow:inset 0 0 0 4px var(--paper)}body[data-mode=graph]{background:#191E20;color:#F5EDDF;--paper:#202729;--ink:#F5EDDF;--muted:#B4C1C3;--line:#506166;--accent:#E59463}body[data-mode=graph] header.toolbar{height:61px}body[data-mode=graph] .brand{font-size:23px;font-weight:650;letter-spacing:0}body[data-mode=graph] header.toolbar span{font-weight:650;font-size:20px;border-left:0;padding-left:0}body[data-mode=graph] header.toolbar>div{gap:10px}body[data-mode=graph] .brand:after{content:' /'}body[data-mode=graph] .toolbar #svgButton{background:transparent;color:var(--ink);border-color:var(--line)}body[data-mode=graph] .graph-canvas{height:510px}body[data-mode=graph] .inspector a{color:#92AFC4}dialog{width:min(780px,calc(100vw - 35px));background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:24px}dialog::backdrop{background:#0008}dialog h2{margin:0 0 12px;font-size:25px}dialog p{font-size:14px;line-height:1.6;color:var(--muted)}dialog label{font-size:13px;display:block;margin-bottom:8px}dialog textarea{display:block;width:100%;height:380px;resize:vertical;border:1px solid var(--line);border-radius:5px;background:transparent;padding:12px;font:13px/1.6 ui-monospace,monospace}dialog>div{display:flex;justify-content:end;gap:12px}dialog #applyEdit{background:var(--accent);color:white;border-color:var(--accent)}#editError{color:var(--accent);min-height:20px}@media(min-width:1450px){main.tool-main{padding-top:34px}.graph-canvas,body[data-mode=graph] .graph-canvas{height:630px}.graph-workspace{grid-template-columns:minmax(0,1fr) 335px;gap:30px}.inspector{padding:27px}.heading h1{font-size:44px}.query-controls input,.query-controls select,.query-controls button{font-size:16px}.inspector p{font-size:17px}.inspector h2{font-size:31px}body[data-mode=calendar] main.tool-main{padding:36px 48px 20px}body[data-mode=calendar] header.toolbar{padding:0 58px;border-bottom:0;height:76px}body[data-mode=calendar] header button{border:0;font-size:16px}body[data-mode=calendar] #svgButton{color:var(--ink);background:none}body[data-mode=calendar] .heading h1{font-size:54px;margin-bottom:15px}body[data-mode=calendar] .heading p{font-size:24px;margin-bottom:20px}body[data-mode=calendar] .calendar-top{margin:0 11px 24px}body[data-mode=calendar] .stats dd{font-size:44px}body[data-mode=calendar] .stats dt{font-size:20px}body[data-mode=calendar] .calendar-panel{padding:25px 24px}body[data-mode=calendar] .day-detail{margin-top:18px;padding-top:24px}body[data-mode=calendar] .explanation{margin:42px 10px 25px}body[data-mode=calendar] .explanation p{font-size:16px}body[data-mode=calendar] .explanation h3{font-size:21px}}@media(max-width:1100px){header.toolbar{padding:0 22px}main.tool-main{padding:24px 22px}.graph-workspace{grid-template-columns:1fr}.inspector{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:22px}.inspector h2{grid-column:1/-1;margin:0}.inspector section{padding-top:0;margin-top:0;border:0}.graph-canvas,body[data-mode=graph] .graph-canvas{height:490px}.stats{gap:16px}.stats>div{padding-left:18px;min-width:105px}}@media(max-width:650px){header.toolbar{height:auto;align-items:start;flex-direction:column;padding:20px;gap:15px}header.toolbar>div{gap:16px}header.toolbar span{font-size:16px;padding-left:16px}.brand{font-size:26px}header.toolbar nav{gap:8px;flex-wrap:wrap}header.toolbar button{font-size:12px;padding:9px 13px}.heading h1{font-size:30px;line-height:1.25}.heading p{font-size:15px}.calendar-top{flex-direction:column;align-items:start;gap:24px}.stats{width:100%;justify-content:space-between;gap:8px}.stats>div{padding-left:12px;min-width:0}.stats>div:first-child{padding-left:0}.stats dd{font-size:30px}.stats dt{font-size:12px}.calendar-panel{padding:16px 12px}.day-detail h2{font-size:19px}.day-detail p{font-size:14px}.explanation{grid-template-columns:1fr;gap:18px}.explanation>div{padding:0;border:0}.privacy{flex-direction:column;gap:8px}.query-controls{flex-wrap:wrap;gap:10px}.query-controls input{width:100%}.query-controls select{flex:1;min-width:100px}.zoom-controls{gap:8px}.zoom-controls button{font-size:12px;min-width:0;padding:11px}.graph-workspace{gap:20px}.graph-canvas,body[data-mode=graph] .graph-canvas{height:360px}.inspector{display:block;padding:20px}.inspector h2{font-size:24px;margin-bottom:20px}.inspector section{margin:17px 0 0;padding:17px 0 0;border-top:1px solid var(--line)}.graph-footer{flex-wrap:wrap;gap:15px;line-height:1.6}.graph-footer>p:last-child{margin-left:0}.neighbor-control{padding-left:15px}body[data-mode=graph] header.toolbar{height:auto}dialog textarea{height:300px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
@media(min-width:1450px){body[data-mode=calendar] .heading h1{font-size:64px}body[data-mode=calendar] header.toolbar span{font-size:22px}body[data-mode=calendar] .calendar-top{margin-top:-36px}body[data-mode=calendar] .stats{gap:38px}body[data-mode=calendar] .stats>div{min-width:145px}body[data-mode=calendar] .calendar-panel{padding-top:18px}body[data-mode=map] main.tool-main{padding:24px 24px 18px 36px}body[data-mode=map] .heading p{margin-bottom:14px}body[data-mode=map] .graph-workspace{grid-template-columns:minmax(0,1fr) 418px;gap:32px}body[data-mode=graph] main.tool-main{padding:24px 24px 18px 26px}body[data-mode=graph] .heading h1{font-size:50px;margin-bottom:5px}body[data-mode=graph] .heading p{font-size:20px;margin-bottom:16px}body[data-mode=graph] .graph-workspace{grid-template-columns:minmax(0,1fr) 408px;gap:30px}body[data-mode=graph] .inspector code{color:#92AFC4}.query-controls input{width:34%}.query-controls select{min-width:200px}}
@media(max-width:650px){.graph-canvas,body[data-mode=graph] .graph-canvas{overflow-x:auto;touch-action:pan-x}.graph-canvas svg{min-width:760px;height:360px;max-width:none}}
.search-field{display:block;position:relative;width:34%;min-width:130px}.query-controls .search-field input{width:100%;padding-left:42px}.search-field svg{position:absolute;width:18px;height:18px;left:15px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted)}.zoom-controls button svg{width:18px;height:18px;vertical-align:-3px;margin-right:10px}@media(min-width:1450px){body[data-mode=graph] .search-field{width:40%}body[data-mode=map] .search-field{width:33%}}@media(max-width:650px){.search-field{width:100%}.zoom-controls button svg{width:14px;height:14px;margin-right:4px}}
@media(min-width:1450px){body[data-mode=map] .query-controls{gap:16px}body[data-mode=map] .query-controls select{min-width:226px}body[data-mode=map] .zoom-controls{margin-left:0;gap:16px}body[data-mode=map] .zoom-controls button{min-width:117px}body[data-mode=map] .brand{font-size:38px}body[data-mode=map] header.toolbar>div{gap:30px}body[data-mode=map] header.toolbar button{font-size:16px;padding:12px 22px}body[data-mode=graph] .inspector code{font-size:17px}body[data-mode=graph] .inspector section{border-top:0;margin-top:35px;padding-top:0}body[data-mode=graph] .inspector section:first-of-type{margin-top:0}body[data-mode=graph] .inspector h3{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:16px}}
