@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);section.app-page{background:var(--background);height:100vh;height:100dvh}section.app-page,section.app-page .body-content{display:grid;grid-template-rows:-webkit-max-content 1fr;grid-template-rows:max-content 1fr}section.app-page .body-content{grid-gap:1.5rem;gap:1.5rem;overflow:auto;padding:1.5rem}section.app-page .body-content .new-link-creator{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.25rem 1.5rem}section.app-page .body-content .new-link-creator .creator-label{color:var(--text-secondary);font-size:.8125rem;font-weight:500;margin-bottom:.75rem}section.app-page .body-content .new-link-creator form.normal-form .row.inline input[type=text]{border-radius:var(--radius-full);padding:.625rem 1.25rem}section.app-page .body-content .new-link-creator form.normal-form .row.inline .expiry-input{align-items:center;display:flex;flex-shrink:0;gap:.5rem}section.app-page .body-content .new-link-creator form.normal-form .row.inline .expiry-input .expiry-label{color:var(--text-muted);font-size:.8125rem;white-space:nowrap}section.app-page .body-content .new-link-creator form.normal-form .row.inline .expiry-input input[type=date]{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:Inter,sans-serif;font-size:.875rem;line-height:1.5;padding:.5rem .625rem}section.app-page .body-content .new-link-creator form.normal-form .row.inline .expiry-input input[type=date]:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.1);outline:none}section.app-page .body-content .links-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:grid;grid-template-rows:1fr;min-height:0;overflow:hidden}section.app-page .body-content .links-table .sticky-wrapper{margin:0;overflow:auto;padding:0}section.app-page .body-content .links-table .sticky-wrapper table{border-collapse:collapse;table-layout:fixed;width:100%}section.app-page .body-content .links-table .sticky-wrapper table thead tr{background:var(--background);position:-webkit-sticky;position:sticky;top:0;z-index:1}section.app-page .body-content .links-table .sticky-wrapper table th{border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.04em;padding:.75rem 1rem;text-align:left;text-transform:uppercase}section.app-page .body-content .links-table .sticky-wrapper table tbody tr{transition:background .15s ease}section.app-page .body-content .links-table .sticky-wrapper table tbody tr:hover{background:var(--primary-light)}section.app-page .body-content .links-table .sticky-wrapper table tbody tr:not(:last-child) td{border-bottom:1px solid var(--border)}section.app-page .body-content .links-table .sticky-wrapper table td{border-radius:0;color:var(--text-primary);font-size:.875rem;overflow:hidden;padding:.625rem 1rem;text-overflow:ellipsis;white-space:nowrap}section.app-page .body-content .links-table .sticky-wrapper table td.expanding{width:auto}section.app-page .body-content .links-table .sticky-wrapper table td,section.app-page .body-content .links-table .sticky-wrapper table th{width:120px}section.app-page .body-content .links-table .sticky-wrapper table td.expanding,section.app-page .body-content .links-table .sticky-wrapper table th.expanding{width:auto}section.app-page .body-content .links-table .sticky-wrapper table td.actions-col,section.app-page .body-content .links-table .sticky-wrapper table th.actions-col{padding:.625rem .5rem;text-align:center;width:48px}section.app-page .body-content .links-table .sticky-wrapper table td.clickable{color:var(--primary);font-weight:500}section.app-page .body-content .links-table .sticky-wrapper table td.clickable:hover{text-decoration:underline}section.app-page .body-content .links-table .sticky-wrapper table .expired td{opacity:.55}section.app-page .body-content .links-table .sticky-wrapper table .expiry-date{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:130px;overflow:visible!important;text-overflow:clip!important;width:130px}section.app-page .body-content .links-table .sticky-wrapper table .expiry-date.editable{cursor:pointer}section.app-page .body-content .links-table .sticky-wrapper table .expiry-date .edit-icon{margin-left:.375rem;opacity:0;transition:opacity .15s ease;vertical-align:middle}section.app-page .body-content .links-table .sticky-wrapper table tbody tr:hover .expiry-date .edit-icon{opacity:.6}section.app-page .body-content .links-table .sticky-wrapper table .expired-text{color:var(--error);opacity:1!important}section.app-page .body-content .links-table .sticky-wrapper table .empty-state td{color:var(--text-muted);font-size:.875rem;padding:3rem 1rem;text-align:center}section.app-page .body-content .links-table .sticky-wrapper table .visits-count{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:var(--text-secondary);font-variant-numeric:tabular-nums}section.app-page .body-content .links-table .sticky-wrapper table .delete-btn{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:inline-flex;justify-content:center;opacity:0;padding:.375rem;transition:color .15s ease,background .15s ease}section.app-page .body-content .links-table .sticky-wrapper table .delete-btn:hover{background:rgba(239,68,68,.08);color:var(--error)}section.app-page .body-content .links-table .sticky-wrapper table tbody tr:hover .delete-btn{opacity:1}section.app-page .modal-overlay{align-items:center;-webkit-animation:fade-in .15s ease;animation:fade-in .15s ease;background:rgba(15,23,42,.3);display:flex;inset:0;justify-content:center;position:fixed;z-index:100}section.app-page .modal-dialog{-webkit-animation:slide-up .2s ease;animation:slide-up .2s ease;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:calc(100vw - 2rem);padding:1.75rem;width:400px}section.app-page .modal-dialog h3{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}section.app-page .modal-dialog p{color:var(--text-secondary);font-size:.9375rem;line-height:1.5}section.app-page .modal-dialog .modal-url{color:var(--text-muted);font-size:.8125rem;margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}section.app-page .modal-dialog .modal-current-expiry{color:var(--text-muted);font-size:.8125rem;margin-top:.5rem}section.app-page .modal-dialog .modal-input-row{align-items:center;color:var(--text-secondary);display:flex;font-size:.9375rem;gap:.625rem;margin-top:1rem}section.app-page .modal-dialog .modal-input-row input[type=date]{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:Inter,sans-serif;font-size:.9375rem;padding:.5rem .625rem}section.app-page .modal-dialog .modal-input-row input[type=date]:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.1);outline:none}section.app-page .modal-dialog .modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}section.app-page .modal-dialog .modal-btn{border-radius:var(--radius-sm);cursor:pointer;font-family:Inter,sans-serif;font-size:.875rem;font-weight:500;padding:.5rem 1.25rem;transition:background .15s ease,box-shadow .15s ease}section.app-page .modal-dialog .modal-btn.cancel{background:var(--background);color:var(--text-secondary)}section.app-page .modal-dialog .modal-btn.cancel:hover{background:var(--border)}section.app-page .modal-dialog .modal-btn.primary{background:var(--primary);box-shadow:0 1px 3px rgba(37,99,235,.3);color:#fff}section.app-page .modal-dialog .modal-btn.primary:hover{background:var(--primary-hover);box-shadow:0 4px 12px rgba(37,99,235,.35)}section.app-page .modal-dialog .modal-btn.danger{background:var(--error);box-shadow:0 1px 3px rgba(239,68,68,.3);color:#fff}section.app-page .modal-dialog .modal-btn.danger:hover{background:#dc2626;box-shadow:0 4px 12px rgba(239,68,68,.35)}@-webkit-keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes slide-up{0%{opacity:0;-webkit-transform:translateY(8px) scale(.97);transform:translateY(8px) scale(.97)}to{opacity:1;-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}}@keyframes slide-up{0%{opacity:0;-webkit-transform:translateY(8px) scale(.97);transform:translateY(8px) scale(.97)}to{opacity:1;-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}}@media screen and (max-width:600px){section.app-page .body-content{padding:1rem}section.app-page .body-content .links-table table td,section.app-page .body-content .links-table table th{padding:.5rem .625rem;width:80px}section.app-page .body-content .links-table table td.expanding,section.app-page .body-content .links-table table th.expanding{width:auto}section.app-page .body-content .links-table table td.actions-col,section.app-page .body-content .links-table table th.actions-col{width:40px}section.app-page .body-content .links-table table .delete-btn{opacity:1}}.site-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;padding:.75rem 1.5rem}.site-header,.site-header>.logo{align-items:center;border-radius:0;display:flex}.site-header>.logo{gap:.625rem}.site-header>.logo>img.logo-image{height:auto;width:28px}.site-header>.logo .brand{color:var(--text-primary);font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.site-header>.logo .slogan{border-left:1px solid var(--border);color:var(--text-muted);font-size:.8125rem;padding-left:.625rem}.site-header>.header-right{align-items:center;display:flex;gap:1rem}.site-header>.header-right .version{color:var(--text-muted);font-size:.75rem}.site-header>.header-right .logout-btn{background:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-family:Inter,sans-serif;font-size:.8125rem;font-weight:500;padding:.375rem .875rem;transition:color .2s ease,background .2s ease}.site-header>.header-right .logout-btn:hover{background:var(--background);color:var(--text-primary)}section.login-page{background:var(--background);display:grid;grid-template-rows:-webkit-max-content 1fr;grid-template-rows:max-content 1fr;height:100vh;height:100dvh}section.login-page .centered-box{align-content:center;display:grid;justify-content:center;padding:1.25rem}section.login-page .centered-box form.log-in{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:calc(100vw - 2.5rem);padding:2.5rem;width:440px}section.login-page .centered-box form.log-in h2{margin-bottom:.25rem}section.login-page .centered-box form.log-in .subtitle{color:var(--text-secondary);font-size:.875rem;margin-bottom:.5rem}section.login-page .centered-box form.log-in .row .checkbox-wrapper{align-items:center;display:flex;gap:.5rem}section.login-page .centered-box form.log-in .row .checkbox-wrapper>label{color:var(--text-secondary);cursor:pointer;font-size:.875rem;-webkit-user-select:none;user-select:none}section.login-page .centered-box form.log-in .row input[type=checkbox]{accent-color:var(--primary);border-radius:4px;cursor:pointer;height:1.125rem;width:1.125rem}section.login-page .centered-box form.log-in .row .input-with-icon{position:relative}section.login-page .centered-box form.log-in .row .input-with-icon img{height:20px;opacity:.35;position:absolute;right:.75rem;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:20px}section.login-page .centered-box form.log-in .row input{padding-right:2.5rem}:root{--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#eff6ff;--surface:#fff;--surface-elevated:hsla(0,0%,100%,.72);--background:#f1f5f9;--text-primary:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--border:#e2e8f0;--border-light:hsla(0,0%,100%,.2);--error:#ef4444;--success:#22c55e;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-md:0 4px 24px rgba(0,0,0,.08);--shadow-lg:0 8px 40px rgba(0,0,0,.12)}@-webkit-keyframes spinner{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}*{border:0;box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f1f5f9;background:var(--background);color:#1e293b;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}a,button,input[type=button],input[type=submit]{cursor:pointer}.small,small{font-size:.875rem}.clickable{cursor:pointer}.error{color:#ef4444;color:var(--error)}h1{font-weight:700}h2{color:#1e293b;color:var(--text-primary);font-size:1.5rem;font-weight:600}button.action{background:#2563eb;background:var(--primary);border-radius:9999px;border-radius:var(--radius-full);box-shadow:0 1px 3px rgba(37,99,235,.3);color:#fff;font-family:Inter,sans-serif;font-size:.9375rem;font-weight:600;padding:.625rem 2rem;transition:background .2s ease,box-shadow .2s ease,-webkit-transform .15s ease;transition:background .2s ease,transform .15s ease,box-shadow .2s ease;transition:background .2s ease,transform .15s ease,box-shadow .2s ease,-webkit-transform .15s ease}button.action:hover{background:#1d4ed8;background:var(--primary-hover);box-shadow:0 4px 12px rgba(37,99,235,.35);-webkit-transform:translateY(-1px);transform:translateY(-1px)}button.action:active{box-shadow:0 1px 3px rgba(37,99,235,.3);-webkit-transform:translateY(0);transform:translateY(0)}form.normal-form{grid-gap:1.25rem;display:grid;gap:1.25rem}form.normal-form.no-gap{gap:0}form.normal-form.submitting button,form.normal-form.submitting input{opacity:.7;pointer-events:none}form.normal-form.submitting button.action:before{-webkit-animation:spinner .6s linear infinite;animation:spinner .6s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#fff;box-sizing:border-box;content:"";height:18px;margin-top:-9px;position:absolute;right:12px;top:50%;width:18px}form.normal-form .row{position:relative}form.normal-form .row>label{color:#64748b;color:var(--text-secondary);display:block;font-size:.8125rem;font-weight:500;margin-bottom:.375rem}form.normal-form .row input[type=email],form.normal-form .row input[type=password],form.normal-form .row input[type=text]{background:#fff;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:8px;border-radius:var(--radius-sm);color:#1e293b;color:var(--text-primary);font-family:Inter,sans-serif;font-size:.9375rem;padding:.625rem .875rem;transition:border-color .2s ease,box-shadow .2s ease}form.normal-form .row input[type=email]::-webkit-input-placeholder,form.normal-form .row input[type=password]::-webkit-input-placeholder,form.normal-form .row input[type=text]::-webkit-input-placeholder{color:#94a3b8;color:var(--text-muted)}form.normal-form .row input[type=email]::placeholder,form.normal-form .row input[type=password]::placeholder,form.normal-form .row input[type=text]::placeholder{color:#94a3b8;color:var(--text-muted)}form.normal-form .row input[type=email]:focus,form.normal-form .row input[type=password]:focus,form.normal-form .row input[type=text]:focus{border-color:#2563eb;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.1);outline:none}form.normal-form .row button,form.normal-form .row input[type=email],form.normal-form .row input[type=password],form.normal-form .row input[type=text]{display:block;line-height:1.5;width:100%}form.normal-form .row.inline{display:flex;gap:.75rem}form.normal-form .row.inline input[type=email],form.normal-form .row.inline input[type=password],form.normal-form .row.inline input[type=text]{width:100%}form.normal-form .row.inline button{padding:.625rem 2.5rem;white-space:nowrap;width:-webkit-max-content;width:max-content}@media screen and (max-width:600px){html{font-size:14px}}
/*# sourceMappingURL=main.36c7dc8a.css.map*/