:root{--p-bg:#f6f8f8;--p-white:#fff;--p-ink:#172b3a;--p-muted:#4c6068;--p-line:#cad6d9;--p-green:#126b61;--p-pale:#e8f2f0;--p-red:#9d2939;--p-red-pale:#fff1f2;--surface:var(--p-white);--canvas:var(--p-bg);--text:var(--p-ink);--muted:var(--p-muted);--accent:var(--p-green);--line:var(--p-line);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius:4px;--radius-button:6px;--font-ui:"Helvetica Neue","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;--font-mono:"SFMono-Regular",Consolas,monospace;--motion:140ms cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--text);font:16px/1.7 var(--font-ui)}a{color:inherit}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:clamp(28px,3.4vw,40px);line-height:1.3;letter-spacing:.025em;font-weight:600}h2{font-size:20px;line-height:1.4;font-weight:600}h3{font-size:20px}button{min-height:48px;border-radius:var(--radius-button)}input{min-width:0;min-height:48px;border:1px solid var(--line);border-radius:var(--radius);color:var(--text);background:var(--surface);padding:var(--space-3) var(--space-4)}input::placeholder{color:var(--muted)}[hidden]{display:none!important}.muted{color:var(--muted)}.eyebrow{font-size:13px;font-weight:600;letter-spacing:.13em;color:var(--accent);margin-bottom:var(--space-3)}.wordmark{text-decoration:none;display:inline-flex;align-items:center;gap:var(--space-4);font-size:16px;letter-spacing:.1em;font-weight:700;min-height:48px}.wordmark span{font-size:13px;font-weight:400;letter-spacing:0;color:var(--muted);border-left:1px solid var(--line);padding-left:var(--space-4)}.topbar{background:var(--surface);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1160px;margin:auto;min-height:80px;padding:var(--space-4) var(--space-6);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.logout-link{font-size:14px;text-decoration:none;min-height:48px;display:flex;align-items:center;padding-inline:var(--space-3);color:var(--muted)}.workspace{max-width:1160px;margin:auto;padding:var(--space-8) var(--space-6) var(--space-7)}.intro{display:flex;justify-content:space-between;gap:var(--space-5);align-items:center;margin-bottom:var(--space-7)}.intro .muted{margin-top:var(--space-3)}.tool-total{display:flex;align-items:baseline;gap:var(--space-2);padding-left:var(--space-6);border-left:1px solid var(--line)}.tool-total strong{font-size:44px;font-weight:400;line-height:1}.tool-total span{font-size:13px;letter-spacing:.1em;color:var(--muted)}.directory{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.directory-controls{padding:var(--space-6);padding-bottom:var(--space-5);display:flex;align-items:center;justify-content:space-between;gap:var(--space-5)}.search-wrap{display:flex;align-items:center;gap:var(--space-2);width:340px;max-width:100%;border-bottom:1px solid var(--line)}.search-wrap svg{width:20px;height:20px;flex-shrink:0;color:var(--muted)}.search-wrap input{width:100%;border:0;padding-left:var(--space-1);background:transparent}.filters{display:flex;gap:var(--space-2);flex-wrap:wrap;padding:0 var(--space-6) var(--space-5)}.filters button{border:1px solid transparent;background:transparent;color:var(--muted);padding:var(--space-2) var(--space-4);transition:background var(--motion),color var(--motion)}.filters button[aria-pressed=true]{color:var(--accent);background:var(--p-pale);border-color:var(--accent)}.filters button:hover{background:var(--p-pale)}.list-label,.tool-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) 32px;gap:var(--space-5);align-items:center}.list-label{font-size:13px;color:var(--muted);padding:var(--space-3) var(--space-6);border-block:1px solid var(--line);background:var(--canvas)}.tool-row{padding:var(--space-5) var(--space-6);text-decoration:none;min-height:94px;border-bottom:1px solid var(--line);transition:background var(--motion)}.tool-row:hover{background:var(--p-pale)}.tool-name{display:flex;align-items:baseline;gap:var(--space-4);min-width:0}.row-index{color:var(--muted);font:13px/1.5 var(--font-mono);min-width:20px}.tool-name strong{font-size:16px;line-height:1.7;font-weight:600;overflow-wrap:anywhere}.tool-meta{min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.category-label{font-size:13px;color:var(--accent)}.hostname{font-size:13px;line-height:1.5;font-family:var(--font-mono);color:var(--muted);overflow-wrap:anywhere}.open-icon{width:24px;height:24px;color:var(--accent)}.result-count{padding:var(--space-4) var(--space-6);font-size:13px;color:var(--muted)}.empty-state{text-align:center;padding:var(--space-7) var(--space-5)}.empty-state p{color:var(--muted);margin-block:var(--space-3) var(--space-5)}.empty-state button{padding-inline:var(--space-4);background:var(--surface);border:1px solid var(--accent);color:var(--accent)}.workspace-note{display:flex;align-items:baseline;gap:var(--space-3);margin-top:var(--space-5);font-size:14px;color:var(--muted)}.note-mark{width:6px;height:6px;flex:0 0 6px;background:var(--accent);border-radius:50%}.workspace-footer{max-width:1160px;margin:auto;padding:0 var(--space-6) var(--space-6);font-size:13px;letter-spacing:.08em;color:var(--muted);display:flex;justify-content:space-between;gap:var(--space-4)}.login-page{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:var(--space-7) var(--space-5)}.login-panel{width:100%;max-width:500px;margin:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-7)}.login-heading{margin-block:var(--space-7) var(--space-6)}.login-heading h1{font-size:28px;overflow-wrap:anywhere}.login-heading .muted{margin-top:var(--space-3);font-size:14px}.login-panel label{display:block;font-weight:600;font-size:14px;margin-block:var(--space-5) var(--space-2)}.login-panel input:not([type=hidden]){width:100%}.password-field{position:relative}.password-field input{padding-right:var(--space-8)}.reveal{position:absolute;right:var(--space-1);top:50%;transform:translateY(-50%);min-width:52px;min-height:44px;border:0;background:transparent;color:var(--accent);font-size:14px}.primary{width:100%;margin-top:var(--space-6);border:1px solid var(--accent);background:var(--accent);color:var(--surface);padding:var(--space-3) var(--space-4);display:flex;justify-content:space-between;align-items:center;font-weight:600}.primary:hover{filter:brightness(.92)}.primary:disabled{cursor:wait;opacity:.7}.error{background:var(--p-red-pale);color:var(--p-red);border-left:3px solid var(--p-red);padding:var(--space-3) var(--space-4);font-size:14px}.security-note,.form-status{font-size:13px;line-height:1.6;color:var(--muted);margin-top:var(--space-4)}.form-status:empty{display:none}.login-footer{text-align:center;color:var(--muted);font-size:12px;letter-spacing:.1em;margin-top:var(--space-6)}.back-link{display:flex;min-height:48px;align-items:center;justify-content:center;margin-top:var(--space-3);color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:700px){.topbar-inner{min-height:72px;padding-inline:var(--space-4)}.wordmark{gap:var(--space-3)}.wordmark span{padding-left:var(--space-3)}.workspace{padding:var(--space-6) var(--space-4)}.intro{margin-bottom:var(--space-6)}.tool-total{padding-left:var(--space-4)}.tool-total strong{font-size:32px}.tool-total span{display:none}.directory-controls{align-items:stretch;flex-direction:column;gap:var(--space-4);padding:var(--space-5) var(--space-4)}.search-wrap{width:100%}.filters{padding-inline:var(--space-4);gap:var(--space-1)}.filters button{padding-inline:var(--space-3);font-size:14px}.list-label{display:none}.tool-row{position:relative;grid-template-columns:minmax(0,1fr) 24px;gap:var(--space-2);padding:var(--space-5) var(--space-4)}.tool-name{grid-column:1;gap:var(--space-3)}.tool-meta{grid-column:1;padding-left:var(--space-6);gap:var(--space-2)}.open-icon{grid-column:2;grid-row:1/3}.result-count{padding-inline:var(--space-4)}.workspace-note{font-size:13px}.workspace-footer{padding:var(--space-2) var(--space-4) var(--space-5);font-size:12px}.login-page{padding:var(--space-5) var(--space-4)}.login-panel{padding:var(--space-6) var(--space-5)}.login-heading h1{font-size:25px}.login-panel label{font-size:16px}.hostname{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
:root{--p-control-line:#6f7f86;--control-border:var(--p-control-line)}
input{border-color:var(--control-border)}
@media(max-width:700px){.logout-link,.filters button,.reveal{font-size:16px}}

@media(max-width:700px){.wordmark,.logout-link{white-space:nowrap;flex-shrink:0}.wordmark span{display:none}}

/* サイト本体の色・書体を認証画面だけへ適用する。理由: リンク集と管理画面の既存表示へ波及させないため。 */
.login-page[data-site]{--auth-bg:#f6f8f8;--auth-panel:#fff;--auth-ink:#172b3a;--auth-muted:#4c6068;--auth-accent:#126b61;--auth-on-accent:#fff;--auth-soft:#e8f2f0;--auth-line:#cad6d9;--auth-control:#6f7f86;--auth-radius:8px;--auth-field-radius:6px;--auth-heading:var(--auth-ink);--auth-font:"Helvetica Neue","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;--auth-heading-font:var(--auth-font);--auth-error:#9d2939;--auth-error-bg:#fff1f2;--canvas:var(--auth-bg);--surface:var(--auth-panel);--text:var(--auth-ink);--muted:var(--auth-muted);--accent:var(--auth-accent);--line:var(--auth-line);--control-border:var(--auth-control);--radius:var(--auth-radius);--radius-button:var(--auth-field-radius);--font-ui:var(--auth-font);color-scheme:light;background:var(--canvas);font-family:var(--font-ui);padding:48px 24px;justify-content:center}
.login-page[data-site="high52"]{--auth-bg:#f5f6fc;--auth-ink:#333333;--auth-muted:#5f6368;--auth-accent:#9d3436;--auth-soft:#fae9e6;--auth-line:#dfe0e6;--auth-control:#80838a;--auth-radius:24px;--auth-field-radius:16px;--auth-font:"Roboto","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif}
.login-page[data-site="ks"]{--auth-bg:#f8f9fa;--auth-ink:#202124;--auth-muted:#5f6368;--auth-accent:#1967d2;--auth-soft:#e8f0fe;--auth-line:#dadce0;--auth-control:#80868b;--auth-radius:24px;--auth-field-radius:12px;--auth-font:"Roboto","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif}
.login-page[data-site="chart"]{color-scheme:dark;--auth-bg:#101820;--auth-panel:#15212b;--auth-ink:#e4edf3;--auth-muted:#a0b0bc;--auth-accent:#abdcbc;--auth-on-accent:#101820;--auth-soft:#213c34;--auth-line:#344451;--auth-control:#718695;--auth-radius:4px;--auth-field-radius:4px;--auth-font:system-ui,-apple-system,"Hiragino Sans",sans-serif}
.login-page[data-site="earnings"]{--auth-bg:#f8fafd;--auth-ink:#1f1f1f;--auth-muted:#444746;--auth-accent:#0b57d0;--auth-soft:#d3e3fd;--auth-line:#dfe3e9;--auth-control:#747775;--auth-radius:24px;--auth-field-radius:16px;--auth-font:"Google Sans Text","Roboto","Noto Sans JP","Hiragino Sans",sans-serif}
.login-page[data-site="healthspan"]{--auth-bg:#fbfaff;--auth-ink:#232136;--auth-muted:#504e66;--auth-accent:#087d78;--auth-soft:#def3ef;--auth-line:#e3dfed;--auth-control:#858198;--auth-radius:20px;--auth-field-radius:14px;--auth-font:"Google Sans Text","Roboto","Noto Sans JP","Hiragino Sans",sans-serif}
.login-page[data-site="cash"]{--auth-bg:#f6faf8;--auth-ink:#1c2622;--auth-muted:#46564e;--auth-accent:#047857;--auth-soft:#dff2e9;--auth-line:#cfdfd7;--auth-control:#758b7e;--auth-radius:20px;--auth-field-radius:14px;--auth-font:"Roboto","Noto Sans JP","Hiragino Sans",sans-serif}
.login-page[data-site="rewards"]{--auth-bg:#f8f9fb;--auth-ink:#1f1f1f;--auth-muted:#5f6368;--auth-accent:#185abc;--auth-soft:#e8f0fe;--auth-line:#dde3ed;--auth-control:#80868b;--auth-radius:16px;--auth-field-radius:12px;--auth-font:"Roboto","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif}
.login-page[data-site="shipping"]{--auth-bg:#f8f9fa;--auth-ink:#202124;--auth-muted:#5f6368;--auth-accent:#1967d2;--auth-soft:#e8f0fe;--auth-line:#dadce0;--auth-control:#80868b;--auth-radius:16px;--auth-field-radius:8px;--auth-font:"Roboto","Noto Sans JP","Hiragino Sans",sans-serif}
.login-page[data-site="stories"]{color-scheme:dark;--auth-bg:#05050a;--auth-panel:#101018;--auth-ink:#e4e4e7;--auth-muted:#a9a9bc;--auth-accent:#00d5e5;--auth-on-accent:#05050a;--auth-soft:#09292e;--auth-line:#30303f;--auth-control:#76768c;--auth-radius:12px;--auth-field-radius:8px;--auth-font:"Geist","Helvetica Neue","Hiragino Sans",sans-serif}
.login-page[data-site="daihon"]{color-scheme:dark;--auth-bg:#151320;--auth-panel:#1e1b2b;--auth-ink:#e9e6f2;--auth-muted:#b1a9c4;--auth-accent:#a796d8;--auth-on-accent:#151320;--auth-soft:#332b48;--auth-heading:#dfc17f;--auth-line:#423a56;--auth-control:#8b7ca5;--auth-radius:10px;--auth-field-radius:8px;--auth-font:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
.login-page[data-site="opcha"]{--auth-bg:#f8f9fa;--auth-ink:#333;--auth-muted:#5f6368;--auth-accent:#7c3aed;--auth-soft:#f3e8ff;--auth-line:#ddd6ee;--auth-control:#877c99;--auth-radius:16px;--auth-field-radius:12px;--auth-font:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif}
.login-page[data-site="manual"]{--auth-bg:#f7f5fc;--auth-ink:#302a41;--auth-muted:#625b72;--auth-accent:#6d5bd0;--auth-soft:#eee9fc;--auth-line:#e2dced;--auth-control:#887d9d;--auth-radius:16px;--auth-field-radius:10px;--auth-font:system-ui,-apple-system,"Hiragino Sans","Yu Gothic",sans-serif}
.login-page[data-site="pullback"]{--auth-bg:#fffaf0;--auth-ink:#202427;--auth-muted:#625a50;--auth-accent:#b71905;--auth-soft:#fff0db;--auth-line:#ded5c3;--auth-control:#93816a;--auth-radius:4px;--auth-field-radius:4px;--auth-font:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif}
.login-page[data-site="material"]{color-scheme:dark;--auth-bg:#1c0b30;--auth-panel:#28163d;--auth-ink:#f4edff;--auth-muted:#cdc0e4;--auth-accent:#eed968;--auth-on-accent:#1c0b30;--auth-soft:#40331e;--auth-heading:#eed968;--auth-line:#544162;--auth-control:#a792b7;--auth-radius:12px;--auth-field-radius:6px;--auth-font:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;--auth-heading-font:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif}
.login-page[data-site="whale"]{color-scheme:dark;--auth-bg:#0a0f1e;--auth-panel:#111d33;--auth-ink:#edf3ff;--auth-muted:#b1c0d8;--auth-accent:#6fb2ff;--auth-on-accent:#0a0f1e;--auth-soft:#1d3454;--auth-line:#304461;--auth-control:#7791b1;--auth-radius:14px;--auth-field-radius:8px;--auth-font:"Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif}
.login-page[data-site="portal"]{--auth-radius:8px;--auth-field-radius:6px}
.login-page[data-site] .login-panel{max-width:488px;padding:40px;margin:auto;border:1px solid var(--line);border-radius:var(--auth-radius);background:var(--surface)}
.auth-brand{display:flex;align-items:center;gap:16px}
.auth-symbol{display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;border-radius:var(--auth-field-radius);color:var(--accent);background:var(--auth-soft)}
.auth-symbol svg{width:28px;height:28px}.auth-category{color:var(--muted);font-size:13px;line-height:1.6;letter-spacing:.03em}
.login-page[data-site] .login-heading{margin:28px 0 32px}.login-page[data-site] .login-heading h1{font:600 28px/1.5 var(--auth-heading-font);letter-spacing:.015em;color:var(--auth-heading);text-wrap:pretty;overflow-wrap:anywhere}
.login-page[data-site] .login-heading .muted{font-size:14px;line-height:1.8;margin-top:12px}
.login-page[data-site] label{font-size:14px;font-weight:500;margin:24px 0 8px}.login-page[data-site] form>label:first-of-type{margin-top:0}
.login-page[data-site] input:not([type=hidden]){min-height:56px;border-radius:var(--auth-field-radius);padding:14px 16px;font-size:16px;line-height:1.5;background:var(--surface);color:var(--text);transition:border-color var(--motion)}
.login-page[data-site] .password-field input{padding-right:80px}.login-page[data-site] input:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:3px}
.login-page[data-site] .reveal{font-size:14px;min-width:64px;min-height:48px;right:4px;border-radius:var(--auth-field-radius);color:var(--accent)}
.login-page[data-site] .reveal:hover{background:var(--auth-soft)}
.login-page[data-site] .primary{min-height:56px;padding:14px 20px;margin-top:32px;border-radius:var(--auth-field-radius);font-size:16px;font-weight:500;color:var(--auth-on-accent);background:var(--accent);border-color:var(--accent);transition:filter var(--motion)}
.login-page[data-site] .primary svg{width:20px;height:20px}.login-page[data-site] .primary:hover{filter:brightness(.94)}
.login-page[data-site] .primary:disabled{opacity:1;cursor:progress}
.login-page[data-site] .security-note{display:flex;align-items:flex-start;gap:8px;margin-top:24px;color:var(--muted);font-size:12px;line-height:1.8}.security-note svg{width:16px;height:20px;flex:0 0 16px}
.auth-directory{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;margin-top:20px;border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:14px;text-decoration:none}
.auth-directory:hover{color:var(--accent)}.login-page[data-site] .error{border:0;border-left:3px solid var(--auth-error);border-radius:0;padding:12px 16px;margin-bottom:24px;font-size:14px;line-height:1.7;color:var(--auth-error);background:var(--auth-error-bg)}
.login-page[data-site] input[aria-invalid=true]{border-color:var(--auth-error)}
.login-page[data-site="chart"],.login-page[data-site="stories"],.login-page[data-site="daihon"],.login-page[data-site="material"],.login-page[data-site="whale"]{--auth-error:#ffbec9;--auth-error-bg:#3c212e}
.login-page[data-site="pullback"] .login-panel,.login-page[data-site="material"] .login-panel{border-top:3px solid var(--accent)}
@media(prefers-color-scheme:dark){.login-page[data-site="ks"]{color-scheme:dark;--auth-bg:#1b1c1e;--auth-panel:#26282b;--auth-ink:#e8eaed;--auth-muted:#bdc1c6;--auth-accent:#a8c7fa;--auth-on-accent:#062e6f;--auth-soft:#243955;--auth-line:#4b5058;--auth-control:#8d949e;--auth-error:#ffbec9;--auth-error-bg:#3c212e}}
@media(max-width:600px){.login-page[data-site]{padding:24px 16px}.login-page[data-site] .login-panel{padding:28px 24px}.login-page[data-site] .login-heading{margin:24px 0 28px}.login-page[data-site] .login-heading h1{font-size:24px}.login-page[data-site] .login-heading .muted{font-size:14px}.login-page[data-site] label,.login-page[data-site] .reveal,.login-page[data-site] .auth-directory{font-size:16px}.auth-category{font-size:12px}.auth-brand{gap:12px}.login-page[data-site] .security-note{font-size:12px}}
