:root{--color-bg: #f0f2f5;--color-surface: #ffffff;--color-border: #e2e6ea;--color-text: #1a1a2e;--color-text-muted: #6b7280;--color-accent: #0f6cbd;--color-accent-hover: #0c5aa6;--color-topbar-bg: #ffffff;--color-topbar-shadow: rgba(0, 0, 0, .08);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius: 8px;--font-sm: .8125rem;--font-md: .9375rem}[data-theme=dark]{--color-bg: #111318;--color-surface: #1c1f28;--color-border: #2e3344;--color-text: #e4e6f0;--color-text-muted: #8b91a8;--color-accent: #4d9ef7;--color-accent-hover: #6ab3ff;--color-topbar-bg: #16191f;--color-topbar-shadow: rgba(0, 0, 0, .4)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg: #111318;--color-surface: #1c1f28;--color-border: #2e3344;--color-text: #e4e6f0;--color-text-muted: #8b91a8;--color-accent: #4d9ef7;--color-accent-hover: #6ab3ff;--color-topbar-bg: #16191f;--color-topbar-shadow: rgba(0, 0, 0, .4)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--color-bg);color:var(--color-text);min-height:100vh}.top-bar{position:sticky;top:0;z-index:100;background:var(--color-topbar-bg);box-shadow:0 1px 4px var(--color-topbar-shadow);padding:0 var(--space-xl);height:56px;display:flex;align-items:center}.logo{height:28px;width:auto}.logo-light{display:none}.logo-dark,[data-theme=dark] .logo-light{display:block}[data-theme=dark] .logo-dark{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .logo-light{display:block}:root:not([data-theme=light]) .logo-dark{display:none}}.search-input{margin-left:auto;width:min(400px,40vw);padding:var(--space-xs) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);font-size:var(--font-sm);font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.search-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #0f6cbd1f}.search-input::placeholder{color:var(--color-text-muted)}.main-content{max-width:1400px;margin:0 auto;padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-xl)}.section{display:flex;flex-direction:column;gap:var(--space-sm)}.section-title{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--space-sm)}.card{display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--space-md) var(--space-sm);min-height:64px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:var(--font-sm);font-weight:500;text-decoration:none;line-height:1.3;transition:border-color .15s,box-shadow .15s,transform .1s,color .15s}.card:hover{border-color:var(--color-accent);box-shadow:0 2px 10px #0f6cbd1f;transform:translateY(-2px);color:var(--color-accent)}.card:active{transform:translateY(0);box-shadow:none}html[data-view=list] .card-grid{display:flex;flex-direction:column;gap:var(--space-xs)}html[data-view=list] .card{justify-content:flex-start;text-align:left;padding:var(--space-sm) var(--space-md);min-height:unset;height:40px}html[data-view=list] .card[data-tooltip]:after{position:static;transform:none;opacity:1;width:auto;max-width:55%;margin-left:auto;background:transparent;color:var(--color-text-muted);font-size:var(--font-sm);font-weight:400;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0;border-radius:0;transition:none;z-index:auto}html[data-view=list] .card[data-tooltip]:hover:after{transform:none;opacity:1}html[data-view=list] .card:before{display:none!important}.card{position:relative}.card[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);background:#141623f2;color:#f0f2f5;font-size:.72rem;font-weight:400;line-height:1.5;padding:6px 10px;border-radius:6px;width:max-content;max-width:220px;text-align:center;white-space:normal;pointer-events:none;opacity:0;transition:opacity .15s,transform .15s;z-index:50}.card[data-tooltip]:hover:after{opacity:1;transform:translate(-50%) translateY(-2px)}.card[data-tooltip]:before{content:"";position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#141623f2;pointer-events:none;opacity:0;transition:opacity .15s;z-index:50}.card[data-tooltip]:hover:before{opacity:1}html[data-tooltips=off] .card:after,html[data-tooltips=off] .card:before{display:none}.section-list{list-style:none;display:flex;flex-direction:column;gap:2px}.section-list-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);border:1px solid transparent;cursor:grab;font-size:var(--font-sm);transition:background .1s,border-color .1s}.section-list-item:hover{background:var(--color-bg);border-color:var(--color-border)}.section-list-item.is-dragging{opacity:.4}.section-list-item.drag-over{border-color:var(--color-accent);background:var(--color-bg)}.drag-handle{color:var(--color-text-muted);cursor:grab;font-size:1rem;line-height:1;-webkit-user-select:none;user-select:none}.section-list-name{flex:1}.settings-btn{margin-left:var(--space-md);padding:var(--space-xs) var(--space-sm);background:none;border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;font-size:1rem;line-height:1;transition:border-color .15s,background .15s}.settings-btn:hover{background:var(--color-bg);border-color:var(--color-accent)}.modal-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:200;align-items:flex-start;justify-content:center;padding-top:5vh}.modal-overlay.is-open{display:flex}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:min(460px,90vw);max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:var(--font-md);font-weight:600}.modal-close{background:none;border:none;cursor:pointer;font-size:1.4rem;color:var(--color-text-muted);line-height:1;padding:0 var(--space-xs);transition:color .15s}.modal-close:hover{color:var(--color-text)}.modal-body{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.modal-body fieldset{border:none;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.modal-body legend{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-xs)}.modal-body label{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-sm);cursor:pointer}.modal-footer{padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.btn-reset{background:none;border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);font-size:var(--font-sm);font-family:inherit;color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,color .15s}.btn-reset:hover{border-color:#e53e3e;color:#e53e3e}.import-export-row{display:flex;gap:var(--space-sm);flex-wrap:wrap}.import-label{cursor:pointer}.import-label input[type=file]{display:none}.tab-bar{display:flex;border-bottom:1px solid var(--color-border);padding:0 var(--space-lg)}.tab-btn{background:none;border:none;border-bottom:2px solid transparent;padding:var(--space-sm) var(--space-md);margin-bottom:-1px;cursor:pointer;font-size:var(--font-sm);font-weight:500;font-family:inherit;color:var(--color-text-muted);transition:color .15s,border-color .15s}.tab-btn.is-active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.tab-btn:hover:not(.is-active){color:var(--color-text)}.tab-panel{display:none;flex-direction:column;gap:var(--space-lg)}.tab-panel.is-active{display:flex}.custom-links-list{list-style:none;display:flex;flex-direction:column;gap:4px}.custom-link-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius);font-size:var(--font-sm)}.custom-link-info{flex:1;display:flex;flex-direction:column;gap:2px;overflow:hidden}.custom-link-row{display:flex;gap:var(--space-sm);overflow:hidden}.custom-link-title{font-weight:500;min-width:80px;white-space:nowrap}.custom-link-url{flex:1;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-link-tooltip{font-size:.72rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-edit-link{background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:.75rem;padding:2px 4px;border-radius:4px;transition:color .15s,background .15s}.btn-edit-link:hover{color:var(--color-accent);background:#0f6cbd14}.edit-link-actions{display:flex;gap:var(--space-sm)}.btn-cancel-edit{padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);font-family:inherit;cursor:pointer}.btn-delete-link{background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:.75rem;padding:2px 4px;border-radius:4px;transition:color .15s,background .15s}.btn-delete-link:hover{color:#e53e3e;background:#e53e3e14}.custom-links-empty{font-size:var(--font-sm);color:var(--color-text-muted);padding:var(--space-xs) 0}.add-link-form{display:flex;flex-direction:column;gap:var(--space-sm)}.add-link-form input{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);font-size:var(--font-sm);font-family:inherit;outline:none;transition:border-color .15s}.add-link-form input:focus{border-color:var(--color-accent)}.btn-add{align-self:flex-start;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius);padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);font-family:inherit;cursor:pointer;transition:background .15s}.btn-add:hover{background:var(--color-accent-hover)}
