@charset "UTF-8";
.auth-tabs{display:flex;gap:5px;padding:4px;border-radius:11px;background:#edf2f7;margin-top:23px}.auth-tabs button{flex:1;min-height:41px;border:0;border-radius:8px;color:#7a8da1;background:transparent;font-size:13px;font-weight:700}.auth-tabs button[aria-selected=true]{background:#fff;color:#075bb8;box-shadow:0 1px 5px #cdd9e65c}.login-panel .auth-tabs~div form{margin-top:18px}.form-notice{margin-top:17px;padding:11px 13px;border:1px solid #b9dfd7;border-radius:10px;background:#eff9f5;color:#267e69;font-size:12px;line-height:1.7}.signup-consent{margin-top:21px;border-top:1px solid #e0e8ef;padding-top:17px}.login-panel .consent-check{display:flex;align-items:flex-start;gap:9px;font-size:12px;font-weight:500;line-height:1.7;margin:0}.login-panel .consent-check input{width:18px;height:18px;min-width:18px;margin:2px 0 0;padding:0;accent-color:#075bb8;box-shadow:none}.consent-check small{font-size:11px;color:#075bb8}.signup-consent details{margin-top:9px;padding-left:27px;color:#718398;font-size:11px;line-height:1.8}.signup-consent summary{cursor:pointer;color:#557b9a;padding:3px 0}.signup-consent summary:focus-visible{outline:3px solid #75b9f7;outline-offset:3px}.consent-details{background:#f5f8fb;border-radius:9px;padding:12px;margin-top:7px;overflow-wrap:anywhere}.consent-details p+p{margin-top:9px}.consent-details dl{margin:10px 0}.consent-details dl>div{margin:7px 0}.consent-details dt{font-weight:700;color:#55728a}.consent-details dd{margin:1px 0 0}.login-panel:has(#signupView:not([hidden])){margin-top:28px}
:root{--ink:#17354e;--muted:#718398;--line:#e0e8ef;--navy:#103d63;--blue:#075bb8;--aqua:#058e96;--wash:#f2f6fa;--white:#fff;--radius:18px;--shadow:0 4px 22px rgba(30,58,85,.035);font-family:"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;color:var(--ink);background:var(--wash);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible,svg:focus-visible{outline:3px solid #75b9f7;outline-offset:3px}input:focus,select:focus{outline:0;border-color:#3981ca;box-shadow:0 0 0 3px #cfe5fb}button{touch-action:manipulation}input,select{min-width:0;width:100%;height:47px;border:1px solid #d8e2ec;border-radius:10px;background:#fff;color:var(--ink);padding:0 13px;font-size:16px}select{padding-right:27px;text-overflow:ellipsis}select:disabled{color:#98a6b5;background:#f6f8fb}input::placeholder{color:#91a1b0}input[type=search]::-webkit-search-cancel-button{cursor:pointer}label,.field-label{display:block;font-size:12px;font-weight:700;color:#61768b;letter-spacing:.01em}label{margin:0 0 7px}h1,h2,p{margin:0}h1{font-size:23px;line-height:1.5;letter-spacing:-.8px}h2{font-size:17px;line-height:1.5;letter-spacing:-.4px}.small{font-size:12px}.muted{color:var(--muted)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.app-header{background:rgba(255,255,255,.97);border-top:4px solid var(--navy);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(10px);padding-top:env(safe-area-inset-top)}.header-inner{max-width:1120px;margin:auto;min-height:88px;padding:12px 26px;display:flex;align-items:center;justify-content:space-between;gap:15px}.brand{display:flex;gap:11px;align-items:center;color:inherit;text-decoration:none;flex-shrink:0}.app-icon{border-radius:13px;object-fit:contain;background:#f3f6f9}.brand strong{font-size:23px;letter-spacing:-1px;display:block;color:#123e61}.brand small{display:block;color:#71869b;font-size:11px;margin-top:2px;letter-spacing:-.1px}.company-logo{object-fit:contain;max-width:33%;height:auto}.page{max-width:1120px;margin:0 auto;padding:0 26px}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.eyebrow{display:block;color:var(--aqua);font-size:11px;font-weight:800;letter-spacing:1px;margin-bottom:3px}.section-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.page-toolbar{min-height:65px;display:flex;align-items:center;justify-content:space-between;gap:10px}.connection-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.connection{font-size:11px;font-weight:700;display:flex;align-items:center;gap:6px;color:#3b8078}.status-dot,.tiny-dot{height:6px;width:6px;display:inline-block;border-radius:50%;background:#28a286;flex-shrink:0}.connection.checking{color:#7c8da0}.checking .status-dot{background:#91a6ba}.connection.offline{color:#ad7724}.offline .status-dot{background:#d79736}.last-checked{font-size:10px;color:#8899aa;font-variant-numeric:tabular-nums}.toolbar-actions{display:flex;gap:7px;align-items:center}.icon-button{width:35px;height:35px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;background:white;color:#536d85;flex-shrink:0;padding:6px}.icon-button svg{height:19px;width:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.subtle-button{height:35px;padding:0 12px;border:1px solid var(--line);border-radius:10px;color:#38607e;background:white;font-size:12px;font-weight:700;white-space:nowrap}.notice{padding:12px 15px;color:#946522;background:#fff7e8;border:1px solid #f1dfb8;border-radius:12px;margin-bottom:13px;font-size:12px;line-height:1.7}.filter-card{padding:22px 24px 16px}.user-name{font-size:11px;color:#8596a6;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-field{margin-top:22px}.search-input-wrap{position:relative}.search-input-wrap input{padding-left:40px;background:#f8fafc}.search-icon{position:absolute;top:14px;left:13px;height:19px;width:19px;fill:none;stroke:#7290a7;stroke-width:1.8;stroke-linecap:round}.field-hint{color:#8a9bad;font-size:11px;line-height:1.6;margin-top:7px}.filters-grid{display:grid;grid-template-columns:1fr 1.4fr 1.2fr;gap:13px;margin-top:18px}.period-header{display:flex;justify-content:space-between;align-items:center;margin-top:24px;margin-bottom:10px}.text-button{border:0;padding:4px 0;color:#60819d;background:none;font-size:11px}.period-choices{display:flex;gap:5px;padding:4px;border-radius:11px;background:#edf2f7}.period-choices button{flex:1;height:35px;border-radius:8px;border:0;color:#7a8da1;background:transparent;font-size:12px;font-weight:700}.period-choices button[aria-pressed=true]{background:white;color:var(--blue);box-shadow:0 1px 5px #cdd9e65c}.period-navigation{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:10px}.period-navigation .icon-button{height:32px;width:32px;border-color:transparent;background:transparent}.period-navigation span{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700;color:#5e7890;min-width:190px;text-align:center}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.metric{padding:17px 20px}.metric>span{display:block;font-size:11px;color:#7e91a5;margin-bottom:8px}.metric strong{font-size:22px;color:var(--blue);font-variant-numeric:tabular-nums;letter-spacing:-.6px}.metric strong.metric-date{font-size:19px}.trend-card{padding:21px 24px 20px}.chart-legend{color:#8196a7;font-size:10px;white-space:nowrap;display:flex;align-items:center;gap:5px}.chart-legend>span{background:var(--aqua);height:6px;width:6px;border-radius:50%}.trend-card>select{margin-top:15px;font-size:13px;height:43px;background:#fafcfe}.trend-summary{min-height:37px;display:flex;align-items:center;gap:8px;color:#7290a2;font-size:11px;flex-wrap:wrap;line-height:1.7;padding-top:9px}.trend-summary strong{color:#24526e;font-size:12px}.trend-summary .change{font-size:10px;font-weight:700;border-radius:5px;padding:1px 5px;background:#e9f5f2;color:#16837f}.trend-summary .change.up{background:#fff0ef;color:#be665f}.chart-wrap{position:relative;width:100%;height:270px;margin-top:2px}.chart-wrap svg#chart{width:100%;height:100%;display:block;overflow:visible;touch-action:pan-y;user-select:none}.chart-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:#8c9eaf;text-align:center;padding:20px}.chart-empty svg{height:38px;width:38px;fill:none;stroke:#a2b5c4;stroke-width:1.4;margin-bottom:4px}.chart-empty strong{font-size:13px;font-weight:500;color:#698298}.chart-empty span{font-size:11px}.chart-caption{font-size:10px;color:#8a9cad;line-height:1.6;margin:3px 0 0}.point-detail{background:#f3f8fb;border:1px solid #dfebf3;border-radius:11px;padding:13px 14px;margin-top:13px}.point-detail-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:700}.point-detail-top strong{color:var(--aqua);font-size:15px}.point-conditions{margin-top:8px;color:#6f8598;font-size:11px;line-height:1.7;display:flex;flex-direction:column;gap:4px}.point-conditions .condition-price{font-weight:700;color:#355e79}.detail-more{margin-top:6px;font-size:10px;color:#8b9cab}.records-section{margin-top:26px}.records-section>.section-top{margin:0 3px 12px}.record-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.record{padding:17px 18px;background:#fff;border:1px solid var(--line);border-radius:14px;min-width:0}.record-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.record-name{font-size:14px;font-weight:700;line-height:1.6;overflow-wrap:anywhere}.record-price{font-size:17px;font-weight:800;letter-spacing:-.5px;white-space:nowrap;color:#155b89}.record-price small{font-size:10px;font-weight:500;margin-left:2px}.record-date{display:block;font-size:10px;color:#8c9cad;margin-top:2px;letter-spacing:.1px}.record-info{display:grid;grid-template-columns:1fr 1.5fr;gap:9px;margin:13px 0 0}.record-info>div{min-width:0}.record-info dt{color:#91a1b0;font-size:10px;margin-bottom:4px}.record-info dd{font-size:12px;color:#4a667d;margin:0;overflow-wrap:anywhere;line-height:1.6}.record-info .detail-spec{grid-column:1/-1}.record-info .detail-spec dd{color:#8294a5;font-size:11px}.empty-records{padding:30px;color:#8a9cad;text-align:center;font-size:12px}.page-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:28px 1px calc(27px + env(safe-area-inset-bottom));color:#98a7b6;font-size:10px}.page-footer small{font-size:9px;white-space:nowrap}.login-panel{max-width:430px;margin:58px auto 34px;padding:32px 33px}.login-panel h1{font-size:28px;margin-top:11px;line-height:1.5;letter-spacing:-1.2px}.login-panel>.muted{font-size:12px;margin-top:13px;line-height:1.8}.login-panel form{margin-top:29px}.login-panel form>label{margin-top:17px}.login-panel form input{height:49px}.primary-button{height:48px;width:100%;border:0;border-radius:10px;background:var(--blue);color:#fff;font-size:14px;font-weight:700;box-shadow:0 3px 8px #075bb812}.login-panel .primary-button{margin-top:22px}.form-error{font-size:12px;color:#bc5f55;line-height:1.6;margin-top:12px}.login-footer{display:flex;align-items:flex-start;gap:7px;font-size:10px;color:#94a4b3;margin-top:25px;line-height:1.6}.login-footer .tiny-dot{height:5px;width:5px;margin-top:5px}.modal-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#102e48a3;padding:20px;backdrop-filter:blur(4px)}.install-dialog{width:min(390px,100%);padding:30px 26px;position:relative;text-align:center;max-height:90dvh;overflow-y:auto}.modal-close{position:absolute;top:10px;right:10px;border:0;font-size:26px;color:#7791a5}.install-dialog>img{border-radius:19px;margin-bottom:10px}.install-dialog>h2{font-size:20px}.install-dialog>p{color:#8296a8;font-size:12px;line-height:1.7;margin-top:10px}.install-dialog ol{text-align:left;list-style:none;padding:0;margin:23px 0 15px;display:flex;flex-direction:column;gap:16px}.install-dialog li strong{font-size:12px;color:#44708d;display:block;margin-bottom:4px}.install-dialog li span{font-size:12px;line-height:1.8;color:#788fa2}.install-dialog .field-hint{font-size:10px;color:#9aa9b6}.install-dialog .primary-button{margin-top:17px}.toast{position:fixed;bottom:calc(25px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#153a57;color:white;border-radius:12px;padding:13px 20px;box-shadow:0 4px 20px #12364e28;font-size:12px;line-height:1.6;z-index:120;max-width:calc(100vw - 36px);width:max-content;text-align:center}.busy .filter-card{opacity:.85}.busy #refreshButton svg{animation:turn 1.1s linear infinite}@keyframes turn{to{transform:rotate(360deg)}}
@media(min-width:850px){.filter-card{display:grid;grid-template-columns:1fr 1.8fr;column-gap:25px;align-items:start}.filter-card>.section-top{grid-column:1/-1}.search-field{margin-top:21px;grid-column:1}.filters-grid{grid-column:2;margin-top:21px}.period-header{grid-column:1;margin-top:16px}.period-choices{grid-column:2;grid-row:3/5;align-self:center;margin-top:16px}.period-navigation{grid-column:1;justify-content:space-between;gap:2px;margin-top:0}.period-navigation span{min-width:180px;font-size:11px}.trend-card{padding:23px 26px}.chart-wrap{height:310px}.metrics{gap:16px}.metric{padding:18px 23px}.metric strong{font-size:25px}.metric strong.metric-date{font-size:22px}}
@media(max-width:600px){.header-inner{padding:11px 17px;min-height:81px;gap:8px}.brand{gap:8px}.app-icon{height:39px;width:39px;border-radius:12px}.brand strong{font-size:22px}.brand small{font-size:10px}.company-logo{width:106px;max-width:29%}.page{padding:0 15px}.page-toolbar{min-height:61px;gap:5px}.connection-wrap{gap:3px;flex-direction:column;align-items:flex-start}.last-checked{font-size:9px}.toolbar-actions{gap:5px}.toolbar-actions .icon-button{width:33px;height:33px;border-radius:9px}.subtle-button{height:33px;font-size:11px;padding:0 10px}.filter-card{padding:19px 17px 13px;border-radius:16px}.eyebrow{font-size:10px}h1{font-size:22px}.search-field{margin-top:18px}.filters-grid{grid-template-columns:1fr 1.3fr;gap:13px 10px;margin-top:15px}.method-field{grid-column:1/-1}.method-field select{height:43px;font-size:14px}.field-hint{font-size:10px;line-height:1.7}.period-header{margin-top:18px}.period-choices button{height:34px;font-size:12px}.period-navigation{gap:9px;margin-top:8px}.period-navigation span{font-size:11px;min-width:185px}.metrics{gap:7px;margin:12px 0}.metric{padding:13px 11px;border-radius:13px}.metric>span{font-size:10px;margin-bottom:7px}.metric strong{font-size:20px}.metric strong.metric-date{font-size:14px;letter-spacing:-.5px;line-height:24px}.trend-card{padding:18px 14px 17px;border-radius:16px}.trend-card .section-top{padding:0 2px}.chart-legend{font-size:9px}.trend-card>select{font-size:12px;padding-left:10px;margin-top:12px}.chart-wrap{height:248px;margin-left:-3px;width:calc(100% + 6px)}.trend-summary{font-size:10px;gap:5px;min-height:40px;padding:9px 2px 0}.trend-summary strong{font-size:11px}.trend-summary .change{font-size:9px}.chart-caption{font-size:9px;padding:0 2px}.point-detail{padding:12px}.point-detail-top{font-size:11px}.point-detail-top strong{font-size:14px}.point-conditions{font-size:10px}.records-section{margin-top:22px}.records-section>.section-top h2{font-size:16px}.records-section>.section-top .small{font-size:10px}.record-list{grid-template-columns:1fr;gap:9px}.record{padding:15px 16px;border-radius:13px}.record-name{font-size:13px}.record-price{font-size:17px}.record-info{grid-template-columns:.9fr 1.3fr;margin-top:12px;gap:9px}.record-info .detail-method{grid-column:1/-1}.page-footer{font-size:9px;padding-top:24px}.page-footer small{font-size:8px}.login-panel{margin-top:35px;padding:27px 24px}.login-panel h1{font-size:27px}.login-panel form{margin-top:24px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
