:root{font-family:Segoe UI,Microsoft YaHei,sans-serif;color:#202020;background:#f3f3f3}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{min-height:32px;border:1px solid #005fb8;border-radius:4px;background:#005fb8;color:#fff;padding:0 12px;cursor:pointer}button:disabled{opacity:.65;cursor:not-allowed}.startup,.auth-page{min-height:100vh;display:grid;place-content:center;text-align:center}.startup{gap:8px}.auth-card{width:400px;background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:32px;box-shadow:0 2px 8px #00000014;display:grid;gap:12px;text-align:left}.auth-card h1{font-size:24px;margin:0}.auth-card p{margin:0;color:#5c5c5c}.auth-card label,.password-control{display:grid;gap:4px;font-size:14px}.auth-card input{height:32px;border:1px solid #e5e5e5;border-radius:4px;padding:4px 8px}.auth-card input:focus{outline:0;border-color:#005fb8}.password-field{position:relative;display:block}.password-field input{width:100%;padding-right:40px}.password-toggle{position:absolute;top:0;right:0;min-height:32px;width:36px;padding:0;border:0;color:#5c5c5c;background:transparent;display:grid;place-items:center}.password-toggle:hover{color:#005fb8;background:transparent}.auth-card .remember{display:flex;align-items:center;gap:8px}.auth-card .remember input{width:16px;height:16px}.field-error{color:#c50f1f!important;font-size:12px}.shell{display:grid;grid-template-columns:216px 1fr;min-height:100vh}.shell aside{background:#fff;border-right:1px solid #e5e5e5;padding:24px 12px}.shell aside h1{font-size:18px;margin:0 12px 20px}.shell nav{display:grid;gap:4px}.shell nav button{border:0;background:transparent;color:#202020;text-align:left}.shell nav .nav-current,.shell nav button:hover{background:#e8f1fb;color:#005fb8}.workspace header{height:56px;background:#fff;border-bottom:1px solid #e5e5e5;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.workspace{min-width:0}.workspace main{padding:24px;min-width:0}.workspace main h1{font-size:24px;margin:0 0 8px}.logout{display:flex;align-items:center;gap:6px;background:#fff;border-color:#e5e5e5;color:#202020}.links-page{display:grid;gap:16px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start}.page-heading h1{margin:0;font-size:24px}.page-heading p{margin:4px 0 0;color:#5c5c5c;font-size:14px}.page-heading button{display:flex;align-items:center;gap:6px}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filters label{height:32px;display:flex;align-items:center;gap:6px;border:1px solid #e5e5e5;border-radius:4px;padding:0 8px;background:#fff}.filters input,.filters select{border:0;outline:0;height:28px;background:#fff}.search-filter{flex:1 1 280px;min-width:0}.search-filter input{min-width:0;width:100%}.date-filter{flex:0 0 auto}.secondary{background:#fff;color:#202020;border-color:#e5e5e5}@media(max-width:1100px){.shell{grid-template-columns:176px minmax(0,1fr)}.shell aside{padding:20px 8px}.shell aside h1{margin-left:8px}.workspace header,.workspace main{padding-left:16px;padding-right:16px}.page-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.page-heading>div{min-width:0}.page-heading button,.filters>button{flex-shrink:0;white-space:nowrap}.page-heading button{justify-self:start}.filters{display:grid;grid-template-columns:minmax(0,1fr);align-items:center}.filters .search-filter,.filters>.field-error{grid-column:1 / -1}}.table-wrap{overflow:auto;background:#fff;border:1px solid #e5e5e5;border-radius:8px}table{border-collapse:collapse;width:100%;min-width:720px;font-size:14px}th{height:40px;background:#f9f9f9;color:#5c5c5c;text-align:left;padding:0 12px}td{height:48px;border-top:1px solid #e5e5e5;padding:0 12px;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}tr:hover td{background:#f3f3f3}.tag{padding:3px 8px;border-radius:12px;font-size:12px}.tag.active{background:#dff6dd;color:#107c10}.tag.disabled{background:#fde7e9;color:#c50f1f}.tag.deleted{background:#ededed;color:#666}.text-button{background:transparent;border:0;color:#005fb8;padding:0;min-height:24px;display:inline-flex;align-items:center;gap:4px}.pager{display:flex;gap:8px;align-items:center;justify-content:flex-end}.pager span{margin-right:auto;color:#5c5c5c;font-size:12px}.pager-size{display:inline-flex;align-items:center;gap:5px;color:#5c5c5c;font-size:12px}.pager-size select{min-height:28px;border:1px solid #d9d9d9;border-radius:4px;padding:2px 5px;background:#fff}.empty,.page-error{padding:48px;background:#fff;border:1px solid #e5e5e5;border-radius:8px;text-align:center}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:10}.dialog{width:480px;max-width:calc(100% - 32px);display:grid;gap:12px;background:#fff;border-radius:8px;padding:24px;box-shadow:0 8px 24px #0000001f}.dialog h2{margin:0;font-size:18px}.form-dialog label{display:grid;gap:4px;font-size:14px}.form-dialog input,.form-dialog textarea,.form-dialog select{border:1px solid #e5e5e5;border-radius:4px;padding:6px 8px;min-height:32px;background:#fff}.form-dialog textarea{min-height:72px;resize:vertical}.form-dialog small{color:#6b7280;font-size:12px}.dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.success p{overflow-wrap:anywhere;color:#5c5c5c}.danger{background:#c50f1f;border-color:#c50f1f}.row-actions,.detail-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.row-actions{min-width:320px;max-width:none;flex-wrap:nowrap;white-space:nowrap}.toast{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #e5e5e5;border-left:4px solid #005fb8;border-radius:4px;padding:10px 12px;box-shadow:0 8px 24px #0000001f}.toast.success{border-left-color:#107c10}.toast.error{border-left-color:#c50f1f}.global-toast{position:fixed;top:72px;right:24px;z-index:20;min-width:280px;max-width:min(420px,calc(100vw - 48px));display:grid;gap:8px}.detail-dialog{width:720px;max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);overflow-y:auto;overflow-x:hidden}.detail-dialog .detail-list dd,.detail-dialog .history-list{overflow-wrap:anywhere}.detail-section{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.detail-section h3{margin:0 0 12px;font-size:15px}.detail-history{margin-top:4px}.detail-history summary{cursor:pointer;color:#005fb8;font-size:13px;-webkit-user-select:none;user-select:none}.detail-list{display:grid;grid-template-columns:120px 1fr;gap:8px 16px;margin:0}.detail-list div{display:contents}.detail-list dt{color:#5c5c5c}.detail-list dd{margin:0}.break-all{overflow-wrap:anywhere;white-space:normal}.detail-actions button{display:flex;align-items:center;gap:6px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.metric-grid span{background:#f3f3f3;padding:8px;border-radius:4px;display:grid;gap:4px}.muted{color:#5c5c5c}.qr-preview{display:block;border:1px solid #e5e5e5;border-radius:4px;background:#fff;padding:4px;margin:0 auto}.danger-action{color:#c50f1f;border-color:#c50f1f}.link-stats{margin:4px 0 16px}.link-stats .stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.link-stats .stat-grid>div{background:#f6f7f9;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.link-stats .stat-grid strong{font-size:18px}.link-stats .stat-grid span{font-size:12px;color:#5c5c5c}.mini-table{width:100%;min-width:0;font-size:13px}.mini-table th,.mini-table td{padding:4px 6px;text-align:left;border-bottom:1px solid #eee;white-space:normal;overflow:visible;text-overflow:clip;max-width:none}.form-dialog textarea{width:100%;min-height:48px;padding:8px;border:1px solid #d4d4d4;border-radius:6px;font:inherit;resize:vertical}.success-panel{text-align:center;padding:12px 0;display:flex;flex-direction:column;gap:8px;align-items:center}.history-list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}.history-list li{background:#f6f7f9;border-radius:8px;padding:8px 10px;font-size:13px}.state-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f4f6f9}.state-page .card{background:#fff;border-radius:16px;box-shadow:0 10px 30px #00000014;padding:40px 48px;text-align:center;max-width:420px}.state-page h1{font-size:20px;margin:0 0 8px}.state-page p{color:#6b7280;margin:6px 0 20px}.changed-value{color:#b45309;font-weight:600}
