:root{--primary:#2563eb;--primary-light:#eff6ff;--primary-hover:#1d4ed8;--bg:#fff;--bg-subtle:#f8fafc;--bg-muted:#f1f5f9;--border:#e2e8f0;--text:#1e293b;--text-muted:#64748b;--success-bg:#dcfce7;--success-text:#16a34a;--danger:#ef4444;--danger-hover:#dc2626;--info:#0ea5e9;--info-hover:#0284c7;--font:"Noto Sans TC", system-ui, sans-serif;--radius-sm:6px;--radius:10px;--radius-lg:14px;--shadow:0 1px 3px #00000012, 0 4px 16px #2563eb0f}*,:before,:after{box-sizing:border-box}body{font-family:var(--font);color:var(--text);background:var(--bg-muted);margin:0}.sidebar-nav-link{font-weight:700}.sidebar-nav-link.active{font-weight:700;color:var(--primary)!important}.btn{border-radius:var(--radius);font-family:var(--font);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;padding:9px 15px;font-size:14px;font-weight:500;line-height:1.2;transition:background .18s,transform .15s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);color:#fff}.btn-dark{color:#fff;background:#1e293b}.btn-dark:hover{background:#334155}.btn-secondary{color:#475569;background:#e2e8f0}.btn-secondary:hover{background:var(--border);color:#475569}.btn-info{background:var(--info);color:#fff}.btn-info:hover{background:var(--info-hover);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-sm{border-radius:var(--radius-sm);padding:7px 12px;font-size:13px}.badge{letter-spacing:.02em;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.badge-green{background:var(--success-bg);color:var(--success-text)}.badge-secondary{background:var(--bg-muted);color:var(--text-muted)}.badge-running{color:#fff;background:#2563eb}.badge-dev{color:#fff;background:#ea580c}.badge-closed{color:#fff;background:#16a34a}.badge-invalid{color:#fff;background:#6b7280}.badge-maint{color:#fff;background:#0891b2}@media (prefers-color-scheme:dark){.badge-running{color:#fff;background:#2563eb}.badge-dev{color:#fff;background:#ea580c}.badge-closed{color:#fff;background:#16a34a}.badge-invalid{color:#fff;background:#6b7280}.badge-maint{color:#fff;background:#0891b2}}.avatar-wrap{border:2px dashed var(--border);border-radius:var(--radius-lg);cursor:pointer;background:#fafafa;flex-direction:column;align-items:center;gap:10px;padding:16px;transition:border-color .2s;display:flex}.avatar-wrap:hover{border-color:var(--primary)}.avatar-img{-o-object-fit:cover;object-fit:cover;border:3px solid var(--border);border-radius:50%;width:88px;height:88px}.avatar-actions{gap:8px;display:flex}.permission-grid{background:var(--primary-light);border-radius:var(--radius);border:1px solid #bfdbfe;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-top:6px;padding:12px;display:grid}.permission-group-title{color:var(--primary);align-items:center;gap:4px;margin-bottom:4px;font-size:12px;font-weight:700;display:flex}.permission-check{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:6px;padding:4px 6px;font-size:13px;transition:background .15s;display:flex}.permission-check:hover{background:#dbeafe}.permission-check input[type=checkbox]{accent-color:var(--primary)}.permission-select-all{border-bottom:1px solid var(--border);grid-column:1/-1;margin-bottom:4px;padding-bottom:8px;font-weight:600}.page-card{border-radius:var(--radius-lg);background:#fff;border:1px solid #0000000f;flex-direction:column;height:calc(100% - 32px);min-height:0;margin:16px;padding:0;display:flex;overflow:hidden;box-shadow:0 10px 30px #0000001a,0 2px 8px #0000000f}.page-card.page-card-outer{height:auto;min-height:calc(100% - 32px);overflow:visible}.page-card-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.page-card-title{color:var(--text);letter-spacing:.01em;white-space:nowrap;font-size:18px;font-weight:600}.page-breadcrumb{flex-shrink:0;align-items:center;gap:5px;margin-left:auto;font-size:12.5px;display:flex}.page-breadcrumb-item a{color:#64748bd9;text-decoration:none;transition:color .15s}.page-breadcrumb-item a:hover{color:var(--primary)}.page-breadcrumb-sep{color:var(--border);font-size:13px}.page-breadcrumb-current{color:var(--primary);border-bottom:1.5px solid var(--primary);padding-bottom:1px;font-weight:600}.hide-desktop{display:none!important}.hide-mobile{display:flex!important}@media (width<=767px){.hide-desktop{display:flex!important}.hide-mobile{display:none!important}}.page-card-body{flex-direction:column;flex:1;min-height:0;padding:0;display:flex;overflow:hidden}.page-card.page-card-outer .page-card-body{flex:none;overflow:visible}.dt-modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dt-modal{background:var(--bg);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:560px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 8px 40px #0000002e}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.header-page-title{pointer-events:none;z-index:0;align-items:center;max-width:40%;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.header-page-title-inner{background:#2563eb0a;border:1px solid #2563eb24;border-radius:10px;align-items:center;gap:8px;padding:5px 14px 5px 10px;display:flex;overflow:hidden}.header-page-title-icon{background:#2563eb1a;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.header-page-title-text{color:var(--bs-body-color,#1e293b);white-space:nowrap;text-overflow:ellipsis;letter-spacing:.01em;font-size:18px;font-weight:700;overflow:hidden}.btn-success{background:var(--success-text)}[class*=btn-outline-]{background:0 0;border-style:solid;border-width:1px;font-weight:500;transition:background .15s,color .15s,border-color .15s}.btn-outline-primary{color:var(--primary);border-color:var(--primary)}.btn-outline-primary:hover,.btn-outline-primary:active{background:var(--primary);border-color:var(--primary);color:#fff}.btn-outline-secondary{color:var(--text-muted);border-color:var(--border)}.btn-outline-secondary:hover,.btn-outline-secondary:active{background:var(--bg-muted);border-color:var(--text-muted);color:var(--text)}.btn-outline-success{color:var(--success-text);border-color:var(--success-text)}.btn-outline-success:hover,.btn-outline-success:active{background:var(--success-text);border-color:var(--success-text);color:#fff}.btn-outline-danger{color:var(--danger);border-color:var(--danger)}.btn-outline-danger:hover,.btn-outline-danger:active{background:var(--danger-hover);border-color:var(--danger-hover);color:#fff}.btn-outline-warning{color:#f59e0b;border-color:#f59e0b}.btn-outline-warning:hover,.btn-outline-warning:active{color:#fff;background:#f59e0b;border-color:#f59e0b}.btn-outline-info{color:var(--info);border-color:var(--info)}.btn-outline-info:hover,.btn-outline-info:active{background:var(--info-hover);border-color:var(--info-hover);color:#fff}.btn-outline-dark{color:var(--text);border-color:var(--text)}.btn-outline-dark:hover,.btn-outline-dark:active{background:var(--text);border-color:var(--text);color:#fff}.btn-outline-light{color:var(--text-muted);border-color:var(--border)}.btn-outline-light:hover,.btn-outline-light:active{background:var(--bg-subtle);border-color:var(--border);color:var(--text)}[class*=btn-outline-]:disabled,[class*=btn-outline-].disabled{opacity:.45;pointer-events:none}.app-sidebar .nav-item>.nav-link.active{font-weight:600;color:#93c5fd!important;background:#2563eb2e!important}.app-sidebar .nav-treeview .nav-link.active{padding-left:10%;color:#dbeafe!important;background:#2563eb40!important}.app-sidebar .nav-treeview .nav-link{padding-left:10%}input[readonly],textarea[readonly]{color:#6b7280;cursor:not-allowed;background-color:#f5f5f5;border-color:#e5e7eb}@media (width<=576px){.header-page-title{display:none}}@media (width<=767px){.page-card-header{padding:14px .5rem;display:flex}.page-breadcrumb{display:flex}.dt-modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:100%;position:fixed;bottom:0}.dt-modal-overlay{align-items:flex-end;padding:0}.form-row{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr 1fr}.page-card{height:calc(100% - 16px);margin:8px}.page-card.page-card-outer{height:auto;min-height:calc(100% - 16px)}}.ck-editor__editable table[data-layout]{border-collapse:collapse;width:100%}.ck-editor__editable table[data-layout] td{vertical-align:top;min-height:60px;border:2px dashed #b0c4de!important}.ck-editor__editable table[data-layout] td img{width:100%;height:auto;display:block}.badge-blue{color:#2563eb;background:#dbeafe}.badge-warning{color:#b45309;background:#fef3c7}.badge-purple{color:#7c3aed;background:#ede9fe}.badge-danger{color:#dc2626;background:#fee2e2}@media (prefers-color-scheme:dark){.badge-blue{color:#93c5fd;background:#2563eb33}.badge-warning{color:#fbbf24;background:#f59e0b33}.badge-purple{color:#c4b5fd;background:#7c3aed33}.badge-danger{color:#fca5a5;background:#dc262633}}.badge-info{color:var(--info-hover);background:#e0f2fe}@media (prefers-color-scheme:dark){.badge-info{color:#7dd3fc;background:#0ea5e933}}.app-sidebar{flex-direction:column;height:100vh;display:flex;overflow:hidden}.sidebar-wrapper{flex:1;min-height:0;padding-bottom:24px;overflow:hidden auto}.sidebar-wrapper::-webkit-scrollbar{width:6px}.sidebar-wrapper::-webkit-scrollbar-track{background:0 0}.sidebar-wrapper::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:3px}.sidebar-wrapper::-webkit-scrollbar-thumb:hover{background:#fff6}.sidebar-wrapper{scrollbar-width:thin;scrollbar-color:#ffffff40 transparent}.bc-1260-block,.bc-1260-flex{display:none}@media (width>=1260px){.bc-1260-block{display:block}.bc-1260-flex{display:flex}}
