@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}.fixed{position:fixed}.sticky{position:sticky}.flex{display:flex}.hidden{display:none}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}*{margin:0;padding:0;box-sizing:border-box}:root{--accent: #3b82f6;--accent-strong: #2563eb;--danger: #ef4444;--danger-strong: #dc2626;--text: #f8fafc;--text-muted: rgba(248, 250, 252, .68);--glass: rgba(15, 23, 42, .3);--glass-panel: rgba(15, 23, 42, .3);--glass-strong: rgba(15, 23, 42, .5);--glass-item: rgba(15, 23, 42, .36);--glass-item-hover: rgba(30, 41, 59, .5);--blur-item: blur(14px) saturate(150%);--glass-hover: rgba(255, 255, 255, .14);--line: rgba(255, 255, 255, .14);--line-strong: rgba(255, 255, 255, .28);--radius: 16px;--radius-sm: 10px;--shadow: 0 8px 32px rgba(0, 0, 0, .25);--text-shadow: 0 1px 3px rgba(0, 0, 0, .45), 0 0 12px rgba(0, 0, 0, .2);--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text);background:#0f172a}button,input,select{font:inherit}@keyframes favicon-spin{to{transform:rotate(360deg)}}.favicon-spinner{width:24px;height:24px;border:3px solid #e5e7eb;border-top-color:var(--accent-strong);border-radius:50%;animation:favicon-spin .6s linear infinite}.bg-layer{position:fixed;inset:0;z-index:-1;overflow:hidden;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460)}.bg-image{position:absolute;inset:0;background:center / cover no-repeat;opacity:0;transition:opacity 1s ease}.bg-image.loaded{opacity:1}.bg-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#02061780,#0206172e 30%,#02061714 55%,#02061766),radial-gradient(ellipse at 50% 40%,transparent 55%,rgba(2,6,23,.35) 100%)}.page{--gutter: clamp(16px, 2.5vw, 48px);display:flex;flex-direction:column;height:100vh;height:100dvh;padding:0 var(--gutter) clamp(12px,2.5vh,24px)}.topbar{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 0}.site-title{font-size:20px;font-weight:600;letter-spacing:.02em;color:var(--text);text-shadow:var(--text-shadow);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero{display:flex;flex-direction:column;align-items:center;flex-shrink:0;gap:16px;padding:1vh 0 24px}.clock{text-align:center;color:var(--text);text-shadow:0 2px 24px rgba(0,0,0,.45),0 1px 3px rgba(0,0,0,.4);-webkit-user-select:none;-moz-user-select:none;user-select:none;animation:fade-up .8s var(--ease-out) backwards}.clock-time{position:relative;display:inline-block;font-size:clamp(56px,min(6vw,10vh),96px);font-weight:200;line-height:1;letter-spacing:.02em;font-variant-numeric:tabular-nums}.clock-colon{display:inline-block;margin:0 .04em;transform:translateY(-.06em)}.clock-sec{position:absolute;left:100%;bottom:.12em;margin-left:.12em;font-size:.42em;font-weight:300;text-align:left;opacity:.75}.clock-date{margin-top:10px;font-size:15px;font-weight:500;letter-spacing:.08em;color:#f8fafceb;text-shadow:0 1px 2px rgba(0,0,0,.6),0 0 16px rgba(0,0,0,.45)}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}}.search{position:relative;width:100%;max-width:580px;transition:max-width .4s var(--ease-out)}.search:focus-within{max-width:660px}.search-icon{position:absolute;left:20px;top:50%;transform:translateY(-50%);z-index:1;color:var(--text-muted);pointer-events:none}.search-input{width:100%;height:52px;padding:0 52px;border-radius:999px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--text);font-size:16px;outline:none;box-shadow:var(--shadow);transition:border-color .3s,background .3s,box-shadow .3s}.search-input::-moz-placeholder{color:var(--text-muted)}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{border-color:#ffffff59;background:var(--glass-strong);box-shadow:0 0 0 4px #ffffff0f,0 8px 40px #3b82f659}.search-clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;border:none;background:transparent;color:var(--text-muted);font-size:20px;line-height:1;cursor:pointer}.search-clear:hover{background:var(--glass-hover);color:var(--text)}.search-kbd{position:absolute;right:18px;top:50%;transform:translateY(-50%);min-width:22px;height:22px;padding:0 6px;border-radius:6px;border:1px solid var(--line-strong);color:var(--text-muted);font:12px/20px ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center;pointer-events:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);font-size:14px;white-space:nowrap;cursor:pointer;transition:background .2s,border-color .2s}.btn:hover{background:var(--glass-hover);border-color:var(--line-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.btn-primary:hover{background:var(--accent);border-color:var(--accent)}.btn-danger{background:var(--danger-strong);border-color:var(--danger-strong);color:#fff}.btn-danger:hover{background:var(--danger);border-color:var(--danger)}.btn-on{border-color:#4ade8099;color:#bbf7d0}.toolbar{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.layout{flex:1;min-height:0;display:grid;grid-template-columns:clamp(200px,14vw,260px) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:clamp(12px,1.2vw,20px)}.sidebar{display:flex;flex-direction:column;min-height:0}.categories{position:relative;display:flex;flex-direction:column;gap:6px;min-height:0;padding:2px 6px 2px 2px;overflow-y:auto}.scroll-area{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.scroll-area::-webkit-scrollbar{width:4px}.scroll-area::-webkit-scrollbar-thumb{border-radius:2px;background:#ffffff40}.chip{flex-shrink:0;display:flex;align-items:center;width:100%;min-height:40px;padding:0 16px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--glass-item);backdrop-filter:var(--blur-item);-webkit-backdrop-filter:var(--blur-item);color:var(--text);font-size:14px;text-align:left;cursor:pointer;text-shadow:var(--text-shadow);transition:background .25s,color .25s,border-color .25s,box-shadow .25s,padding .25s var(--ease-out)}.chip:hover{background:var(--glass-item-hover);border-color:var(--line-strong);padding-left:20px}.chip[data-sortable]{cursor:grab;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.chip.dragging{position:relative;z-index:2;cursor:grabbing;border-color:var(--accent);box-shadow:0 10px 28px #0006,0 0 0 2px #3b82f68c;transform:scale(1.03)}.chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip.active{background:#fff;border-color:#fff;color:#0f172a;font-weight:600;text-shadow:none;box-shadow:0 4px 16px #fff3;padding-left:16px}.panel{display:flex;flex-direction:column;min-height:0}.panel-head{flex-shrink:0;display:flex;align-items:center;gap:12px;min-height:32px;margin-bottom:12px}.panel-title{min-width:0;padding-left:2px;font-size:16px;font-weight:600;color:var(--text);text-shadow:0 1px 3px rgba(0,0,0,.6),0 0 16px rgba(0,0,0,.45);letter-spacing:.06em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-actions{flex-shrink:0;display:flex;gap:6px}.btn-sm{height:28px;padding:0 12px;font-size:13px}.btn-danger-ghost{border-color:#f871718c;color:#fecaca}.btn-danger-ghost:hover{background:#dc262659;border-color:#f87171cc}.panel-body{flex:1;min-height:0;overflow-y:auto;margin:-6px -6px 0;padding:6px 12px 16px 6px}.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.site-card{position:relative;display:flex;align-items:center;gap:12px;min-width:0;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--glass-item);backdrop-filter:var(--blur-item);-webkit-backdrop-filter:var(--blur-item);box-shadow:0 4px 16px #0000001f;cursor:pointer;transition:background .3s,transform .3s var(--ease-out),border-color .3s,box-shadow .3s;animation:card-in .5s var(--ease-out) backwards}@keyframes card-in{0%{opacity:0;transform:translateY(14px) scale(.96)}}.site-card:before{content:"";position:absolute;inset:-1px;padding:1px;border-radius:inherit;background:radial-gradient(140px circle at var(--mx, -200px) var(--my, -200px),rgba(255,255,255,.55),transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);opacity:0;transition:opacity .4s ease;pointer-events:none}.panel:hover .site-card:before{opacity:1}.site-card:hover{background:var(--glass-item-hover);border-color:var(--line-strong);transform:translateY(-4px);box-shadow:0 12px 28px #00000040}.site-card:hover .site-icon{transform:scale(1.1);box-shadow:0 8px 22px #0000004d,0 0 24px #ffffff40}.site-card:active{transform:translateY(-1px) scale(.97)}.site-card.selected{border-color:var(--accent);background:#3b82f64d}.site-card:focus-visible,.btn:focus-visible,.chip:focus-visible{outline:2px solid rgba(255,255,255,.85);outline-offset:2px}.site-card.skeleton{cursor:default;pointer-events:none}.site-card.skeleton .site-icon,.skeleton-line{background:linear-gradient(90deg,#ffffff1a 25%,#ffffff3d,#ffffff1a 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;box-shadow:none}.skeleton-line{display:block;height:12px;width:80%;border-radius:6px;margin:3px 0}.skeleton-line.short{width:55%}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.site-icon{flex-shrink:0;width:44px;height:44px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 4px 12px #0003;transition:transform .4s var(--ease-spring),box-shadow .3s}.site-favicon{width:64%;height:64%;-o-object-fit:contain;object-fit:contain}.site-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.site-grid.editing .site-card{padding-right:42px}.site-domain{font-size:12px;line-height:16px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:var(--text-shadow)}.site-name{font-size:14px;font-weight:500;line-height:20px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:var(--text-shadow)}.site-select{position:absolute;top:6px;left:6px;z-index:1;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.85);background:#0f172a8c;color:transparent;box-shadow:0 1px 4px #00000059;transition:background .2s,border-color .2s,color .2s,transform .2s var(--ease-spring);pointer-events:none}.site-card.selected .site-select{border-color:#fff;background:var(--accent-strong);color:#fff;transform:scale(1.1)}.site-edit{position:absolute;top:50%;right:6px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;transform:translateY(-50%);transition:background .2s,color .2s}.site-edit:hover{background:#ffffff2e;color:var(--text)}.site-edit:focus-visible{outline:2px solid rgba(255,255,255,.85);outline-offset:1px}.empty{padding:48px 0;text-align:center;color:var(--text);text-shadow:0 1px 3px rgba(0,0,0,.6),0 0 16px rgba(0,0,0,.45)}.modal-mask{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:#0206178c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:mask-in .2s ease}@keyframes mask-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.96)}}.modal{width:100%;max-width:420px;padding:24px;border-radius:var(--radius);background:#fff;color:#0f172a;box-shadow:0 24px 64px #00000059;animation:modal-in .25s var(--ease-out)}.confirm-message{font-size:14px;line-height:1.7;color:#334155}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-title{font-size:18px;font-weight:600;color:#0f172a}.modal-close{width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:#64748b;font-size:22px;line-height:1;cursor:pointer}.modal-close:hover{background:#f1f5f9;color:#0f172a}.field{margin-bottom:16px}.field-label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#334155}.field-input{width:100%;height:40px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid #cbd5e1;background:#fff;color:#0f172a;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}input.field-input[type=file]{height:auto;padding:8px 12px}.field-input:focus{border-color:var(--accent-strong);box-shadow:0 0 0 3px #2563eb26}.field-hint{margin-top:6px;font-size:12px;color:#64748b}.field-error{margin-top:6px;font-size:12px;color:var(--danger-strong)}.form-error{margin-bottom:16px;padding:10px 12px;border-radius:var(--radius-sm);background:#fee2e2;color:#b91c1c;font-size:14px}.form-note{margin-bottom:16px;padding:10px 12px;border-radius:var(--radius-sm);background:#f1f5f9;color:#475569;font-size:14px}.modal-actions{display:flex;gap:8px;margin-top:24px}.modal-actions .mbtn{flex:1}.modal-actions.stacked{flex-direction:column}.modal-actions.stacked .mbtn{flex:none}.modal-actions.stacked .mbtn-secondary{order:1}.mbtn{height:40px;padding:0 16px;border-radius:var(--radius-sm);border:none;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.mbtn:disabled{opacity:.5;cursor:not-allowed}.mbtn-secondary{background:#f1f5f9;color:#475569}.mbtn-secondary:hover:not(:disabled){background:#e2e8f0}.mbtn-primary{background:var(--accent-strong);color:#fff}.mbtn-primary:hover:not(:disabled){background:#1d4ed8}.mbtn-danger{background:var(--danger-strong);color:#fff}.mbtn-danger:hover:not(:disabled){background:#b91c1c}.mbtn:focus-visible,.modal-close:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.toast-stack{position:fixed;left:50%;bottom:28px;z-index:2000;display:flex;flex-direction:column;align-items:center;gap:8px;transform:translate(-50%);pointer-events:none}.toast{max-width:min(420px,calc(100vw - 32px));padding:10px 18px;border-radius:999px;border:1px solid var(--line);background:#0f172ac7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--text);font-size:14px;box-shadow:var(--shadow);animation:toast-in .3s var(--ease-out)}.toast-success{border-color:#4ade8080}.toast-error{border-color:#f8717199;color:#fecaca}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}@media(hover:none){.site-card:before{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(min-width:641px)and (max-height:800px){.topbar{padding:14px 0}.hero{gap:12px;padding:0 0 18px}.clock-date{margin-top:6px}}@media(max-width:640px){.page{padding:0 12px 12px}.topbar{padding:12px 0}.site-title{font-size:18px}.hero{padding:0 0 12px;gap:10px}.clock-time{font-size:44px}.clock-date{margin-top:4px;font-size:12px}.search-input{height:44px}.panel-body{margin:-4px -4px 0;padding:4px 6px 12px 4px}.site-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.site-card{padding:10px;gap:10px}.site-name{font-size:13px}.search-kbd{display:none}.layout{grid-template-columns:92px minmax(0,1fr);gap:8px}.categories{gap:6px;padding:2px 4px 2px 2px}.chip{justify-content:center;min-height:48px;padding:6px;font-size:13px;line-height:17px;text-align:center}.chip:hover,.chip.active{padding-left:6px}.chip-label{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;white-space:normal;overflow-wrap:anywhere}.site-icon{width:36px;height:36px;border-radius:10px}}
