@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500;600&family=Manrope:wght@600;700;800&display=swap";:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#111;background:#f4f4f1;font-family:Inter,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth;font-size:14px}body{background:radial-gradient(circle at 0 0,#1c1c1c14,#0000 24rem),radial-gradient(circle at 100% 0,#ffffffe6,#0000 20rem),linear-gradient(#fafaf8 0%,#f3f2ee 45%,#eceae5 100%);min-width:320px;min-height:100vh;margin:0}body:before{content:"";pointer-events:none;opacity:.5;background-image:linear-gradient(#11111106 1px,#0000 1px),linear-gradient(90deg,#11111106 1px,#0000 1px);background-size:120px 120px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(circle,#000 35%,#0000 80%);mask-image:radial-gradient(circle,#000 35%,#0000 80%)}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}#root{min-height:100vh}.app-shell{background:var(--page-bg);min-height:100vh;color:var(--text-main);padding:0}.app-shell[data-theme=light]{--page-bg:#fff;--panel-bg:#fff;--panel-subtle:#f7f7f7;--panel-strong:#f1f1f1;--sidebar-bg:#fff;--border:#1111111a;--text-main:#111;--text-soft:#11111194;--text-faint:#1116;--button-bg:#111;--button-text:#fff;--chip-bg:#1111110f;--danger-bg:#111;--danger-text:#fff;--modal-bg:#fff;--shadow:0 24px 64px #00000014}.app-shell[data-theme=dark]{--page-bg:#0b0b0b;--panel-bg:#111;--panel-subtle:#141414;--panel-strong:#1c1c1c;--sidebar-bg:#101010;--border:#ffffff1a;--text-main:#f5f5f5;--text-soft:#f5f5f59e;--text-faint:#f5f5f566;--button-bg:#f5f5f5;--button-text:#111;--chip-bg:#ffffff14;--danger-bg:#f5f5f5;--danger-text:#111;--modal-bg:#111;--shadow:0 30px 80px #0000005c}.workspace{background:var(--panel-bg);min-height:100vh;box-shadow:none;border:0;border-radius:0;grid-template-columns:280px minmax(0,1fr);display:grid;overflow:visible}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);flex-direction:column;gap:16px;padding:0;display:flex}.modal-subtitle,.plain-tip,.toolbar-desc{color:var(--text-soft)}.text-input,.text-area,.search-input{border:1px solid var(--border);background:var(--panel-subtle);width:100%;min-height:46px;color:var(--text-main);border-radius:14px;outline:none;padding:0 14px}.text-area{resize:vertical;min-height:120px;padding:12px 14px}.import-text-area{min-height:180px}.text-input::placeholder,.text-area::placeholder,.search-input::placeholder{color:var(--text-faint)}.primary-btn,.secondary-btn,.danger-btn,.ghost-btn,.card-btn{border:0;border-radius:14px;min-height:42px;padding:0 14px;font-weight:600}.primary-btn{background:var(--button-bg);color:var(--button-text)}.secondary-btn,.card-btn{background:var(--panel-strong);color:var(--text-main);border:1px solid var(--border)}.danger-btn{background:var(--danger-bg);color:var(--danger-text)}.ghost-btn{min-height:auto;color:var(--text-soft);background:0 0;padding:0}.primary-btn:disabled,.secondary-btn:disabled,.danger-btn:disabled{cursor:wait;opacity:.72}.collection-list{gap:4px;min-width:0;padding:10px 12px 0;display:grid;overflow:hidden auto}.collection-item{width:100%;color:var(--text-main);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:space-between;align-items:center;min-width:0;padding:10px 10px 10px 12px;transition:background .16s,color .16s;display:flex;position:relative;overflow:hidden}.collection-item:before{content:"";opacity:0;background:#111111c7;border-radius:999px;width:3px;transition:opacity .16s;position:absolute;top:8px;bottom:8px;left:0}.collection-main{flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.collection-main span:last-child{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;display:block;overflow:hidden}.collection-icon{border:1px solid var(--border);background:var(--panel-strong);border-radius:10px;flex:0 0 32px;justify-content:center;align-items:center;width:32px;height:32px;font-size:.86rem;font-weight:700;display:inline-flex;position:relative;overflow:hidden}.collection-icon img{object-fit:cover;width:100%;height:100%}.collection-icon .icon-badge-text{text-align:center;white-space:nowrap;font-size:.95em;font-weight:700;line-height:1;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-54%)}.collection-item.active{color:var(--text-main);background:#11111114}.collection-item.active:before{opacity:1;background:#111111d1}.collection-item:hover{background:#1111110d}.app-shell[data-theme=dark] .collection-item:hover{background:#ffffff0f}.app-shell[data-theme=dark] .collection-item.active{color:var(--text-main);background:#ffffff1a}.app-shell[data-theme=dark] .collection-item.active:before{background:#ffffffdb}.collection-meta{opacity:.7;font-size:.84rem}.collection-item.active .collection-meta{opacity:.9}.collection-side{flex:none;align-items:center;gap:6px;min-width:0;padding-left:8px;display:inline-flex}.collection-edit-icon{width:26px;height:26px;color:var(--text-soft);background:0 0;border:1px solid #0000;border-radius:999px;font-size:.88rem;line-height:1;transition:background .14s,color .14s,border-color .14s,transform .14s}.collection-item.active .collection-edit-icon{color:var(--text-main);background:#11111114}.app-shell[data-theme=dark] .collection-item.active .collection-edit-icon{background:#ffffff14}.content{background:var(--panel-bg);flex-direction:column;display:flex}.toolbar{border-bottom:1px solid var(--border);justify-content:center;align-items:center;min-height:92px;padding:22px 24px;display:flex;position:relative}.toolbar-right{justify-content:center;width:min(420px,100% - 140px);display:flex}.toolbar-action-btn{border:1px solid var(--border);background:var(--panel-strong);height:46px;color:var(--text-main);border-radius:14px;padding:0 16px;font-weight:700;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;position:absolute;top:50%;left:24px;transform:translateY(-50%)}.auth-screen{--panel-bg:#ffffff7a;--panel-subtle:#ffffff4d;--border:#1111111a;--text-main:#111;--text-faint:#11111157;--button-bg:#111;--button-text:#fff;isolation:isolate;background:#f8f5ef;place-items:center;min-height:100vh;padding:24px;display:grid;position:relative;overflow:hidden}.auth-screen:before,.auth-screen:after{content:"";z-index:-1;pointer-events:none;position:absolute;inset:0}.auth-screen:before{filter:blur(18px);background:radial-gradient(circle at 18% 16%,#d4b88a66,#0000 24%),radial-gradient(circle at 84% 78%,#6f84a538,#0000 22%),linear-gradient(#ffffff73,#ffffff1a);transform:scale(1.04)}.auth-screen:after{display:none}.auth-card{-webkit-backdrop-filter:blur(28px)saturate(140%);background:linear-gradient(#ffffff94,#ffffff5c);border:1px solid #ffffff94;border-radius:24px;gap:14px;width:min(420px,100%);padding:28px;display:grid;position:relative;box-shadow:0 24px 60px #00000014,inset 0 1px #ffffff85}.auth-card:before{content:"";pointer-events:none;border:1px solid #ffffff57;border-radius:23px;position:absolute;inset:1px}.auth-title{color:var(--text-main);font-size:1.4rem;font-weight:800}.auth-input{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.auth-submit,.search-input{width:100%}.content-body{gap:14px;padding:20px 24px 24px;display:grid}.plain-tip.large{padding-top:20px;font-size:1rem}.card-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;display:grid}.resource-card,.add-card{border:1px solid var(--border);background:var(--panel-subtle);text-align:left;border-radius:22px;flex-direction:column;height:320px;padding:18px;transition:transform .18s,border-color .18s,box-shadow .18s,background .18s;display:flex;position:relative;overflow:hidden}.resource-card:hover,.add-card:hover{border-color:#1111112e;transform:translateY(-3px);box-shadow:0 18px 40px #00000014}.app-shell[data-theme=dark] .resource-card:hover,.app-shell[data-theme=dark] .add-card:hover{border-color:#ffffff2e;box-shadow:0 18px 42px #00000047}.resource-card{cursor:pointer;touch-action:none}.resource-card.sorting-placeholder{visibility:hidden;box-shadow:none}.resource-card.drag-overlay{cursor:grabbing;pointer-events:none;box-shadow:0 24px 54px #0000002e}.app-shell[data-theme=dark] .resource-card.drag-overlay{box-shadow:0 26px 56px #00000057}.card-tools{gap:8px;display:grid;position:absolute;top:12px;right:12px}.card-delete{width:28px;height:28px;color:var(--text-faint);background:0 0;border:0;border-radius:999px;font-size:1.2rem;line-height:1;transition:background .14s,color .14s,transform .14s}.card-edit-icon{border:1px solid var(--border);background:var(--panel-bg);width:28px;height:28px;color:var(--text-soft);border-radius:999px;font-size:.88rem;line-height:1;transition:background .14s,color .14s,border-color .14s,transform .14s}.card-delete:hover,.card-edit-icon:hover,.collection-edit-icon:hover,.add-collection-wide:hover,.tag-suggestion-btn:hover,.primary-btn:hover,.secondary-btn:hover,.danger-btn:hover,.card-btn:hover{transform:translateY(-1px)}.card-delete:hover{background:var(--panel-bg);color:var(--text-main)}.card-edit-icon:hover,.collection-edit-icon:hover{background:var(--panel-strong);color:var(--text-main);border-color:#1113}.app-shell[data-theme=dark] .card-edit-icon:hover,.app-shell[data-theme=dark] .collection-edit-icon:hover{border-color:#ffffff2e}.card-top{justify-content:flex-start;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.card-heading{min-width:0;min-height:52px;padding-right:44px;display:flex}.card-heading.single-line{align-items:center}.card-heading.multi-line{align-items:flex-start}.card-favicon{border:1px solid var(--border);background:var(--panel-bg);border-radius:14px;flex:0 0 52px;justify-content:center;align-items:center;width:52px;height:52px;font-size:1rem;font-weight:700;display:inline-flex;overflow:hidden}.card-favicon img{object-fit:cover;flex-shrink:0;width:100%;height:100%}.card-body{flex:auto;grid-template-rows:auto auto minmax(0,1fr) auto;gap:10px;min-height:0;display:grid}.card-title{-webkit-line-clamp:2;overflow-wrap:anywhere;word-break:break-word;-webkit-box-orient:vertical;margin:0;font-size:1.1rem;line-height:1.35;display:-webkit-box;overflow:hidden}.card-tag-list{flex-wrap:wrap;gap:8px;display:flex}.card-tag-chip{border:1px solid var(--border);background:var(--panel-bg);color:var(--text-main);border-radius:999px;align-items:center;padding:7px 12px;font-size:.8rem;line-height:1;display:inline-flex}.card-desc{color:var(--text-soft);-webkit-line-clamp:6;-webkit-box-orient:vertical;grid-row:3;margin:0;line-height:1.65;display:-webkit-box;overflow:hidden}.card-url{color:var(--text-faint);word-break:break-all;-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-row:4;align-self:end;margin:0;font-family:JetBrains Mono,monospace;font-size:.8rem;display:-webkit-box;overflow:hidden}.add-card{background:var(--panel-strong);justify-content:center;align-items:center;gap:10px}.add-icon{font-size:3rem;line-height:1}.add-title{font-family:Manrope,sans-serif;font-size:1.2rem;font-weight:700}.add-desc{color:var(--text-soft);font-size:.92rem}.add-collection-wide,.theme-icon-btn{border:1px solid var(--border);background:var(--panel-strong);height:46px;color:var(--text-main);border-radius:14px;line-height:1;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s}.add-collection-wide{width:calc(100% - 44px);margin:22px 22px 0;font-size:1rem;font-weight:700}.theme-icon-btn{width:46px;font-size:1.2rem;position:absolute;top:50%;right:24px;transform:translateY(-50%)}.toolbar-action-btn:hover,.theme-icon-btn:hover{background:#1111110f;border-color:#11111138;box-shadow:inset 0 1px #ffffff3d}.app-shell[data-theme=dark] .toolbar-action-btn:hover,.app-shell[data-theme=dark] .theme-icon-btn:hover{background:#ffffff14;border-color:#ffffff38;box-shadow:inset 0 1px #ffffff14}.modal-backdrop{background:#00000073;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-panel{border:1px solid var(--border);background:var(--modal-bg);width:min(560px,100%);color:var(--text-main);box-shadow:var(--shadow);border-radius:24px;padding:22px}.modal-panel-wide{width:min(850px,100%)}.modal-form .import-text-area{min-height:200px}.modal-form .plain-tip{gap:4px;line-height:1.6;display:grid}.modal-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.modal-title{margin:0;font-family:Manrope,sans-serif;font-size:1.4rem}.modal-form{gap:12px;display:grid}.modal-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{gap:8px;display:grid}.field label{color:var(--text-soft)}.tag-field{gap:10px;display:grid}.modal-tag-list,.tag-suggestion-list{flex-wrap:wrap;gap:10px;display:flex}.modal-tag-chip,.tag-suggestion-btn{border:1px solid var(--border);border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-size:.92rem;transition:transform .14s,border-color .14s,background .14s,box-shadow .14s;display:inline-flex}.modal-tag-chip{background:var(--button-bg);color:var(--button-text)}.modal-tag-remove{width:20px;height:20px;color:inherit;background:#ffffff29;border:0;border-radius:999px;line-height:1}.app-shell[data-theme=light] .modal-tag-remove{background:#0000001a}.tag-input-row{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.tag-add-btn{min-width:72px}.tag-suggestion-btn{background:var(--panel-subtle);color:var(--text-main)}.tag-suggestion-btn:hover{background:var(--panel-strong);border-color:#11111129}.app-shell[data-theme=dark] .tag-suggestion-btn:hover{border-color:#ffffff2e}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.error-box{border:1px solid var(--border);background:var(--panel-subtle);color:var(--text-main);white-space:pre-wrap;border-radius:14px;padding:12px 14px}.toast{z-index:40;border:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);max-width:min(420px,100vw - 32px);box-shadow:var(--shadow);color:var(--text-main);white-space:pre-wrap;border-radius:14px;padding:12px 16px;position:fixed;top:24px;right:24px}.toast-success{background:#24c3b524;border-color:#24c3b54d}.toast-error{background:#e3545424;border-color:#e354544d}@media (width<=1024px){.workspace{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border)}}@media (width<=720px){.toolbar,.toolbar-right,.modal-grid,.tag-input-row{grid-template-columns:1fr;display:grid}.toolbar{position:static}.toolbar-action-btn,.toolbar-right{width:100%;position:static;transform:none}.toolbar-action-btn{justify-self:start;top:auto;left:auto}.toolbar-right{transform:none}.search-input{width:100%}.theme-icon-btn{justify-self:end;position:static;top:auto;right:auto;transform:none}.toast{top:16px;right:16px}}
