:root{--cal-navy:#002663;--cal-blue-hover:#003380;--cal-light-bg:#f5f7fa;--bg-gradient-top:#f0f4f8;--bg-gradient-bot:#dfe7ef;--card-bg:#fff;--text-primary:#1d1d1f;--text-secondary:#86868b;--divider-color:#e5e5ea;--card-shadow:0 12px 40px rgba(0,38,99,.08);--btn-shadow:0 2px 4px rgba(0,0,0,.04)}*,:after,:before{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}body,html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Microsoft JhengHei,微軟正黑體,sans-serif;background:linear-gradient(180deg,var(--bg-gradient-top) 0,var(--bg-gradient-bot) 100%);min-height:100vh;color:var(--text-primary)}a{text-decoration:none;color:inherit}.page-wrapper{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px 60px}.card{position:relative;background:var(--card-bg);width:100%;max-width:480px;border-radius:20px;box-shadow:var(--card-shadow);padding:40px 32px;text-align:center;border-top:6px solid var(--cal-navy)}.profile-avatar{width:80px;height:80px;border-radius:50%;background:var(--cal-navy);color:#fff;font-size:26px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;letter-spacing:1px}.profile-name{font-size:22px;font-weight:700;color:var(--cal-navy);letter-spacing:.5px}.profile-handle{font-size:13px;color:var(--text-secondary);font-weight:500;margin-top:4px}.profile-bio{font-size:14px;color:var(--text-secondary);line-height:1.7;margin-top:10px;white-space:pre-line}.divider{height:1px;background:var(--divider-color);margin:24px 0}.link-container{text-align:left;margin-top:8px}.section-group{margin-bottom:8px}.section-title{font-size:11px;color:#999;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin:0 0 10px 4px}.grid-stack{flex-direction:column}.grid-stack,.sys-btn{display:flex;gap:10px}.sys-btn{align-items:center;padding:13px 16px;border-radius:10px;font-size:14px;font-weight:500;transition:all .2s cubic-bezier(.25,.8,.25,1);cursor:pointer;min-height:52px;width:100%;text-align:left;border:none}.link-btn-icon{font-size:20px;width:32px;text-align:center;flex-shrink:0}.link-btn-text{flex:1 1}.link-btn-title{font-weight:600;font-size:14px;color:inherit}.link-btn-desc{font-size:12px;opacity:.7;margin-top:2px;color:inherit}.link-btn-arrow{font-size:14px;opacity:.5}.primary-btn{background-color:var(--cal-navy);color:#fff;box-shadow:0 4px 12px rgba(0,38,99,.2)}.primary-btn:hover{background-color:var(--cal-blue-hover);transform:translateY(-1px);box-shadow:0 6px 15px rgba(0,38,99,.25)}.normal-btn{background-color:#fff;color:var(--text-primary);border:1px solid #eaeff5;box-shadow:var(--btn-shadow)}.normal-btn:hover{border-color:var(--cal-navy);color:var(--cal-navy);box-shadow:0 4px 10px rgba(0,0,0,.08);transform:translateY(-2px)}.page-footer{margin-top:20px;font-size:12px;color:#b0b8c1;text-align:center}.admin-wrapper{min-height:100vh;padding:0;background:linear-gradient(180deg,var(--bg-gradient-top) 0,var(--bg-gradient-bot) 100%)}.admin-topbar{background:var(--cal-navy);color:#fff;padding:14px 28px;display:flex;align-items:center;justify-content:space-between}.admin-topbar-title{font-size:16px;font-weight:700;letter-spacing:.5px}.admin-topbar-sub{font-size:12px;opacity:.6;margin-top:2px}.admin-view-btn{font-size:13px;color:hsla(0,0%,100%,.8);border:1px solid hsla(0,0%,100%,.3);padding:6px 14px;border-radius:8px;transition:all .2s;cursor:pointer;background:transparent;text-decoration:none}.admin-view-btn:hover{color:#fff;border-color:hsla(0,0%,100%,.7);background:hsla(0,0%,100%,.1)}.admin-body{max-width:720px;margin:0 auto;padding:28px 20px 60px}.admin-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.admin-section-title{font-size:14px;font-weight:700;color:var(--cal-navy);text-transform:uppercase;letter-spacing:1px}.admin-card{background:#fff;border-radius:16px;box-shadow:var(--card-shadow);padding:24px;margin-bottom:20px;border-top:4px solid var(--cal-navy)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:12px;font-weight:700;color:var(--cal-navy);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.input-field{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;color:var(--text-primary);background-color:#fff;outline:none;transition:all .2s;font-family:inherit}.input-field:focus{border-color:var(--cal-navy);box-shadow:0 0 0 2px rgba(0,38,99,.1)}.select-field{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;color:var(--text-primary);background-color:#fff;outline:none;transition:all .2s;font-family:inherit;cursor:pointer}.select-field:focus{border-color:var(--cal-navy);box-shadow:0 0 0 2px rgba(0,38,99,.1)}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all .18s;font-family:inherit}.btn-primary{background:var(--cal-navy);color:#fff;box-shadow:0 2px 8px rgba(0,38,99,.2)}.btn-primary:hover{background:var(--cal-blue-hover);transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:transparent;color:var(--cal-navy);border:1px solid #cdd6e0}.btn-secondary:hover{border-color:var(--cal-navy);background:#f8faff}.btn-danger{background:transparent;color:#e74c3c;border:1px solid #f5c6c2;padding:7px 12px;font-size:13px}.btn-danger:hover{background:#fde8e8}.btn-sm{padding:6px 12px;font-size:12px}.link-list-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;border:1px solid #eaeff5;margin-bottom:10px;background:#fff;transition:box-shadow .15s}.link-list-item:hover{box-shadow:0 2px 8px rgba(0,38,99,.08)}.link-list-icon{font-size:22px;width:36px;text-align:center;flex-shrink:0}.link-list-info{flex:1 1;min-width:0}.link-list-title{font-size:14px;font-weight:600;color:var(--text-primary)}.link-list-url{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.link-list-category{font-size:11px;background:#e7f5ff;color:var(--cal-navy);padding:2px 8px;border-radius:20px;font-weight:600;white-space:nowrap}.drag-handle{cursor:-webkit-grab;cursor:grab;color:#ccc;font-size:18px;padding:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0}.drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.active-badge{background:#27ae60}.active-badge,.inactive-badge{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.inactive-badge{background:#ccc}.toggle{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:#ccc;border-radius:22px;transition:.3s}.toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}.toggle input:checked+.toggle-slider{background:var(--cal-navy)}.toggle input:checked+.toggle-slider:before{transform:translateX(18px)}.toast{position:fixed;bottom:24px;right:24px;background:var(--cal-navy);color:#fff;padding:12px 20px;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 8px 20px rgba(0,38,99,.25);z-index:9999;animation:slideUp .3s ease}.toast.error{background:#e74c3c}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.icon-picker{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.icon-option{width:40px;height:40px;border-radius:8px;border:2px solid #eaeff5;font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;background:#fff}.icon-option:hover{border-color:var(--cal-navy);background:#f8faff}.icon-option.selected{border-color:var(--cal-navy);background:#e7f5ff}.empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary)}.empty-state-icon{font-size:40px;margin-bottom:12px;opacity:.4}.empty-state-text{font-size:14px}@media (max-width:480px){.card{padding:28px 18px;box-shadow:none;border-top:4px solid var(--cal-navy)}.form-row{grid-template-columns:1fr}.admin-body{padding:20px 14px 60px}.link-list-category{display:none}}