:root{color-scheme:dark;--ui-scale: 1;--font-ui: "Geist", "SUIT Variable", "Pretendard", "Noto Sans KR", sans-serif;--font-display: "Instrument Serif", "Geist", serif;--bg: #0b0c0f;--bg-soft: #101318;--surface-1: #121418;--surface-2: #161a20;--surface-3: #1c2128;--line: #262c35;--line-strong: #323a46;--text-1: #e6edf3;--text-2: #a6b0bb;--text-3: #6b7785;--brand: #3f46d8;--brand-strong: #5a60ff;--brand-soft: rgba(63, 70, 216, .12);--good: #2fcf9f;--warn: #f3c66b;--danger: #ff6878;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--fs-10: calc(10px * var(--ui-scale));--fs-12: calc(12px * var(--ui-scale));--fs-14: calc(14px * var(--ui-scale));--fs-16: calc(16px * var(--ui-scale));--fs-20: calc(20px * var(--ui-scale));--fs-28: calc(28px * var(--ui-scale));--shadow-sm: 0 4px 16px rgba(0, 0, 0, .22);--shadow-md: 0 8px 24px rgba(0, 0, 0, .25);--shadow-lg: 0 20px 48px rgba(0, 0, 0, .4)}:root[data-theme=light]{color-scheme:light;--bg: #eef2f7;--bg-soft: #f5f8fc;--surface-1: #ffffff;--surface-2: #f7f9fc;--surface-3: #f1f4f8;--line: #d7dfea;--line-strong: #c4d0df;--text-1: #0d1623;--text-2: #394a5c;--text-3: #6a7b90;--brand: #3741c9;--brand-strong: #4f57ea;--brand-soft: rgba(55, 65, 201, .12);--good: #16926e;--warn: #a87000;--danger: #c93249;--shadow-sm: 0 6px 16px rgba(9, 22, 36, .08);--shadow-md: 0 10px 26px rgba(9, 22, 36, .11);--shadow-lg: 0 20px 50px rgba(9, 22, 36, .18)}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--line-strong) var(--bg-soft)}html,body,#root{margin:0;min-height:100%}html,body{background:var(--bg)}html::-webkit-scrollbar,body::-webkit-scrollbar,*::-webkit-scrollbar{width:11px;height:11px}html::-webkit-scrollbar-track,body::-webkit-scrollbar-track,*::-webkit-scrollbar-track{background:var(--bg-soft)}html::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb,*::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px;border:2px solid var(--bg-soft)}html::-webkit-scrollbar-thumb:hover,body::-webkit-scrollbar-thumb:hover,*::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--line-strong) 70%,var(--text-2))}body{font-family:var(--font-ui);font-size:var(--fs-14);color:var(--text-1);line-height:1.5;letter-spacing:-.002em;background:radial-gradient(1200px 560px at -10% -24%,rgba(63,70,216,.16),transparent 65%),radial-gradient(980px 460px at 112% 110%,rgba(63,70,216,.08),transparent 62%),linear-gradient(180deg,color-mix(in srgb,var(--surface-1) 50%,var(--bg)) 0%,var(--bg) 52%)}a{color:var(--brand-strong);text-decoration:none;word-break:break-all}a:hover{text-decoration:underline}input,textarea,select,button{font:inherit}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text-1);padding:var(--space-3) var(--space-4);outline:none;transition:all .15s ease}input::placeholder,textarea::placeholder{color:var(--text-3)}input:focus,textarea:focus,select:focus{border-color:color-mix(in srgb,var(--brand) 56%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 20%,transparent);background:color-mix(in srgb,var(--surface-2) 90%,var(--brand-soft))}textarea{resize:vertical;min-height:96px}label{display:grid;gap:var(--space-2);color:var(--text-2);font-size:var(--fs-12)}button{cursor:pointer;border:1px solid transparent;border-radius:var(--radius-md);padding:0 var(--space-4);height:38px;white-space:nowrap;font-size:var(--fs-14);font-weight:600;line-height:1;letter-spacing:0;color:#f5f8ff;background:linear-gradient(180deg,var(--brand-strong),var(--brand));transition:all .15s ease}button:hover{filter:brightness(1.06);box-shadow:0 6px 20px #3f46d84d}button:active{filter:brightness(.98)}button:disabled{opacity:.58;cursor:not-allowed;box-shadow:none}button.ghost{background:var(--surface-2);border-color:var(--line);color:var(--text-1)}button.ghost:hover{border-color:var(--line-strong);background:color-mix(in srgb,var(--surface-2) 80%,var(--brand-soft));box-shadow:none}.danger-solid{border-color:color-mix(in srgb,var(--danger) 30%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--danger) 88%,#ffffff),color-mix(in srgb,var(--danger) 72%,#8a1c32));color:#fff5f6}.danger-solid:hover{box-shadow:0 8px 24px color-mix(in srgb,var(--danger) 34%,transparent)}.app-shell{width:min(440px,calc(100% - 2 * var(--space-4)));margin:var(--space-6) auto}.stack{display:grid;gap:var(--space-3)}.auth-shell{min-height:100vh;padding:var(--space-6) var(--space-5);display:grid;place-items:center;background:radial-gradient(1200px 520px at 4% -18%,rgba(63,70,216,.18),transparent 66%),radial-gradient(980px 480px at 95% 120%,rgba(63,70,216,.1),transparent 68%),linear-gradient(150deg,color-mix(in srgb,var(--bg) 90%,#000),var(--bg))}.auth-layout{width:min(1080px,100%);display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-4);align-items:stretch}.auth-showcase,.auth-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--surface-1),var(--surface-2));box-shadow:var(--shadow-lg)}.auth-showcase{padding:var(--space-6) var(--space-5);display:grid;gap:var(--space-4)}.auth-showcase-mark{width:48px;height:48px;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line));background:color-mix(in srgb,var(--surface-3) 90%,var(--brand-soft));display:grid;place-items:center}.auth-showcase-mark img{width:34px;height:34px;display:block;object-fit:contain}.auth-showcase-kicker{margin:0;font-size:var(--fs-10);letter-spacing:.16em;font-weight:700;color:var(--text-3)}.auth-showcase h1{margin:0;font-family:var(--font-display);font-size:clamp(34px,4.2vw,52px);line-height:1.05;letter-spacing:-.03em;display:grid;gap:var(--space-1)}.auth-showcase h1 span{display:block}.auth-showcase-desc{margin:0;color:var(--text-2);font-size:var(--fs-16);line-height:1.7}.auth-showcase-metrics{margin-top:var(--space-1);display:grid;gap:var(--space-3)}.auth-showcase-metrics article{border-left:2px solid color-mix(in srgb,var(--brand) 58%,var(--line));padding-left:var(--space-3);display:grid;gap:var(--space-1)}.auth-showcase-metrics strong{font-size:var(--fs-12);letter-spacing:.03em;color:var(--text-1)}.auth-showcase-metrics span{font-size:var(--fs-12);color:var(--text-3)}.auth-showcase-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.auth-showcase-list li{border:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 88%,transparent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:grid;gap:var(--space-1)}.auth-showcase-list strong{font-size:var(--fs-14);color:var(--text-1)}.auth-showcase-list span{font-size:var(--fs-12);color:var(--text-3)}.auth-card{width:100%;padding:var(--space-6) var(--space-5);display:grid;gap:var(--space-4)}.auth-head{display:grid;gap:var(--space-2)}.auth-mode-chip{margin:0;width:fit-content;font-size:var(--fs-10);font-weight:700;letter-spacing:.16em;color:var(--brand-strong);border:1px solid color-mix(in srgb,var(--brand) 38%,var(--line));background:color-mix(in srgb,var(--brand-soft) 72%,var(--surface-3));border-radius:var(--radius-sm);padding:4px 9px}.auth-head h2{margin:0;font-family:var(--font-display);font-size:clamp(32px,4vw,44px);font-weight:500;line-height:1.05;letter-spacing:-.022em}.auth-head p{margin:0;color:var(--text-3);font-size:var(--fs-14)}.auth-form{gap:var(--space-3)}.auth-switch-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.auth-switch-row span{color:var(--text-3);font-size:var(--fs-12)}.signup-guide-overlay,.add-modal-overlay,.help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:var(--space-4);background:color-mix(in srgb,#04070b 78%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.signup-guide-modal,.add-modal,.help-modal,.upload-lock-card{border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--surface-1),var(--surface-2));box-shadow:var(--shadow-lg)}.signup-guide-modal{width:min(540px,calc(100vw - 32px));padding:var(--space-5);display:grid;gap:var(--space-3)}.signup-guide-head,.add-modal-head,.help-head,.detail-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.signup-guide-head h3,.add-modal-head h3,.help-head h3{margin:0;font-family:var(--font-display);font-size:var(--fs-28);font-weight:500;letter-spacing:-.02em}.signup-guide-steps{margin:0;padding-left:18px;color:var(--text-2);font-size:var(--fs-14);line-height:1.7;display:grid;gap:var(--space-1)}.signup-guide-actions{display:flex;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap}.app-layout{min-height:100vh;display:flex}.sidebar{width:268px;flex-shrink:0;position:fixed;top:0;left:0;bottom:0;z-index:45;display:flex;flex-direction:column;border-right:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-1) 92%,#000),var(--surface-1))}.logo{padding:var(--space-5) var(--space-4) var(--space-4);border-bottom:1px solid var(--line)}.logo-row{display:flex;align-items:center;gap:var(--space-3)}.logo-mark-wrap{width:44px;height:44px;border-radius:var(--radius-md);overflow:hidden;flex:0 0 44px;border:1px solid color-mix(in srgb,var(--brand) 18%,var(--line));background:color-mix(in srgb,var(--surface-2) 90%,var(--brand-soft))}.logo-mark{width:100%;height:100%;object-fit:contain;display:block}.eyebrow{margin:0 0 2px;color:var(--text-3);font-size:var(--fs-10);font-weight:700;text-transform:uppercase;letter-spacing:.16em}.logo-name{margin:0;font-family:var(--font-display);font-size:30px;line-height:.95;letter-spacing:-.02em}.sidebar-scroll{flex:1;overflow-y:auto;padding:var(--space-4) var(--space-3)}.nav-group{margin-bottom:var(--space-5)}.nav-group-label{margin:0 0 var(--space-2);padding:0 var(--space-2);color:var(--text-3);font-size:var(--fs-10);font-weight:700;text-transform:uppercase;letter-spacing:.12em}.nav-btn{width:100%;min-height:43px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-2);padding:0 var(--space-3);text-align:left;display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-14);font-weight:500}.nav-btn:hover{color:var(--text-1);border-color:color-mix(in srgb,var(--line) 70%,transparent);background:color-mix(in srgb,var(--surface-2) 86%,transparent);box-shadow:none}.nav-btn.active{color:var(--brand-strong);border-color:color-mix(in srgb,var(--brand) 30%,var(--line));background:color-mix(in srgb,var(--brand-soft) 72%,var(--surface-2))}.nav-count{margin-left:auto;color:var(--text-3);font-size:var(--fs-12);font-weight:600}.nav-btn.active .nav-count{color:var(--brand-strong)}.collection-item{position:relative}.collection-btn{padding-right:56px}.collection-actions{position:absolute;top:50%;right:var(--space-2);transform:translateY(-50%);display:flex;gap:var(--space-1);opacity:0;pointer-events:none;transition:all .15s ease}.collection-item:hover .collection-actions,.collection-item.active .collection-actions{opacity:1;pointer-events:auto}.collection-icon-btn{width:26px;height:26px;padding:0;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-3);color:var(--text-2);display:grid;place-items:center;box-shadow:none}.collection-icon-btn:hover{color:var(--brand-strong);border-color:var(--line-strong);background:color-mix(in srgb,var(--surface-3) 84%,var(--brand-soft))}.collection-icon-btn.danger:hover{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 44%,var(--line));background:color-mix(in srgb,var(--danger) 12%,var(--surface-3))}.collection-dot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.sidebar-collection-form{margin-top:var(--space-2);padding:var(--space-3);border:1px dashed var(--line);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-2) 90%,transparent);display:grid;gap:var(--space-2)}.sidebar-collection-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.sidebar-collection-row input[type=color]{width:36px;height:34px;padding:3px;border-radius:var(--radius-sm)}.sidebar-collection-row button{height:34px;padding:0 var(--space-3);font-size:var(--fs-12)}.sidebar-footer{border-top:1px solid var(--line);padding:var(--space-3)}.plan-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2);padding:var(--space-3)}.plan-name{margin:0 0 var(--space-2);color:var(--text-3);font-size:var(--fs-12)}.plan-row{margin-bottom:var(--space-2);display:flex;justify-content:space-between;align-items:center;color:var(--text-2);font-size:var(--fs-12)}.plan-row strong{color:var(--text-1)}.plan-bar-bg{height:5px;border-radius:999px;overflow:hidden;background:var(--surface-3)}.plan-bar{height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-strong))}.main{margin-left:268px;width:calc(100% - 268px);min-height:100vh}.topbar{position:sticky;top:0;z-index:30;height:64px;display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-5);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in srgb,var(--bg) 88%,transparent)}.page-title{margin:0;font-family:var(--font-display);font-size:clamp(24px,3vw,34px);font-weight:500;letter-spacing:-.02em}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}.topbar-right>*{flex:0 0 auto}.search-wrap{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:var(--space-3);color:var(--text-3);pointer-events:none}.search-input{width:356px;height:40px;padding:0 var(--space-3) 0 36px;border-radius:var(--radius-md);border-color:color-mix(in srgb,var(--line) 85%,transparent);background:color-mix(in srgb,var(--surface-2) 92%,transparent)}.search-input:focus{border-color:color-mix(in srgb,var(--brand) 56%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.slim-btn{height:40px;padding:0 var(--space-3)}.icon-btn{width:38px;height:38px;padding:0;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-2);color:var(--text-2);display:inline-grid;place-items:center;box-shadow:none}.icon-btn:hover,.icon-btn.active{border-color:color-mix(in srgb,var(--brand) 35%,var(--line));background:color-mix(in srgb,var(--surface-2) 84%,var(--brand-soft));color:var(--brand-strong)}.user-menu-wrap{position:relative}.user-btn{height:40px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text-1);padding:0 var(--space-3);display:inline-flex;align-items:center;gap:var(--space-2);box-shadow:none}.user-avatar{width:24px;height:24px;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--brand) 32%,var(--line));background:color-mix(in srgb,var(--brand-soft) 80%,var(--surface-3));color:var(--brand-strong);display:grid;place-items:center;font-size:var(--fs-12);font-weight:700}.user-menu{position:absolute;right:0;top:calc(100% + var(--space-2));min-width:232px;padding:var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-1);box-shadow:var(--shadow-lg);display:grid;gap:var(--space-2);z-index:60}.user-menu p{margin:0;color:var(--text-2);font-size:var(--fs-12);padding:0 var(--space-1)}.btn-inline{display:inline-flex;align-items:center;gap:var(--space-2)}.content{padding:var(--space-5);display:grid;gap:var(--space-4)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.stat,.panel,.settings-card,.link-card{border:1px solid var(--line);background:var(--surface-1);box-shadow:var(--shadow-md)}.stat{border-radius:var(--radius-lg);padding:var(--space-4);min-height:108px;display:grid;align-content:space-between;gap:var(--space-2)}.stat span{color:var(--text-3);font-size:var(--fs-10);font-weight:700;text-transform:uppercase;letter-spacing:.1em}.stat strong{font-family:var(--font-display);font-size:clamp(30px,3vw,40px);line-height:.95;font-weight:500;letter-spacing:-.02em}.panel{border-radius:var(--radius-lg);padding:var(--space-4)}.toolbar-panel{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.toolbar-left{display:grid;gap:var(--space-2)}.settings-panel{padding:var(--space-4)}.settings-grid{display:grid;gap:var(--space-3)}.settings-card{border-radius:var(--radius-md);padding:var(--space-4);display:grid;gap:var(--space-3)}.settings-card h3{margin:0;font-size:var(--fs-20);font-weight:650;letter-spacing:-.01em}.settings-card p{margin:0}.settings-control{display:grid;gap:var(--space-2)}.settings-control>span{color:var(--text-2);font-size:var(--fs-12);font-weight:600}.settings-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.settings-form-grid{display:grid;gap:var(--space-3)}.danger-zone{border-color:color-mix(in srgb,var(--danger) 42%,var(--line))}.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{height:34px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-2);color:var(--text-2);padding:0 var(--space-3);font-size:var(--fs-12);font-weight:600;box-shadow:none}.chip:hover{color:var(--text-1);border-color:var(--line-strong);background:color-mix(in srgb,var(--surface-2) 86%,var(--brand-soft));box-shadow:none}.chip.active{color:var(--brand-strong);border-color:color-mix(in srgb,var(--brand) 34%,var(--line));background:color-mix(in srgb,var(--brand-soft) 82%,var(--surface-2))}.chip.danger-chip{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line));background:color-mix(in srgb,var(--danger) 10%,var(--surface-2))}.bulk-toolbar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.bulk-count{color:var(--text-3);font-size:var(--fs-12);font-weight:600;padding:0 var(--space-1)}.view-toggle{display:inline-flex;align-items:center;gap:var(--space-2)}.section-head{margin-bottom:var(--space-3);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.section-head h2{margin:0;font-size:var(--fs-20)}.result-count{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-3);color:var(--text-2);font-size:var(--fs-12);padding:4px 10px}.links-panel.card{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-3)}.links-panel.list{display:block}.link-card{border-radius:var(--radius-lg);padding:var(--space-4);display:grid;gap:var(--space-3);overflow:hidden;cursor:pointer;transition:all .15s ease}.link-card:hover{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:var(--shadow-lg)}.link-card.selected,.link-card.multi-selected{border-color:color-mix(in srgb,var(--brand) 44%,var(--line));box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 32%,transparent) inset,var(--shadow-md)}.links-panel.list .link-card{border-radius:var(--radius-md);margin-bottom:var(--space-2)}.link-card header{display:flex;justify-content:space-between;gap:var(--space-2)}.tile-head{display:flex;align-items:flex-start;gap:var(--space-3)}.multi-select-toggle{width:20px;height:20px;margin-top:10px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px}.multi-select-toggle input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--brand);cursor:pointer}.tile-icon{width:42px;height:42px;flex-shrink:0;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));background:color-mix(in srgb,var(--brand-soft) 88%,var(--surface-3));color:var(--brand-strong);display:grid;place-items:center;font-size:var(--fs-16);font-weight:700}.link-title-wrap{min-width:0}.link-title-head{display:flex;align-items:flex-start;gap:var(--space-2)}.link-title-wrap h3{margin:0;font-size:var(--fs-16);font-weight:600;line-height:1.42;letter-spacing:-.008em;overflow-wrap:anywhere;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.link-title-wrap a{margin-top:var(--space-1);display:inline-block;color:var(--text-3);font-size:var(--fs-12)}.unread-dot{width:7px;height:7px;margin-top:8px;border-radius:999px;background:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 22%,transparent);flex-shrink:0}.pill-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-1)}.pill{display:inline-flex;align-items:center;gap:var(--space-1);padding:4px 9px;border-radius:999px;border:1px solid transparent;font-size:var(--fs-10);font-weight:600;white-space:nowrap}.status-pill{color:var(--brand-strong);border-color:color-mix(in srgb,var(--brand) 30%,transparent);background:color-mix(in srgb,var(--brand-soft) 80%,transparent)}.status-reading{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 35%,transparent);background:color-mix(in srgb,var(--warn) 16%,transparent)}.status-done{color:var(--good);border-color:color-mix(in srgb,var(--good) 36%,transparent);background:color-mix(in srgb,var(--good) 14%,transparent)}.status-archived,.collection-pill{color:var(--text-2);border-color:var(--line);background:var(--surface-3)}.collection-pill i{width:8px;height:8px;border-radius:999px}.ai-pill{color:var(--brand-strong);border-color:color-mix(in srgb,var(--brand) 33%,transparent);background:color-mix(in srgb,var(--brand-soft) 76%,transparent)}.ai-success{color:var(--good);border-color:color-mix(in srgb,var(--good) 36%,transparent);background:color-mix(in srgb,var(--good) 16%,transparent)}.ai-failed{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 36%,transparent);background:color-mix(in srgb,var(--danger) 16%,transparent)}.link-meta{display:flex;flex-wrap:wrap;gap:var(--space-1)}.link-meta span{border:1px solid var(--line);border-radius:999px;background:var(--surface-3);color:var(--text-3);font-size:var(--fs-10);padding:3px 9px}.summary{margin:0;color:var(--text-2);font-size:var(--fs-14);line-height:1.65;overflow-wrap:anywhere;word-break:break-word;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.keywords{margin:0;color:var(--brand-strong);font-size:var(--fs-12);overflow-wrap:anywhere;word-break:break-word}.card-actions{margin-top:auto;padding-top:var(--space-2);border-top:1px dashed var(--line);display:flex;flex-wrap:wrap;gap:var(--space-1)}.action-btn{min-width:34px;height:34px;padding:0;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-3);color:var(--text-2);display:inline-grid;place-items:center;font-size:var(--fs-12);box-shadow:none}.action-btn:hover{color:var(--brand-strong);border-color:color-mix(in srgb,var(--brand) 34%,var(--line));background:color-mix(in srgb,var(--surface-3) 84%,var(--brand-soft));box-shadow:none}.action-btn.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 34%,var(--line))}.action-btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 36%,var(--line))}.action-btn.is-active{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 38%,var(--line));background:color-mix(in srgb,var(--warn) 14%,var(--surface-3))}.star-icon{transition:all .15s ease}.action-btn.is-active .star-icon,.star-btn.active .star-icon{fill:currentColor}.muted,.ok-text,.error-text{margin:0;font-size:var(--fs-12)}.muted{color:var(--text-3)}.ok-text{color:var(--good)}.error-text{color:var(--danger)}.mini-hint{font-size:var(--fs-10)}.empty-state{border:1px dashed var(--line-strong);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface-2) 90%,transparent);padding:var(--space-6) var(--space-4);text-align:center}.empty-icon{width:50px;height:50px;margin:0 auto var(--space-3);border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--brand) 32%,var(--line));background:color-mix(in srgb,var(--brand-soft) 70%,var(--surface-3));color:var(--brand-strong);display:grid;place-items:center}.empty-state strong{display:block;margin-bottom:var(--space-1);font-size:var(--fs-20)}.empty-state p{margin:0;color:var(--text-3);font-size:var(--fs-14)}.add-modal,.help-modal{width:min(620px,100%);max-height:calc(100vh - 2 * var(--space-4));overflow-y:auto;padding:var(--space-5)}.add-modal-hint{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--brand) 36%,var(--line));background:color-mix(in srgb,var(--brand-soft) 74%,var(--surface-2));color:color-mix(in srgb,var(--brand-strong) 84%,var(--text-1));font-size:var(--fs-12);font-weight:600}.add-modal-form{display:grid;gap:var(--space-3)}.full{grid-column:1 / -1}.url-input-row{display:grid;grid-template-columns:1fr auto;gap:var(--space-2)}.modal-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.tag-chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tag-chip{border:1px solid var(--line);border-radius:999px;background:var(--surface-3);color:var(--text-2);padding:4px 10px;font-size:var(--fs-12);height:auto}.tag-chip:hover{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 38%,var(--line));background:color-mix(in srgb,var(--danger) 10%,var(--surface-3));box-shadow:none}.add-modal-footer{margin-top:var(--space-1);display:flex;justify-content:flex-end;gap:var(--space-2)}.help-modal{display:grid;gap:var(--space-4)}.help-list{margin:0;padding-left:18px;display:grid;gap:var(--space-2);color:var(--text-2);font-size:var(--fs-14);line-height:1.65}.detail-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#02060c99;opacity:0;pointer-events:none;transition:all .15s ease}.detail-backdrop.open{opacity:1;pointer-events:all}.detail-panel{position:fixed;top:0;right:-460px;width:min(440px,100vw);height:100vh;z-index:80;display:flex;flex-direction:column;border-left:1px solid var(--line-strong);background:linear-gradient(180deg,var(--surface-1),var(--surface-2));box-shadow:var(--shadow-lg);transition:all .15s ease}.detail-panel.open{right:0}.detail-head{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line)}.detail-head h3{margin:0;font-size:var(--fs-16)}.detail-scroll{flex:1;overflow-y:auto;padding:var(--space-4);display:grid;gap:var(--space-3)}.detail-title{margin:0;font-family:var(--font-display);font-size:var(--fs-28);line-height:1.15;letter-spacing:-.018em;overflow-wrap:anywhere}.detail-link-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.detail-link-btn{height:32px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-3);color:var(--text-2);font-size:var(--fs-12);font-weight:600;display:inline-flex;align-items:center;gap:var(--space-1);box-shadow:none}.detail-link-btn:hover{color:var(--brand-strong);border-color:color-mix(in srgb,var(--brand) 34%,var(--line));background:color-mix(in srgb,var(--surface-3) 84%,var(--brand-soft))}.detail-link-host{color:var(--text-3);font-size:var(--fs-12);max-width:240px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.detail-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.detail-meta-item{min-height:56px;padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-3);display:grid;align-content:center;gap:2px}.detail-meta-label{font-size:var(--fs-10);color:var(--text-3);letter-spacing:.04em;text-transform:uppercase}.detail-meta-value{margin:0;color:var(--text-1);font-size:var(--fs-12);font-weight:600;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-summary-block{display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-3) 90%,var(--brand-soft))}.detail-section-kicker{margin:0;font-size:var(--fs-10);letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);font-weight:700}.detail-summary-text{margin:0;color:var(--text-2);font-size:var(--fs-14);line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.detail-summary-text.empty{color:var(--text-3)}.detail-toggle-row{display:grid;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-2) 92%,var(--brand-soft))}.detail-control-block{display:grid;gap:var(--space-2)}.detail-status-toggle,.detail-star-rating,.detail-collection-buttons{display:flex;flex-wrap:wrap;gap:var(--space-1);align-items:center}.status-mini-btn,.star-clear,.collection-choice{height:28px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-3);color:var(--text-2);font-size:var(--fs-12);font-weight:600;box-shadow:none}.status-mini-btn:hover,.star-clear:hover,.collection-choice:hover{color:var(--text-1);border-color:var(--line-strong);background:color-mix(in srgb,var(--surface-3) 86%,var(--brand-soft));box-shadow:none}.status-mini-btn.active,.star-clear.active,.collection-choice.active{color:var(--brand-strong);border-color:color-mix(in srgb,var(--brand) 36%,var(--line));background:color-mix(in srgb,var(--brand-soft) 78%,var(--surface-3))}.star-btn{width:28px;height:28px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-3);color:var(--text-3);display:inline-grid;place-items:center;box-shadow:none}.star-btn:hover,.star-btn.active{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 38%,var(--line));background:color-mix(in srgb,var(--warn) 14%,var(--surface-3))}.collection-choice{display:inline-flex;align-items:center;gap:var(--space-1)}.detail-note textarea{min-height:212px}.detail-tag-input{min-height:38px}.detail-actions{padding:var(--space-3) var(--space-4);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.detail-actions button{min-width:96px}.detail-autosave-state{color:var(--text-3);font-size:var(--fs-12)}.global-error{position:sticky;bottom:var(--space-3);z-index:98;margin:0 var(--space-5) var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb,var(--danger) 42%,var(--line));border-radius:var(--radius-md);background:color-mix(in srgb,var(--danger) 14%,var(--surface-1));color:var(--danger)}.toast{position:fixed;right:var(--space-5);bottom:var(--space-5);z-index:95;padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-1);box-shadow:var(--shadow-md);font-size:var(--fs-14);font-weight:600}.toast-info{color:var(--brand-strong);border-color:color-mix(in srgb,var(--brand) 38%,var(--line));background:color-mix(in srgb,var(--brand-soft) 82%,var(--surface-1))}.toast-ok{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,var(--line));background:color-mix(in srgb,var(--good) 16%,var(--surface-1))}.toast-err{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 44%,var(--line));background:color-mix(in srgb,var(--danger) 16%,var(--surface-1))}.upload-lock-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:140;background:color-mix(in srgb,#02050a 76%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:var(--space-5)}.upload-lock-card{width:min(440px,calc(100vw - 40px));padding:var(--space-5);display:grid;gap:var(--space-2)}.upload-lock-card strong{color:var(--text-1);font-size:var(--fs-20)}.upload-lock-card p{margin:0;color:var(--text-2);font-size:var(--fs-14)}@media (max-width: 1240px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-input{width:260px}}@media (max-width: 980px){.auth-shell{padding:var(--space-4)}.auth-layout{grid-template-columns:1fr}.auth-showcase,.auth-card{padding:var(--space-5) var(--space-4)}.app-layout{flex-direction:column}.sidebar{position:static;width:100%;border-right:0;border-bottom:1px solid var(--line)}.main{width:100%;margin-left:0}.topbar{position:static;height:auto;padding:var(--space-3);flex-direction:column;align-items:flex-start}.topbar-right{width:100%;margin-left:0;justify-content:flex-start}.search-wrap,.search-input{width:100%}.content{padding:var(--space-3)}.toolbar-panel{flex-direction:column;align-items:stretch}.view-toggle{justify-content:flex-end}.links-panel.card{grid-template-columns:1fr}.detail-panel{width:100vw;right:-100vw}}@media (max-width: 640px){button,button.ghost{width:100%}.topbar-right button,.topbar-right button.ghost,.topbar-right .user-btn,.icon-btn,.chip,.action-btn{width:auto}.signup-guide-actions{flex-direction:column-reverse;align-items:stretch}.stats-grid,.modal-row{grid-template-columns:1fr}.detail-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-meta-item:last-child{grid-column:1 / -1}.detail-actions{flex-direction:column;align-items:stretch}}
