:root{--bg: #10141c;--surface: #1b2330;--surface-hi: #212b3a;--line: rgb(255 255 255 / 7%);--line-strong: rgb(255 255 255 / 12%);--text: #e7edf6;--text-soft: #94a3b8;--text-faint: #64748b;--accent: #75a9ff;--accent-soft: rgb(117 169 255 / 12%);--danger: #f87171;--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Microsoft YaHei", system-ui, sans-serif;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--s8: 64px;--r-btn: 10px;--r-input: 14px;--r-card: 14px;--r-dialog: 18px;--ease: cubic-bezier(.22, .61, .36, 1);--t-fast: .12s;--t-mid: .14s;--t-dialog: .18s;--page-max: 1040px;--pad-x: clamp(20px, 4vw, 48px)}:root{color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{min-height:100%}body{margin:0;background-color:var(--bg);background-image:radial-gradient(1100px 520px at 50% -12%,rgb(117 169 255 / 7%),transparent 68%);background-repeat:no-repeat;background-attachment:fixed;color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}input{font:inherit;color:inherit}a{color:inherit;text-decoration:none}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-btn)}::selection{background:#75a9ff42;color:#fff}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.app{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}.topbar,.stage{width:100%;max-width:var(--page-max);margin-inline:auto;padding-inline:var(--pad-x)}.topbar{display:flex;justify-content:flex-end;align-items:center;height:56px;flex:none}.stage{flex:1;padding-bottom:var(--s8)}.clock{text-align:center;margin-top:clamp(16px,7vh,88px)}.clock-time{font-size:clamp(2.5rem,6.5vw,4rem);font-weight:300;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text)}.clock-meta{margin-top:var(--s3);font-size:.9375rem;color:var(--text-soft)}.search{position:relative;display:flex;align-items:center;gap:var(--s2);width:min(640px,100%);margin:clamp(24px,4.5vh,40px) auto 0;height:56px;padding:0 var(--s2) 0 var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-input, 14px);transition:border-color var(--t-mid) var(--ease),box-shadow var(--t-mid) var(--ease)}.search:focus-within{border-color:#75a9ff8c;box-shadow:0 0 0 3px var(--accent-soft)}.search-icon{display:grid;place-items:center;color:var(--text-faint);flex:none;transition:color var(--t-mid) var(--ease)}.search:focus-within .search-icon{color:var(--accent)}.search-input{flex:1;min-width:0;height:100%;background:none;border:0;outline:none;font-size:1.0625rem;color:var(--text)}.search-input::placeholder{color:var(--text-faint)}.search-kbd{flex:none;padding:2px 7px;font-family:inherit;font-size:.6875rem;line-height:1.4;color:var(--text-faint);border:1px solid var(--line);border-radius:6px;transition:opacity var(--t-mid) var(--ease)}.search-kbd.is-hidden{opacity:0}.engine{display:inline-flex;align-items:center;gap:5px;flex:none;height:38px;padding:0 var(--s3);border-radius:var(--r-btn);font-size:.8125rem;color:var(--text-soft);transition:background var(--t-fast) var(--ease)}.engine:hover{background:var(--surface-hi);color:var(--text)}.engine-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:20;min-width:148px;padding:var(--s1);background:#1a222e;border:1px solid var(--line-strong);border-radius:var(--r-card);box-shadow:0 16px 40px #00000073}.engine-option{display:block;width:100%;padding:8px var(--s3);border-radius:8px;text-align:left;font-size:.875rem;color:var(--text-soft)}.engine-option:hover{background:var(--surface-hi);color:var(--text)}.engine-option.is-active{color:var(--accent)}.groups{display:grid;grid-template-columns:1fr;gap:clamp(24px,4vh,36px) var(--s7);margin-top:clamp(28px,5vh,52px)}@media(min-width:760px){.groups{grid-template-columns:repeat(2,minmax(0,1fr))}}.group-head{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s2)}.group-title{font-size:.75rem;font-weight:500;letter-spacing:.04em;color:var(--text-faint)}.group-add{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;color:var(--text-faint);opacity:.7;transition:opacity var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.group:hover .group-add{opacity:1}.group-add:hover,.group-add:focus-visible{background:var(--surface-hi);color:var(--text)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,100px);gap:6px;justify-content:start}.tile{position:relative}.tile-link{display:flex;flex-direction:column;align-items:center;gap:9px;padding:14px 6px 12px;border:1px solid transparent;border-radius:var(--r-card);transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.tile-link:hover,.tile-link:focus-visible{background:var(--surface);border-color:var(--line)}.tile-icon{display:grid;place-items:center;width:40px;height:40px;border:1px solid transparent;border-radius:12px;font-size:.9375rem;font-weight:500;color:#ffffffeb;overflow:hidden;user-select:none}.tile-icon img{width:100%;height:100%;object-fit:cover}.tile-name{width:100%;font-size:.8125rem;line-height:1.35;color:var(--text-soft);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--t-fast) var(--ease)}.tile-link:hover .tile-name{color:var(--text)}.tile-more{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:22px;height:22px;border-radius:7px;color:var(--text-soft);background:var(--surface-hi);opacity:0;transition:opacity var(--t-fast) var(--ease)}.tile:hover .tile-more,.tile:focus-within .tile-more{opacity:1}.tile-more:hover{color:var(--text)}@media(hover:none){.tile-more,.group-add{opacity:1}.search-kbd{display:none}}.group-empty{font-size:.8125rem;color:var(--text-faint);padding:var(--s2) 0}.stage-empty{margin-top:clamp(32px,6vh,64px);font-size:.875rem;color:var(--text-faint)}.link-btn{color:var(--accent);font:inherit}.link-btn:hover{text-decoration:underline}.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:var(--s4);background:#06090ead}.modal-panel{width:min(520px,100%);max-height:min(86vh,720px);display:flex;flex-direction:column;background:#171f2b;border:1px solid var(--line-strong);border-radius:var(--r-dialog);box-shadow:0 28px 72px #0000008c}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:18px var(--s5) var(--s3)}.modal-title{font-size:1rem;font-weight:500}.modal-body{padding:0 var(--s5);overflow-y:auto}.modal-footer{display:flex;align-items:center;gap:var(--s2);padding:var(--s4) var(--s5) 18px;border-top:1px solid var(--line);flex-wrap:wrap}.form{display:flex;flex-direction:column;gap:14px;padding:var(--s2) 0 var(--s3)}.field{display:flex;flex-direction:column;gap:6px}.field-label{display:flex;align-items:baseline;gap:var(--s2);font-size:.75rem;color:var(--text-soft)}.field-note{font-size:.6875rem;color:var(--text-faint)}.field-input{width:100%;height:38px;padding:0 var(--s3);background:#0d1219;border:1px solid var(--line-strong);border-radius:var(--r-btn);font-size:.875rem;color:var(--text);outline:none;transition:border-color var(--t-mid) var(--ease),box-shadow var(--t-mid) var(--ease)}.field-input::placeholder{color:var(--text-faint);opacity:.72}.field-input:focus{border-color:#75a9ff99;box-shadow:0 0 0 3px var(--accent-soft)}.field-input.has-error{border-color:#f871718c}select.field-input{appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2394a3b8' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.field-input-sm{height:32px;font-size:.8125rem}.field-error{font-size:.75rem;color:#fca5a5}.btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r-btn);font-size:.875rem;white-space:nowrap;color:var(--text);background:transparent;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.btn:hover{background:var(--surface-hi)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:transparent;color:#0b1220;font-weight:500}.btn-primary:hover{background:#8db8ff}.btn-danger{background:#f8717124;border-color:#f8717152;color:#fca5a5}.btn-danger:hover{background:#f8717138}.btn-left{margin-right:auto}.confirm-text{margin-right:auto;font-size:.8125rem;color:var(--text-soft)}.icon-btn{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;color:var(--text-soft);transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.icon-btn:hover{background:var(--surface-hi);color:var(--text)}.icon-btn-sm{width:26px;height:26px;border-radius:7px}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.icon-btn:disabled:hover{background:none;color:var(--text-soft)}.text-btn{padding:4px 7px;border-radius:6px;font-size:.75rem;white-space:nowrap;color:var(--text-soft);transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.text-btn:hover{background:var(--surface-hi);color:var(--text)}.text-danger{color:#fca5a5}.text-danger-subtle{color:var(--text-faint)}.text-danger-subtle:hover{color:#fca5a5}.settings{display:flex;flex-direction:column;gap:var(--s5);padding:var(--s2) 0 var(--s3)}.settings-section{display:flex;flex-direction:column;gap:var(--s3)}.settings-title{font-size:.75rem;font-weight:500;color:var(--text-faint)}.settings-section>.text-btn{align-self:flex-start}.settings-note{font-size:.75rem;line-height:1.65;color:var(--text-faint)}.segmented{display:inline-flex;gap:3px;padding:3px;width:fit-content;background:#0d1219;border:1px solid var(--line);border-radius:11px}.segment{padding:6px 13px;border-radius:8px;font-size:.8125rem;color:var(--text-soft);transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.segment:hover{color:var(--text)}.segment.is-active{background:var(--surface-hi);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}.cat-list{display:flex;flex-direction:column;gap:6px}.cat-row{display:flex;align-items:center;gap:var(--s2)}.cat-row .field-input{flex:1 1 auto;width:auto;min-width:0}.cat-count{flex:none;min-width:36px;font-size:.75rem;color:var(--text-faint);text-align:right}.cat-actions{display:flex;align-items:center;gap:2px;flex:none}.add-cat{display:flex;gap:var(--s2)}.add-cat .field-input{flex:1 1 auto;width:auto;min-width:0}.data-actions{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.data-message{font-size:.75rem;color:#86efac}.data-message.is-error{color:#fca5a5}@media(max-width:640px){.topbar{height:48px}.clock{margin-top:clamp(8px,4vh,40px)}.search{height:50px;padding-left:var(--s3)}.search-input{font-size:1rem}.engine{height:34px;padding:0 10px}.tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.tile-name{font-size:.75rem}.search-kbd{display:none}.tile-link{padding:10px 4px 9px;gap:7px}.tile-icon{width:36px;height:36px;border-radius:11px}.modal{place-items:end center;padding:0}.modal-panel{width:100%;max-height:92vh;border-radius:var(--r-dialog) var(--r-dialog) 0 0;border-bottom:0}.modal-body{padding:0 var(--s4)}.modal-head,.modal-footer{padding-inline:var(--s4)}.cat-count{display:none}}
