:root{color-scheme:light;--navy-950: #0f1b4d;--navy-900: #172554;--navy-800: #1e3a8a;--navy-700: #1e40af;--navy-600: #2547b8;--navy-tint: rgb(255 255 255 / 7%);--navy-tint-strong: rgb(255 255 255 / 13%);--navy-line: rgb(255 255 255 / 10%);--on-navy: #fff;--on-navy-soft: rgb(255 255 255 / 76%);--on-navy-faint: rgb(255 255 255 / 52%);--on-navy-date: #a9c8ff;--soft-date: #4e6aa8;--accent: #1e3a8a;--accent-hover: #1e40af;--accent-soft: #eaeffc;--accent-text: #1d3d99;--focus: #3b5bdb;--selection: rgb(59 91 219 / 18%);--text: #1f2328;--text-soft: #59606b;--text-faint: #8b919c;--surface: #fff;--surface-2: #f7f8fa;--surface-3: #eef1f5;--hover: rgb(31 35 40 / 5%);--border: #e4e7ec;--border-strong: #d2d7df;--danger: #c92a2a;--danger-soft: #fdecec;--success: #2b8a3e;--success-soft: #e8f6eb;--warning: #c46b00;--warning-soft: #fff3e0;--callout-info: #eaf2fe;--callout-warn: #fdf4d6;--radius-s: 6px;--radius-m: 10px;--radius-l: 14px;--shadow-1: 0 1px 2px rgb(16 24 40 / 6%), 0 1px 3px rgb(16 24 40 / 10%);--shadow-2: 0 12px 32px rgb(16 24 40 / 16%), 0 2px 6px rgb(16 24 40 / 8%);--shadow-3: 0 24px 64px rgb(16 24 40 / 24%);--font: ui-sans-serif, -apple-system, blinkmacsystemfont, "Segoe UI Variable Display", "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif;--mono: ui-monospace, sfmono-regular, menlo, consolas, monospace;--sidebar-width: 264px;--content-width: 720px;--topbar-height: 52px;--bottombar-height: 60px;--ease: cubic-bezier(.2, .7, .2, 1);--fast: .14s;--medium: .22s;--c-default: #59606b;--c-gray: #8a8f98;--c-brown: #8d5b42;--c-orange: #d9730d;--c-yellow: #c29312;--c-green: #2f8f5b;--c-blue: #2f6fe0;--c-purple: #7c4dbd;--c-pink: #c2477f;--c-red: #d14343}@media(prefers-reduced-motion:reduce){:root{--fast: 0ms;--medium: 0ms}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;height:100%;-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100%;background:var(--surface);color:var(--text);font:16px/1.5 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-wrap:anywhere}::selection{background:var(--selection)}a{color:var(--accent-text);text-decoration:none}@media(hover:hover){a:hover{text-decoration:underline;text-underline-offset:2px}}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-s)}img,svg{display:block;max-width:100%}[hidden]{display:none!important}.title-date{color:var(--title-date, var(--text-soft));font-weight:400}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.icon{display:inline-grid;place-items:center;flex:none;width:var(--icon-size, 18px);height:var(--icon-size, 18px);color:var(--icon-color, currentcolor)}.icon svg{width:100%;height:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:0 14px;border:1px solid transparent;border-radius:var(--radius-s);background:var(--surface-3);color:var(--text);font-size:14px;font-weight:550;line-height:1;white-space:nowrap;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}@media(hover:hover){.btn:hover{background:var(--border)}}.btn--primary{background:var(--accent);color:#fff;box-shadow:0 1px 2px #1e3a8a4d}@media(hover:hover){.btn--primary:hover{background:var(--accent-hover)}}.btn--ghost{background:transparent}@media(hover:hover){.btn--ghost:hover{background:var(--hover)}}.btn--danger{background:var(--danger);color:#fff}@media(hover:hover){.btn--danger:hover{background:#a61e1e}}.btn:disabled{opacity:.55;cursor:default}.icon-btn{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:var(--radius-s);background:transparent;color:var(--text-soft);transition:background var(--fast) var(--ease)}@media(hover:hover){.icon-btn:hover{background:var(--hover);color:var(--text)}}.icon-btn--star[aria-pressed=true]{color:var(--c-yellow)}.icon-btn--star[aria-pressed=true] svg{fill:currentcolor}@media(pointer:coarse){.icon-btn{width:44px;height:44px}.btn{min-height:44px}}.field{display:grid;gap:6px;margin:0 0 16px}.field>label,.field__label{font-size:13px;font-weight:600;color:var(--text-soft)}.input,.select,.textarea{width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-s);background:var(--surface);font-size:16px;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px #3b5bdb2e}.textarea{min-height:96px;resize:vertical}.single-line{display:block;line-height:22px;white-space:pre;overflow:hidden;overflow-wrap:normal;resize:none}.hint{margin:0;font-size:13px;color:var(--text-faint)}.error-text{margin:0;font-size:13px;color:var(--danger)}.segmented{display:inline-flex;padding:3px;border-radius:var(--radius-m);background:var(--surface-3)}.segmented button{min-height:30px;padding:0 12px;border:0;border-radius:7px;background:transparent;color:var(--text-soft);font-size:13px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}.menu{position:fixed;z-index:60;min-width:220px;max-width:min(320px,calc(100vw - 16px));max-height:min(420px,calc(100dvh - 16px));overflow:auto;padding:6px;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);box-shadow:var(--shadow-2);animation:pop-in var(--fast) var(--ease)}.menu__item{display:flex;align-items:center;gap:10px;width:100%;min-height:32px;padding:6px 10px;border:0;border-radius:var(--radius-s);background:transparent;color:var(--text);font-size:14px;text-align:left}.menu__item[aria-selected=true]{background:var(--hover)}@media(hover:hover){.menu__item:hover{background:var(--hover)}}.menu__item--danger{color:var(--danger)}.menu__item .icon{color:var(--text-soft)}.menu__hint{margin-left:auto;color:var(--text-faint);font-size:12px}.menu__separator{height:1px;margin:6px 4px;background:var(--border)}.menu__label{padding:6px 10px 4px;color:var(--text-faint);font-size:12px;font-weight:600}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.dialog{width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;border:0;border-radius:var(--radius-l);background:var(--surface);color:var(--text);box-shadow:var(--shadow-3);overscroll-behavior:contain}.dialog *,.menu{overscroll-behavior:contain}.is-scroll-locked{scrollbar-gutter:stable}.is-scroll-locked,.is-scroll-locked body{overflow:hidden}@media(hover:none){.is-scroll-locked body{position:fixed;right:0;width:100%}}.dialog::backdrop{background:#0f1b4d61;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog[open]{animation:pop-in var(--medium) var(--ease)}.dialog__body{padding:24px}.dialog__title{margin:0 0 8px;font-size:18px;font-weight:650}.dialog__text{margin:0 0 16px;color:var(--text-soft)}.dialog__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}@media not (min-width:640px){.dialog{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:var(--radius-l) var(--radius-l) 0 0;padding-bottom:env(safe-area-inset-bottom)}.dialog--sheet .menu__item{min-height:48px;font-size:16px}.dialog__actions{flex-direction:column-reverse}.dialog__actions .btn{width:100%}}.lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#080e24f0;color:#fff;overscroll-behavior:contain}.lightbox[open]{display:flex;flex-direction:column}.lightbox::backdrop{background:transparent}.lightbox__bar{display:flex;flex:none;align-items:center;gap:4px;padding:max(8px,env(safe-area-inset-top)) 12px 8px 20px}.lightbox__title{flex:1;min-width:0;overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.lightbox .lightbox__button{width:44px;height:44px;color:#fff}@media(hover:hover){.lightbox .lightbox__button:hover{background:#ffffff1f;color:#fff}}.lightbox__stage{display:grid;flex:1;place-items:center;min-height:0;padding:0 12px max(12px,env(safe-area-inset-bottom))}.lightbox__image{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-s)}.page-modal{position:fixed;z-index:55;inset:0;display:grid;place-items:start center;padding:6dvh 24px;background:#0f172a6b;animation:fade-in var(--fast) var(--ease)}body:has(>.page-modal) .link-bubble{z-index:56}.page-modal__panel{display:flex;flex-direction:column;width:min(calc(var(--content-width) + 96px),100%);height:88dvh;overflow:hidden;border-radius:var(--radius-l);background:var(--surface);box-shadow:var(--shadow-3)}.page-modal__bar{display:flex;flex:none;align-items:center;gap:4px;min-height:48px;padding:6px 8px 6px 16px;border-bottom:1px solid var(--border)}.page-modal__status{flex:1;min-width:0;color:var(--text-faint);font-size:13px}.page-modal__body{flex:1;overflow:auto;overscroll-behavior:contain}.page-modal__body .page{min-height:100%;padding:24px 48px 48px;animation:none}.toasts{position:fixed;z-index:80;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));display:grid;gap:8px;transform:translate(-50%);pointer-events:none}.toast{display:flex;align-items:center;gap:12px;min-width:240px;max-width:calc(100vw - 32px);padding:10px 14px;border-radius:var(--radius-m);background:var(--navy-900);color:var(--on-navy);font-size:14px;box-shadow:var(--shadow-2);pointer-events:auto;animation:pop-in var(--medium) var(--ease)}.toast--error{background:var(--danger)}.toast__action{margin-left:auto;border:0;background:transparent;color:#c7d6ff;font-weight:650}@media not (min-width:640px){.toasts{bottom:calc(var(--bottombar-height) + 16px + env(safe-area-inset-bottom))}}.chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:1px 8px;border-radius:999px;background:color-mix(in srgb,var(--chip, var(--c-gray)) 16%,white);color:color-mix(in srgb,var(--chip, var(--c-gray)) 70%,black);font-size:12px;font-weight:550;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px;font-weight:700}.empty{display:grid;justify-items:center;gap:12px;padding:64px 24px;color:var(--text-faint);text-align:center}.empty .icon{--icon-size: 40px;color:var(--border-strong)}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--radius-s);background:linear-gradient(90deg,var(--surface-3),var(--surface-2),var(--surface-3));background-size:200% 100%;animation:shimmer 1.2s ease-in-out infinite}@keyframes shimmer{to{background-position:-200% 0}}.space-opening{position:fixed;inset:0;z-index:58;background:color-mix(in srgb,var(--surface) 75%,transparent);animation:space-opening-in .15s ease}.space-opening.is-ending{pointer-events:none}.space-opening__box{display:flex;align-items:center;gap:10px;width:max-content;margin:40vh auto 0;padding:10px 16px;border-radius:var(--radius-m);background:var(--surface);box-shadow:var(--shadow-2);color:var(--text-soft)}@keyframes space-opening-in{0%{opacity:0}}.view-opening{position:fixed;top:40%;left:50%;z-index:57;display:flex;align-items:center;justify-content:center;gap:10px;width:min(320px,calc(100vw - 32px));padding:10px 16px;border-radius:var(--radius-m);background:var(--surface);box-shadow:var(--shadow-2);color:var(--text-soft);white-space:nowrap;pointer-events:none;transform:translate(-50%);transition:opacity .15s ease}.view-opening[hidden]{display:none}.view-opening .spinner{flex:none}.space-opening.is-leaving,.view-opening.is-leaving{opacity:0;transition:opacity .15s ease}@media(prefers-reduced-motion:reduce){.space-opening{animation:none}.view-opening,.view-opening.is-leaving{transition:none}}.view-opening__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:1024px){body:has(>#app>.app:not(.is-collapsed))>.view-opening{left:calc(50% + var(--sidebar-width) / 2)}}.offline-mark{display:inline-flex;flex:none;align-items:center;gap:4px;height:24px;margin-right:6px;padding:0 8px;border-radius:999px;background:var(--warning-soft);color:var(--warning);font-size:12px;font-weight:600;white-space:nowrap}.topbar:has(.save-state[data-state=offline]) .offline-mark{display:none}.sidebar .offline-mark{display:none}.offline-notice__title{margin:0;color:var(--text);font-weight:600}.offline-notice__text{margin:0}.search-offline{margin:20px 2px 0;color:var(--warning);font-size:13px}body{background:radial-gradient(1200px 600px at 10% -10%,rgb(255 255 255 / 10%),transparent 60%),linear-gradient(160deg,var(--navy-800) 0%,var(--navy-950) 100%);min-height:100dvh}.login{display:grid;place-items:center;min-height:100dvh;padding:24px 16px}.login__card{width:100%;max-width:400px;padding:36px 32px 28px;border-radius:var(--radius-l);background:var(--surface);box-shadow:var(--shadow-3)}.login__mark{width:48px;height:48px;margin:0 0 18px;border-radius:12px}.login h1{margin:0 0 6px;font-size:26px;font-weight:750;letter-spacing:-.01em}.login__intro{margin:0 0 24px;color:var(--text-soft)}.login form{display:grid;gap:6px}.login label{margin-top:10px;color:var(--text-soft);font-size:13px;font-weight:600}.login input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-s);font-size:16px;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.login input:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px #3b5bdb2e}.login button[type=submit]{min-height:46px;margin-top:20px;border:0;border-radius:var(--radius-s);background:var(--accent);color:#fff;font-size:15px;font-weight:650;box-shadow:0 1px 2px #1e3a8a4d;transition:background var(--fast) var(--ease)}@media(hover:hover){.login button[type=submit]:hover{background:var(--accent-hover)}}.login__error,.login__notice{margin:0 0 12px;padding:10px 12px;border-radius:var(--radius-s);font-size:14px}.login__error{background:var(--danger-soft);color:var(--danger)}.login__notice{background:var(--success-soft);color:var(--success)}.login__links{margin:20px 0 0;font-size:14px;text-align:center}.login__languages{margin-top:16px;color:var(--text-faint);font-size:13px;text-align:center}.install-banner{position:fixed;inset:auto 12px calc(12px + env(safe-area-inset-bottom));z-index:70;display:flex;align-items:center;gap:12px;max-width:480px;margin:0 auto;padding:12px 14px;border-radius:var(--radius-m);background:var(--surface);box-shadow:var(--shadow-2);font-size:14px}
