html{--lsh-bg:#f5f8fc;--lsh-card:#fff;--lsh-text:#14253d;--lsh-muted:#53647b;--lsh-border:#dce3e8;--lsh-input:#fff;--lsh-accent:#14253d;--lsh-button-text:#fff;color-scheme:light}
html[data-theme=dark]{--lsh-bg:#0d1522;--lsh-card:#19263b;--lsh-text:#f2f6fc;--lsh-muted:#b9c3d2;--lsh-border:#3a4a60;--lsh-input:#0d192b;--lsh-accent:#bdd8ff;--lsh-button-text:#14253d;color-scheme:dark}
*{box-sizing:border-box}body.lsh-page{margin:0;background:var(--lsh-bg);color:var(--lsh-text);font:16px/1.6 Arial,sans-serif}a{color:inherit}.lsh-wrap{width:min(980px,92%);margin:auto}.lsh-header{background:var(--lsh-card);border-bottom:1px solid var(--lsh-border)}.lsh-nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:18px 0}.lsh-nav .brand{font-weight:bold;margin-right:auto;text-decoration:none}.lsh-nav img{width:48px;vertical-align:middle;margin-right:8px}.lsh-nav a{font-size:14px}.lsh-main{padding:32px 0 60px}.lsh-card{background:var(--lsh-card);border:1px solid var(--lsh-border);border-radius:22px;padding:24px;margin:18px 0}.lsh-page h1{font-size:clamp(28px,5vw,40px);line-height:1.2}.lsh-page h2{font-size:23px}.lsh-page h3{font-size:19px}.lsh-page p,.lsh-muted{color:var(--lsh-muted)}.lsh-page label{display:block;font-weight:700;margin:18px 0 6px}.lsh-page input:not([type=checkbox]),.lsh-page textarea,.lsh-page select{width:100%;font:inherit;font-size:16px;border:1px solid var(--lsh-border);border-radius:14px;padding:13px 16px;background:var(--lsh-input);color:var(--lsh-text);scroll-margin-top:24px}.lsh-page input[type=checkbox]{width:20px;height:20px;margin-right:10px;accent-color:var(--lsh-accent)}.lsh-page .check{display:flex;align-items:flex-start;font-weight:400;gap:6px}.lsh-page .check input{flex-shrink:0;margin-top:4px}.lsh-page fieldset{border:1px solid var(--lsh-border);border-radius:14px;margin:20px 0;padding:12px 18px}.lsh-page legend{font-weight:bold}.lsh-page button,.lsh-button{font:inherit;font-weight:bold;display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;border:1px solid var(--lsh-accent);border-radius:14px;background:var(--lsh-accent);color:var(--lsh-button-text);cursor:pointer;text-decoration:none;gap:8px}.lsh-page button.secondary,.lsh-button.secondary{background:transparent;color:var(--lsh-text);border-color:var(--lsh-border)}.lsh-page button:disabled{opacity:.5;cursor:wait}.lsh-actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.lsh-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lsh-badge{display:inline-block;background:var(--lsh-input);border:1px solid var(--lsh-border);border-radius:999px;padding:5px 12px;font-size:14px}.lsh-page .notice{border-left:4px solid #e8b447;padding:14px 18px;background:var(--lsh-card);border-radius:12px}.lsh-status{min-height:24px;white-space:pre-line}.lsh-error{color:var(--lsh-text);border-left:4px solid #d35959;padding-left:12px}.lsh-page .portfolio-photo{max-width:260px;max-height:220px;object-fit:contain;border-radius:14px;display:block;margin:12px 0}.lsh-page .mini-map{width:100%;height:280px;border-radius:18px;overflow:hidden;border:1px solid var(--lsh-border);background:var(--lsh-input)}.lsh-page dialog{width:min(620px,calc(100% - 32px));max-height:85dvh;overflow:auto;border:1px solid var(--lsh-border);border-radius:22px;padding:24px;color:var(--lsh-text);background:var(--lsh-card)}.lsh-page dialog::backdrop{background:rgb(8 18 32 / 45%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.lsh-page :focus-visible{outline:3px solid #e8b447;outline-offset:3px}.lsh-page [hidden]{display:none!important}.lsh-footer{border-top:1px solid var(--lsh-border);padding:24px 0;margin-top:30px}.lsh-footer a{margin-right:16px}.lsh-page:focus-within{padding-bottom:60vh}.lsh-page dt{font-weight:bold}.lsh-page dd{margin:0 0 12px;overflow-wrap:anywhere}.lsh-switch{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.lsh-page .wrap-text{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:600px){.lsh-grid{grid-template-columns:1fr}.lsh-card{padding:20px}.lsh-nav{gap:12px}.lsh-nav .brand{width:100%}.lsh-actions>button{flex:1}}
