:root{--ink:#252522;--muted:#72746d;--paper:#f5f5ef;--white:#fffefa;--line:#dedfd4;--accent:#4b6154;--wine:#825046;--soft:#edf1e7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.75 -apple-system,BlinkMacSystemFont,'Noto Sans KR','Malgun Gothic',sans-serif}a{color:inherit}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid var(--line);background:var(--white);border-radius:8px;padding:10px 15px;color:var(--ink)}button:hover{border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}.solid{background:var(--ink);color:white;border-color:var(--ink)}.topbar{height:72px;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;background:rgba(245,245,239,.97);border-bottom:1px solid var(--line);padding:0 max(22px,calc((100vw - 1160px)/2));gap:20px}.topbar>a{font:30px Georgia,serif;text-decoration:none;letter-spacing:-2px}.topbar>a span{font:10px sans-serif;letter-spacing:3px;padding-left:14px}.topbar>div{display:flex;gap:14px;align-items:center;font-size:12px}.topbar button{font-size:12px;padding:7px 13px}.wrap{max-width:1204px;margin:auto;padding:40px 22px}.intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--wine);font-weight:700}.intro h1{font-size:38px;font-weight:600;letter-spacing:-1.5px;margin:8px 0}.intro p{font-size:13px;color:var(--muted);margin:0}.badge{white-space:nowrap;border:1px solid #b9c3b4;background:var(--soft);padding:8px 13px;border-radius:30px;font-size:12px}.badge.off{background:#f6ead9;border-color:#dfcfae;color:#806345}.notice{padding:20px 23px;background:#f5ebd9;border:1px solid #e3d3b2;border-radius:12px;margin:20px 0;color:#715839}.notice b{display:block}.notice p{margin:5px 0 0;font-size:13px}.notice.ready{background:var(--soft);border-color:#d2dbca;color:#486044}.section-tabs{display:flex;gap:22px;flex-wrap:wrap;margin:30px 0;border-bottom:1px solid var(--line);font-size:13px}.section-tabs a{padding:10px 0;text-decoration:none}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:9px}.modes{display:flex;border:1px solid var(--line);padding:3px;border-radius:9px;background:var(--white)}.modes button{border:0;background:transparent;padding:8px 20px;font-size:13px}.modes button[aria-pressed=true]{background:var(--ink);color:#fff}.period-label{display:flex;align-items:center;gap:8px;font-size:12px;margin-left:auto}.period-label input{max-width:175px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--white);min-height:43px}.toolbar>button{font-size:12px}.small{font-size:12px;color:var(--muted);line-height:1.85;margin:8px 0 17px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:22px 0}.metrics article{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:24px}.metrics span{display:block;font-size:12px;color:var(--muted)}.metrics strong{display:block;font:48px/1.4 Georgia,serif;margin:10px 0;color:var(--ink)}.metrics small{color:var(--muted);font-size:11px}.panel{border:1px solid var(--line);background:var(--white);border-radius:12px;padding:24px;margin:18px 0;min-width:0;scroll-margin-top:90px}.panel-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.panel h2{font-size:20px;letter-spacing:-.6px;font-weight:600;margin:0 0 5px}.panel p{font-size:13px;color:var(--muted);margin:0}.legend{display:flex;gap:13px;white-space:nowrap;font-size:11px;color:var(--accent)}.legend span+span{color:var(--wine)}#chart{min-height:210px;overflow:hidden}#chart svg{display:block;width:100%;height:230px}#chart .axis{stroke:var(--line);stroke-width:1}#chart .pv-line{fill:none;stroke:var(--wine);stroke-width:2}#chart .visit-line{fill:none;stroke:var(--accent);stroke-width:3}#chart .visit-dot{fill:var(--accent)}#chart .pv-dot{fill:var(--wine)}#chart text{font:10px sans-serif;fill:var(--muted)}.chart-empty{display:grid;place-items:center;color:var(--muted);font-size:13px;background:linear-gradient(0deg,#f6f6ef,#fffefa);border-radius:8px}.series-details{border-top:1px solid var(--line);padding-top:12px;margin-top:16px}.series-details summary{cursor:pointer;font-size:12px;color:var(--muted)}.table-scroll{max-width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{color:var(--muted);font-size:11px;font-weight:500;text-align:left;padding:11px 9px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:12px 9px;border-bottom:1px solid #edeee5;vertical-align:top}th:not(:first-child),td:not(:first-child){text-align:right;white-space:nowrap}td:first-child{max-width:370px;overflow-wrap:anywhere}td small{display:block;font-size:10px;color:var(--muted)}td.empty{padding:30px 10px;text-align:center;color:var(--muted)}.columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.columns .panel{margin:0}.builder{padding:30px}.builder h2{font-size:25px;margin:8px 0 10px}.builder>p{max-width:820px;line-height:1.9;margin-bottom:22px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.form-grid label,.output-label{display:flex;flex-direction:column;gap:7px;font-size:12px}.form-grid input,.form-grid select,textarea{padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);width:100%;min-height:45px;min-width:0}textarea{font-size:12px;line-height:1.8;resize:vertical}.presets{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;margin:20px 0}.presets button{font-size:11px;padding:7px 11px}.output-label{margin:18px 0 10px}.builder>.small{font-size:11px;margin-top:15px}.definition-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.definition-grid h3{font-size:14px;font-weight:600;margin:15px 0 7px}.definition-grid p{font-size:12px;line-height:1.9}.admin-footer{font-size:10px;letter-spacing:.07em;color:var(--muted);padding:24px 0;border-top:1px solid var(--line);margin-top:28px}.login{display:grid;place-items:center;min-height:100vh;padding:22px}.login-card{max-width:450px;width:100%;padding:35px;border:1px solid var(--line);background:var(--white);border-radius:14px}.login-card h1{font-size:30px;line-height:1.5;letter-spacing:-1px;margin:20px 0}.login-card p{font-size:13px;color:var(--muted)}.login-card label{display:block;font-size:12px;margin-top:28px}.login-card input{display:block;width:100%;border:1px solid var(--line);border-radius:7px;padding:12px;margin:8px 0 12px}.login-card form button{width:100%}.login-card small{display:block;font-size:11px;color:var(--muted);line-height:1.9}.back{display:block;font-size:12px;margin-top:20px}#login-message{color:#a34a35;min-height:20px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:24px;padding:12px 25px;font-size:12px;z-index:100}#toast[hidden]{display:none}.privacy-page{max-width:760px;margin:auto;padding:50px 25px}.privacy-page h1{font-size:28px}.privacy-page h2{font-size:19px;margin-top:30px}.privacy-page p{font-size:14px}.privacy-page button{margin-right:8px}@media(max-width:850px){.columns{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.period-label{margin-left:0}.intro{align-items:flex-start}.intro h1{font-size:32px}.metrics article{padding:18px}.metrics strong{font-size:37px}}@media(max-width:540px){.wrap{padding:26px 15px}.topbar{padding:0 15px;height:65px}.topbar>div>span{display:none}.intro{display:block}.intro .badge{display:inline-block;margin-top:18px}.intro h1{font-size:30px}.intro p{font-size:12px}.notice{padding:17px}.section-tabs{font-size:11px;gap:17px;margin:23px 0}.modes button{padding:8px 19px}.toolbar{gap:8px}.period-label input{max-width:148px;font-size:12px}.period-label span{display:none}.metrics{gap:7px}.metrics article{padding:13px 10px}.metrics strong{font-size:29px;margin:9px 0}.metrics span{font-size:10px}.metrics small{font-size:9px}.panel,.builder{padding:18px 14px}.panel h2{font-size:18px}.panel-head{gap:8px}.panel p{font-size:12px}.legend{font-size:10px;gap:6px}.form-grid{grid-template-columns:1fr}.definition-grid{grid-template-columns:1fr;gap:3px}.small{font-size:11px}.login-card{padding:27px}}