.module-cme{--bg-base: var(--muted);--grid-color: oklch(.148 .004 228.8 / .04);--border-subtle: var(--border);--border-focus: var(--primary);--surface: var(--card);--surface-hover: var(--card);--shadow-sm: 0 1px 2px oklch(.148 .004 228.8 / .04);--shadow-md: 0 1px 2px oklch(.148 .004 228.8 / .06);--shadow-lg: 0 8px 24px oklch(.148 .004 228.8 / .08);--motion-fast: .16s cubic-bezier(.2, 0, 0, 1);--motion-base: .24s cubic-bezier(.2, 0, 0, 1);--text-main: var(--foreground);--text-secondary: var(--muted-foreground);--text-tertiary: var(--muted-foreground);--accent-blue: var(--primary);--accent-green: oklch(.627 .149 159);--accent-red: var(--destructive);--accent-orange: oklch(.7 .15 55);--grid-size: 64px}.module-cme{min-height:100%;background:var(--bg-base);color:var(--text-main);line-height:1.5}::-moz-selection{background:#0070f329}::selection{background:#0070f329}button{cursor:pointer;touch-action:manipulation}a{color:inherit;text-underline-offset:3px}:focus-visible{outline:3px solid rgba(0,112,243,.28);outline-offset:2px}.grid-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(to right,var(--grid-color) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-color) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size);background-position:center top}.topbar{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--border-subtle);background:#fafafadb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px #ffffffb3}.topbar-inner{max-width:1200px;height:56px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between}.logo-button,.nav-item,.link-button{border:0;background:transparent;color:var(--text-main)}.logo-button{display:inline-flex;align-items:center;gap:8px;font-weight:700;transition:transform var(--motion-fast),color var(--motion-fast)}.logo-button:hover{transform:translateY(-1px)}.user-chip{display:inline-flex;align-items:center;gap:10px;color:var(--text-secondary);font-size:13px}.user-chip span:first-child{color:var(--text-main);font-weight:600}.user-chip button{width:30px;height:30px;display:inline-grid;place-items:center;border:1px solid var(--border-subtle);border-radius:6px;background:#fff;transition:transform var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast)}.user-chip button:hover{border-color:#c8c8c8;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.app-layout{max-width:1200px;margin:48px auto;padding:0 32px;display:grid;grid-template-columns:180px minmax(0,1fr);gap:48px}.side-nav{position:sticky;top:104px;align-self:start;display:flex;flex-direction:column}.nav-item{min-height:44px;padding:12px 16px;display:inline-flex;align-items:center;gap:12px;border-left:2px solid var(--border-subtle);color:var(--text-secondary);text-align:left;position:relative;transition:color var(--motion-fast),background var(--motion-fast),border-color var(--motion-fast),transform var(--motion-fast)}.nav-item:hover,.nav-item.active{color:var(--text-main);border-left-color:var(--border-focus);background:linear-gradient(90deg,rgba(0,0,0,.03),transparent)}.nav-item.active{font-weight:700}.nav-item:hover{transform:translate(3px)}.content{min-width:0;animation:page-enter var(--motion-base) both}.page-header,.detail-header{margin-bottom:40px;display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.page-header h1,.detail-header h1{margin:0;font-size:32px;line-height:1.16;font-weight:750}.detail-header h1{max-width:720px;font-size:40px}.page-header p,.detail-header p{margin:8px 0 0;color:var(--text-secondary)}.back-link{margin:0 0 14px;padding:0;border:0;background:transparent;color:var(--text-secondary);transition:color var(--motion-fast),transform var(--motion-fast)}.back-link:hover{color:var(--text-main);transform:translate(-2px)}.btn{min-height:36px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dedede;border-radius:6px;background:linear-gradient(#fff,#fbfbfb);color:var(--text-main);font-size:13px;font-weight:650;box-shadow:0 1px #00000005;transition:transform var(--motion-fast),border-color var(--motion-fast),background var(--motion-fast),box-shadow var(--motion-fast),color var(--motion-fast)}.btn:hover{border-color:#c8c8c8;background:#fff;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn:active{transform:translateY(0) scale(.985);box-shadow:none}.btn.primary{border-color:#111;background:linear-gradient(#181818,#0f0f0f);color:#fff}.btn.primary:hover{border-color:#222;background:linear-gradient(#2a2a2a,#171717);box-shadow:0 10px 20px #00000029}.btn.danger{border-color:#f4c7c7;color:#9f1d24;background:#fff7f7}.btn.danger:hover{border-color:#eca5a5;background:#fff1f1;box-shadow:0 8px 18px #b4232a14}.btn.warning{border-color:#f9c67a;color:#92400e;background:#fffbeb}.btn.warning:hover{border-color:#f5b942;background:#fef3c7;box-shadow:0 8px 18px #b4781e1a}.btn.success{border-color:#86efac;color:#166534;background:#f0fdf4}.btn.success:hover{border-color:#4ade80;background:#dcfce7;box-shadow:0 8px 18px #1665341a}.archive-entry-btn{font-weight:700;letter-spacing:.01em}.archive-page-summary{margin:-8px 0 28px;padding:16px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-sm)}.archive-page-summary strong{font-size:16px;flex:1 1 200px}.archive-page-summary .meta{display:flex;gap:16px;flex-wrap:wrap;color:var(--text-secondary);font-size:13px}.archive-page-summary .meta span{display:flex;align-items:center;gap:4px}.archive-action-bar{position:sticky;bottom:0;z-index:10;margin:32px -2px -2px;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--border-subtle);border-radius:0 0 8px 8px;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 -4px 16px #0000000f}.archive-action-bar .left-tip{display:flex;align-items:center;gap:8px;color:var(--text-tertiary);font-size:12px}.draft-saved-tip{display:inline-flex;align-items:center;gap:5px;color:#166534;font-size:12px;font-weight:600;animation:fade-in .3s ease both}.archive-readonly-notice{padding:16px 20px;border-radius:8px;border:1px solid var(--border-subtle);background:#f9fafb;color:var(--text-secondary);font-size:14px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.archive-readonly-notice strong{font-size:16px;color:var(--text-main)}@keyframes fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.btn.small{min-height:30px;padding:0 12px;font-size:12px}.btn:disabled{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none}.action-row,.inline-form,.filter-bar,.quick-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.stat-grid{margin-bottom:48px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.stat-card,.action-card,.form-card,.table-card,.info-strip,.project-summary,.login-panel,.center-panel,.dict-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:8px;box-shadow:var(--shadow-sm);transition:border-color var(--motion-base),box-shadow var(--motion-base),transform var(--motion-base),background var(--motion-base)}.stat-card{padding:24px;position:relative;overflow:hidden}.stat-button{width:100%;border-color:var(--border-subtle);text-align:left;cursor:pointer}.stat-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(0,112,243,.055),transparent 45%);opacity:0;transition:opacity var(--motion-base)}.stat-card:hover:after{opacity:1}.stat-card:hover,.stat-button:focus-visible,.table-card:hover,.form-card:hover,.project-summary:hover,.dict-card:hover{border-color:#dedede;box-shadow:var(--shadow-md)}.stat-button:hover{transform:translateY(-2px)}.stat-button:active{transform:translateY(0) scale(.99)}.stat-card span,.action-card small,td small{display:block;color:var(--text-secondary);font-size:12px}.stat-card strong{margin-top:8px;display:block;font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums}.quick-actions{margin-bottom:48px;align-items:stretch}.action-card{flex:1 1 220px;min-height:92px;padding:20px;text-align:left;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;-moz-column-gap:16px;column-gap:16px;row-gap:4px;border-color:#e6e6e6;align-content:start}.action-card span{grid-row:1 / 3;width:40px;height:40px;display:grid;place-items:center;border-radius:8px;background:#f5f5f5;transition:background var(--motion-base),transform var(--motion-base)}.action-card:hover{border-color:var(--border-focus);background:var(--surface-hover);box-shadow:var(--shadow-md);transform:translateY(-3px)}.action-card:hover span{background:#f0f7ff;transform:scale(1.04)}.action-card:active{transform:translateY(-1px) scale(.99)}.section-title{margin:34px 0 16px;display:flex;justify-content:space-between;align-items:center}.section-title h2{margin:0;font-size:18px}.link-button{color:var(--text-secondary);font-size:13px;transition:color var(--motion-fast)}.link-button:hover{color:var(--text-main)}.table-card{overflow:hidden;background:#fff}.table-card input[type=checkbox]{width:16px;min-height:16px;padding:0}table{width:100%;border-collapse:separate;border-spacing:0}th{padding:14px 20px;text-align:left;color:var(--text-tertiary);font-size:12px;font-weight:700;letter-spacing:.02em;background:#fafafa;border-bottom:1px solid var(--border-subtle)}td{padding:18px 20px;border-bottom:1px solid var(--border-subtle);vertical-align:middle;font-size:14px}tr:last-child td{border-bottom:0}tr:hover td{background:#f9fbff}.clickable-row{cursor:pointer}.clickable-row:focus-visible td{background:#eef6ff}td strong{display:block;font-weight:700}.right{text-align:right}.table-actions{display:inline-flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;min-height:24px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;transition:transform var(--motion-fast),filter var(--motion-fast)}.badge:hover{transform:translateY(-1px);filter:saturate(1.08)}.badge.neutral{background:#f4f4f5;color:#52525b}.badge.warning{background:#fff7ed;color:var(--accent-orange)}.badge.danger{background:#fef2f2;color:#b4232a}.badge.success{background:#ecfdf5;color:#067647}.badge.blue{background:#eef6ff;color:var(--accent-blue)}.tab-group{padding:4px;display:flex;gap:4px;border-radius:8px;background:#eee}.tab-group button{min-height:32px;padding:0 14px;border:0;border-radius:6px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:650;transition:background var(--motion-fast),color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast)}.tab-group button.active{background:#fff;color:var(--text-main);box-shadow:0 1px 2px #0000000d;transform:translateY(-1px)}.search-box{min-width:260px;height:40px;padding:0 12px;display:flex;align-items:center;gap:8px;border:1px solid var(--border-subtle);border-radius:8px;background:#fff;color:var(--text-tertiary);transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast)}.search-box:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 4px #0070f314;background:#fff}.search-box input,.inline-form input,.inline-form select,.compact-row input,.compact-row select{min-width:0;border:0;outline:none;background:transparent}.form-card{padding:28px;display:grid;gap:20px}.field-title{display:inline-flex;align-items:center;gap:8px}.field-title b{padding:2px 6px;border-radius:999px;background:#f5f5f5;color:var(--text-tertiary);font-size:11px;font-weight:750}.field-hint{color:var(--text-tertiary);font-weight:500;line-height:1.45}.wheel-card{padding:16px;display:grid;gap:14px;border:1px solid var(--border-subtle);border-radius:8px;background:linear-gradient(#fff,#fcfcfc)}.wheel-picker{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:12px}.wheel-column{min-width:0;display:grid;gap:8px}.wheel-column strong{color:var(--text-secondary);font-size:12px}.calendar-input{min-height:46px;padding:0 14px;border:1px solid var(--border-subtle);border-radius:8px;background:#fff;color:var(--text-primary);font-size:15px;font-weight:650}.wheel-scroll{height:144px;padding:48px 6px;overflow-y:auto;scroll-snap-type:y mandatory;border:1px solid var(--border-subtle);border-radius:14px;background:linear-gradient(#fff,#fff0),linear-gradient(#fff0,#fff),linear-gradient(90deg,transparent,rgba(0,0,0,.035),transparent);background-position:top,bottom,center;background-repeat:no-repeat;background-size:100% 42px,100% 42px,100% 38px}.wheel-scroll button{width:100%;min-height:36px;border:0;border-radius:10px;background:transparent;color:var(--text-tertiary);font-size:15px;font-weight:650;scroll-snap-align:center;transition:background var(--motion-fast),color var(--motion-fast),transform var(--motion-fast)}.wheel-scroll button.active{background:#111;color:#fff;transform:scale(1.02)}.time-picker-trigger{width:100%;min-height:46px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border-subtle);border-radius:8px;background:#fff;color:var(--text-main);font-size:15px;font-weight:650;cursor:pointer;transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast)}.time-picker-trigger:hover{border-color:var(--border-focus);background:var(--surface-hover)}.time-picker-trigger.active,.time-picker-trigger:focus-visible{border-color:var(--border-focus);box-shadow:0 0 0 4px #11111114}.time-picker-trigger svg{flex-shrink:0;color:var(--text-tertiary);transition:color var(--motion-fast)}.time-picker-trigger:hover svg{color:var(--text-main)}.time-display{font-variant-numeric:tabular-nums;font-size:17px;letter-spacing:.03em}.time-picker-popup{position:absolute;top:calc(100% + 8px);left:0;z-index:120;width:240px;border:1px solid var(--border-subtle);border-radius:14px;background:#fff;box-shadow:0 8px 32px #00000021,0 2px 8px #0000000f;overflow:hidden;animation:popup-enter .15s cubic-bezier(.34,1.4,.64,1) both}@keyframes popup-enter{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.time-picker-header{padding:14px 16px 10px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);background:#fafafa}.time-picker-header span{color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.time-picker-preview{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.05em;color:var(--text-main)}.time-picker-body{display:flex;align-items:center;gap:0;padding:12px 8px}.time-picker-sep{flex-shrink:0;width:20px;text-align:center;font-size:20px;font-weight:700;color:var(--text-tertiary);padding-top:24px}.time-picker-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.time-picker-col-label{text-align:center;color:var(--text-tertiary);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.time-picker-scroll{height:176px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:4px;scroll-snap-type:y mandatory;scrollbar-width:none}.time-picker-scroll::-webkit-scrollbar{display:none}.time-picker-cell{width:100%;min-height:36px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:16px;font-weight:650;font-variant-numeric:tabular-nums;cursor:pointer;scroll-snap-align:start;transition:background var(--motion-fast),color var(--motion-fast),transform var(--motion-fast);flex-shrink:0}.time-picker-cell:hover{background:#f4f4f5;color:var(--text-main);transform:scale(1.04)}.time-picker-cell.active{background:linear-gradient(#181818,#0f0f0f);color:#fff;font-weight:750;transform:scale(1.04);box-shadow:0 2px 8px #0000002e}.time-picker-footer{padding:10px 12px 12px;border-top:1px solid var(--border-subtle);background:#fafafa;display:flex;justify-content:flex-end}.form,.form.compact{display:grid;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid.two{align-items:end}label{display:grid;gap:7px;color:var(--text-secondary);font-size:13px;font-weight:650}input,select,textarea{width:100%;min-height:40px;padding:8px 11px;border:1px solid var(--border-subtle);border-radius:6px;background:#fff;color:var(--text-main);outline:none;transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast)}input:focus,select:focus,textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 4px #0070f314}.compact-row{margin-bottom:24px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr)) auto;align-items:center}.user-toolbar{margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.user-toolbar .search-box{flex:1 1 320px}.check{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.check input{width:16px;min-height:16px}.cell-stack{display:grid;gap:8px}.row-actions{display:inline-flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.editing-row{background:#fbfbfb}.editing-row td{vertical-align:top}.user-modal{width:min(720px,100%)}.modal-form{margin-top:18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.modal-form .check,.modal-form .action-row{grid-column:1 / -1}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:64px}.detail-grid.single{grid-template-columns:minmax(0,1fr)}.project-summary{margin:-16px 0 44px;padding:22px 24px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 28px}.section-block{margin-bottom:48px;animation:section-enter var(--motion-base) both}.section-label{margin-bottom:16px;display:inline-flex;align-items:center;gap:8px;color:var(--text-tertiary);font-size:12px;font-weight:800;letter-spacing:.04em}.content-text{color:var(--text-secondary);font-size:16px}.lecture-list,.timeline,.file-list{margin-top:20px;display:grid;gap:10px}.lecture-list div,.timeline div{padding:14px 16px;border:1px solid var(--border-subtle);border-radius:8px;background:#fff;transition:transform var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast)}.lecture-list div:hover,.timeline div:hover{border-color:#ddd;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.lecture-list span,.timeline span{display:block;color:var(--text-secondary);font-size:13px}.info-strip{position:sticky;top:104px;align-self:start;padding:28px;display:grid;gap:22px}.info-item{display:grid;gap:4px}.info-item label{color:var(--text-tertiary);font-size:12px}.info-item strong{font-size:15px}.inline-form{margin-bottom:18px}.inline-form input,.inline-form select{width:auto;min-width:190px;border:1px solid var(--border-subtle)}.compact-number{display:grid;gap:5px}.compact-number span{color:var(--text-tertiary);font-size:12px;font-weight:700}.inline-form .compact-number input{min-width:120px}.sign-card{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:start}.qr-block{display:grid;gap:10px}.qr-block .btn{width:156px}.sign-time-form{padding:16px;border:1px solid var(--border-subtle);border-radius:8px;background:#fff}.sign-time-form.readonly-block{background:#fcfcfc}.sign-time-form.readonly-block input{color:var(--text-tertiary);background:#f7f7f7;cursor:not-allowed}.readonly-field{color:var(--text-tertiary)}.readonly-field input[disabled],.readonly-field input[readOnly]{color:var(--text-tertiary);background:#f7f7f7}.qr-poster{width:156px;height:156px;padding:12px;display:grid;place-items:center;border:1px solid var(--border-subtle);border-radius:8px;background:#fff;box-shadow:inset 0 0 0 1px #ffffffb3,var(--shadow-sm);transition:transform var(--motion-base),box-shadow var(--motion-base)}.qr-poster:hover{transform:scale(1.015);box-shadow:var(--shadow-md)}.qr-poster img{width:132px;height:132px;image-rendering:pixelated}.alert{padding:12px 14px;border-radius:6px;font-size:13px}.alert.danger{background:#fff5f5;color:#b4232a;border:1px solid #ffd6d8}.alert.info{background:#f7fbff;color:#17406f;border:1px solid #d8e8fb}.file-list a,.file-list button,.file-list span{color:var(--text-secondary);font-size:13px}.inline-files{margin-top:0}.inline-files strong{display:block}.archive-grid{display:grid;gap:12px;margin-bottom:18px}.archive-row{padding:14px;display:grid;grid-template-columns:1fr minmax(240px,340px);gap:14px;align-items:center;border:1px solid var(--border-subtle);border-radius:8px;background:#fff;transition:transform var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast)}.archive-row:hover{border-color:#d8d8d8;background:#fff;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.archive-row div{display:grid;gap:3px}.archive-row span{width:-moz-fit-content;width:fit-content;padding:2px 8px;border-radius:999px;background:#f5f5f5;color:var(--text-secondary);font-size:12px}.archive-row a,.archive-row .link-button{color:var(--accent-blue);font-size:12px}.archive-file{width:-moz-fit-content;width:fit-content;padding:0;display:inline-flex;align-items:center;gap:8px;background:transparent}.archive-file button:not(.link-button){padding:1px 6px;border:1px solid #ffd6d8;border-radius:999px;background:#fff8f8;color:#b4232a;font-size:12px;transition:transform var(--motion-fast),background var(--motion-fast)}.archive-file button:not(.link-button):hover{background:#ffecec;transform:translateY(-1px)}.file-picker{gap:6px}.file-picker input[type=file]{padding:10px;border:1px solid var(--border-subtle);border-radius:6px;background:#fff}.file-picker span{width:-moz-fit-content;width:fit-content;padding:0;border-radius:0;background:transparent;color:var(--text-tertiary);font-size:12px;font-weight:600}.archive-download{margin-bottom:14px}.people-panel{display:grid;gap:10px}.people-toolbar{padding:10px 12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--border-subtle);border-radius:8px;background:#fff;color:var(--text-secondary);font-size:13px;box-shadow:var(--shadow-sm)}.people-toolbar label{width:auto;display:inline-flex;align-items:center;gap:8px}.people-toolbar select{width:86px;min-height:32px;padding:4px 8px}.pager{margin-left:auto;display:inline-flex;align-items:center;gap:8px}.compact-table th,.compact-table td{padding:10px 16px}.people-table table{min-width:0}.people-table input[type=checkbox]{width:18px;min-height:18px}.empty{min-height:120px;padding:28px;display:grid;place-items:center;gap:12px;border:1px dashed #d8d8d8;border-radius:8px;color:var(--text-secondary);background:#fff9;text-align:center;animation:fade-in var(--motion-base) both}.spinner{width:22px;height:22px;border:2px solid #ddd;border-top-color:#111;border-radius:50%;animation:spin .8s linear infinite}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes section-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.login-screen{min-height:100vh;display:grid;place-items:center;padding:32px}.login-panel{width:min(520px,100%);padding:36px;animation:panel-pop .32s cubic-bezier(.2,0,0,1) both}.brand-mark{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:800}.login-panel h1{margin:24px 0 10px;font-size:34px;line-height:1.14}.login-panel p{margin:0 0 26px;color:var(--text-secondary)}.center-panel{max-width:520px;margin:48px auto;padding:42px;display:grid;justify-items:center;gap:16px;text-align:center;animation:panel-pop .32s cubic-bezier(.2,0,0,1) both}.signin-panel{gap:12px}.signin-panel h1{margin:0;font-size:28px;line-height:1.22}.signin-subtitle{margin:-2px 0 0;color:var(--text-secondary);font-size:14px}.signin-detail{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;text-align:left}.signin-panel .info-item{gap:2px}.signin-panel .info-item strong{font-size:14px}.signin-submit{width:100%;min-height:54px;font-size:17px;font-weight:750}@keyframes panel-pop{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.dict-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.dict-card{padding:20px}.dict-card h3{margin:0 0 14px}.dict-card span{margin:0 8px 8px 0;padding:5px 9px;display:inline-flex;gap:8px;align-items:center;border-radius:999px;background:#f5f5f5;color:var(--text-secondary);font-size:13px}.dict-card button{border:0;background:transparent;color:var(--text-tertiary);transition:color var(--motion-fast),transform var(--motion-fast)}.dict-card button:hover{color:#b4232a;transform:scale(1.08)}.toast{position:fixed;top:50%;left:50%;z-index:9999;min-width:420px;max-width:min(560px,calc(100vw - 48px));padding:22px 26px 22px 20px;display:grid;grid-template-columns:14px 1fr;gap:18px;align-items:center;border:1px solid #d6d6d6;border-radius:12px;background:#fffffffa;color:#111;font-size:17px;font-weight:750;letter-spacing:0;pointer-events:none;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 26px 60px #0003,0 0 0 1px #ffffffc2 inset;transform:translate(-50%,-50%);transform-origin:center;animation:toast-in .28s cubic-bezier(.2,0,0,1) both,toast-out .26s cubic-bezier(.4,0,1,1) 3.9s both}.toast span{width:14px;height:56px;border-radius:999px;background:var(--accent-blue)}.toast strong{display:block;font-size:19px;line-height:1.45}.toast.success{border-color:#bfe0cc;background:#fbfffd;color:#064e3b}.toast.success span{background:#0f9f6e}.toast.error{border-color:#ebbbbe;background:snow;color:#9f1d24}.toast.error span{background:#d64550}.toast.info{border-color:#c3d8f4;background:#fbfdff;color:#17406f}.toast.info span{background:var(--accent-blue)}.confirm-backdrop{position:fixed;inset:0;z-index:9998;padding:24px;display:grid;place-items:center;background:#1111113d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:fade-in .16s ease-out both}.confirm-panel{width:min(420px,100%);padding:22px;border:1px solid var(--border-subtle);border-radius:10px;background:#fffffff5;box-shadow:var(--shadow-lg);animation:panel-pop .22s cubic-bezier(.2,0,0,1) both}.confirm-panel.user-modal{width:min(720px,100%)}.confirm-panel h2{margin:0;font-size:20px;line-height:1.25}.confirm-panel p{margin:10px 0 20px;color:var(--text-secondary);font-size:14px}.confirm-panel .action-row{justify-content:flex-end}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 18px)) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,calc(-50% + 8px)) scale(.96)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:920px){.topbar-inner{height:52px;padding:0 16px}.app-layout{margin:18px auto 28px;padding:0 16px;grid-template-columns:1fr;gap:18px}.side-nav{position:sticky;top:52px;z-index:8;margin:0 -16px;padding:6px 16px;display:flex;flex-direction:row;align-items:center;gap:8px;overflow-x:auto;overflow-y:hidden;background:#fafafae6;border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.side-nav::-webkit-scrollbar{display:none}.nav-item{min-height:36px;flex:0 0 auto;padding:8px 12px;border-left:0;border-bottom:0;border-radius:999px;background:#ffffffb8;border:1px solid transparent;font-size:13px;white-space:nowrap}.nav-item:hover,.nav-item.active{border-color:#ddd;background:#fff;transform:none;box-shadow:var(--shadow-sm)}.content{animation-duration:.18s}.page-header,.detail-header{margin-bottom:22px;display:grid;gap:14px}.page-header h1,.detail-header h1{font-size:28px}.detail-header h1{max-width:none}.page-header p,.detail-header p{margin-top:6px;font-size:14px}.action-row,.inline-form,.filter-bar,.quick-actions{gap:8px}.btn{min-height:42px;padding:0 14px;font-size:14px}.btn.small{min-height:36px;padding:0 12px;font-size:13px}.stat-grid{margin-bottom:24px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stat-card{padding:14px}.stat-card strong{font-size:24px}.quick-actions{margin-bottom:28px}.action-card{min-height:76px;padding:14px;grid-template-columns:34px 1fr;-moz-column-gap:12px;column-gap:12px}.action-card span{width:34px;height:34px}.detail-grid,.form-grid,.dict-grid,.wheel-picker,.modal-form,.compact-row{grid-template-columns:1fr}.user-toolbar{align-items:stretch}.user-toolbar .search-box,.user-toolbar .row-actions{width:100%}.user-toolbar .row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.wheel-scroll{height:116px;padding:40px 6px}.wheel-scroll button{min-height:34px}.project-summary{margin:-4px 0 28px;padding:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.section-block{margin-bottom:30px}.section-label{margin-bottom:10px}.content-text{max-width:none;font-size:15px}.signin-panel{margin:20px auto;padding:22px 18px 26px;gap:10px}.signin-panel h1{font-size:22px}.signin-subtitle{font-size:13px}.signin-detail{grid-template-columns:1fr;gap:8px}.signin-panel .info-item{padding:10px 12px;border:1px solid var(--border-subtle);border-radius:8px;background:#fcfcfc}.signin-panel .info-item label{font-size:11px}.signin-panel .info-item strong{font-size:13px;line-height:1.35}.signin-panel .content-text{font-size:14px;line-height:1.5}.signin-submit{min-height:58px;font-size:18px;border-radius:12px}.form-card{padding:18px;gap:16px}input,select,textarea{min-height:44px;font-size:16px}.inline-form input,.inline-form select{width:100%;min-width:0}.inline-form .btn{flex:1 1 150px}.info-strip{position:static}.sign-card{grid-template-columns:1fr;gap:14px}.qr-block{grid-template-columns:136px minmax(0,1fr);align-items:start}.qr-poster{width:136px;height:136px;padding:10px}.qr-poster img{width:116px;height:116px}.sign-card .form.compact{gap:10px}.sign-card .btn{width:100%}.archive-row{grid-template-columns:1fr;gap:10px;padding:12px}.archive-row input[type=file]{padding:8px}.archive-row .btn,.archive-download{width:100%}.people-toolbar{gap:8px}.people-toolbar .btn{min-height:38px}.people-toolbar label{flex:0 0 auto}.pager{width:100%;margin-left:0;justify-content:space-between}.table-card{margin:0 -2px;overflow-x:auto;-webkit-overflow-scrolling:touch}table{min-width:680px}th{padding:10px 14px}td{padding:12px 14px}.toast{inset:50% auto auto 50%;min-width:0;max-width:none;width:min(420px,calc(100vw - 24px));padding:16px 18px 16px 14px;border-radius:10px;gap:14px;font-size:15px}.toast span{width:12px;height:38px}.toast strong{font-size:16px}.confirm-backdrop{padding:16px;align-items:end}.confirm-panel{width:100%;padding:18px}.confirm-panel .action-row{display:grid;grid-template-columns:1fr 1fr}.confirm-panel .btn{width:100%}}@media(max-width:640px){.topbar-inner{padding:0 12px}.logo-button{max-width:58vw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-chip{gap:6px}.user-chip span:nth-child(2){display:none}.app-layout{margin-top:12px;padding:0 12px}.side-nav{margin:0 -12px;padding:6px 12px}.nav-item{min-height:34px;padding:7px 10px;gap:8px}.page-header h1,.detail-header h1{font-size:25px}.detail-header .action-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.detail-header .action-row .badge{min-height:42px;justify-content:center}.detail-header .action-row .btn{width:100%}.back-link{min-height:34px;width:-moz-fit-content;width:fit-content}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{min-height:78px;padding:12px 10px}.stat-card span{font-size:11px}.stat-card strong{font-size:22px}.quick-actions{display:grid;grid-template-columns:1fr}.action-card{flex:none;min-height:72px}.section-title{margin:24px 0 12px}.section-title h2{font-size:17px}.project-summary{padding:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.info-item{gap:2px}.info-item strong{font-size:14px;word-break:break-word}.lecture-list,.timeline,.file-list{margin-top:12px}.lecture-list div,.timeline div{padding:12px}.inline-form{display:grid;grid-template-columns:1fr}.inline-form .btn{width:100%}.tab-group{width:100%;overflow-x:auto;scrollbar-width:none}.tab-group::-webkit-scrollbar{display:none}.tab-group button{flex:0 0 auto;min-height:38px;padding:0 12px}.search-box{width:100%;min-width:0}.filter-bar{display:grid;grid-template-columns:1fr}.people-toolbar{display:grid;grid-template-columns:auto 1fr;align-items:center}.people-toolbar label{justify-content:end}.pager{grid-column:1 / -1}.people-table table{min-width:520px}.compact-table th,.compact-table td{padding:9px 12px}.archive-file{max-width:100%}.archive-file a{min-width:0;overflow-wrap:anywhere}.empty{min-height:96px;padding:20px 14px}}@media(max-width:420px){.stat-grid{grid-template-columns:1fr}.stat-card{min-height:auto}}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.module-content{--page: var(--muted);--page-deep: var(--muted);--surface: var(--card);--ink: var(--foreground);--subtle: var(--muted-foreground);--line: var(--border);--line-strong: var(--border);--primary-deep: var(--primary);--green: oklch(.627 .149 159);--amber: oklch(.75 .15 70);--red: var(--destructive);--shadow-blue: oklch(.148 .004 228.8 / .06);--shadow-strong: oklch(.148 .004 228.8 / .1);min-height:100%;color:var(--ink);background:var(--muted);font-size:16px;line-height:1.6}html{scroll-behavior:smooth}button,a{cursor:pointer}.app-shell{min-height:100vh;padding:0 0 16px}.portal-header{width:min(100% - 32px,1280px);min-height:86px;margin:0 auto;padding:16px 20px;display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;background:#ffffffe0;border:1px solid var(--line);border-radius:24px;box-shadow:0 16px 40px var(--shadow-blue);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%)}.brand-block{display:flex;align-items:center;gap:14px}.brand-mark{width:46px;height:46px;display:grid;place-items:center;color:var(--primary);background:var(--primary-soft);border:1px solid #d4e7ff;border-radius:14px;font-size:22px}.brand-mark img{width:100%;height:100%;border-radius:inherit;-o-object-fit:cover;object-fit:cover}.brand-block h1{margin:0;font-size:20px;letter-spacing:0}.top-nav{display:flex;justify-content:center;gap:8px}.top-nav button,.user-pill button,.section-heading button,.ghost-action,.row-actions button{border:0;background:transparent;color:var(--muted-foreground);border-radius:10px;padding:9px 12px;transition:background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}.top-nav button[data-checked=true]{color:var(--primary);font-weight:500}.top-nav button:hover,.user-pill button:hover,.section-heading button:hover,.ghost-action:hover,.row-actions button:hover{color:var(--primary);background:var(--primary-soft)}.top-nav button:active,.user-pill button:active,.section-heading button:active,.ghost-action:active,.row-actions button:active,.download-row a:active,.primary-action:active{transform:translateY(1px) scale(.98)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(0,102,204,.22);outline-offset:3px}.user-pill{min-width:0;display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted-foreground);font-size:13px}.user-pill button{padding:5px 6px}.content-shell,.admin-shell,.login-shell{width:min(100% - 32px,1280px);margin:0 auto}.content-shell{padding:28px 0 10px;animation:content-enter .24s ease both}.content-section,.detail-panel,.admin-panel,.login-panel{background:#ffffffc7;border:1px solid var(--line);border-radius:24px;box-shadow:0 16px 40px var(--shadow-blue)}.welcome-rule{display:block;width:60px;height:4px;margin-bottom:24px;border-radius:999px;background:linear-gradient(90deg,var(--primary),rgba(0,102,204,.12))}.login-panel h2,.detail-panel h2,.list-toolbar h2,.admin-heading h2{margin:0;color:var(--ink);font-weight:800;letter-spacing:0}.login-panel p,.list-toolbar p,.admin-heading p,.lead{color:var(--muted-foreground);line-height:1.75}.section-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.content-section,.detail-panel,.admin-panel{padding:20px}.section-heading,.list-toolbar,.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.section-heading h3{margin:0;font-size:18px;line-height:1.35}.card-list{display:flex;flex-direction:column;gap:12px}.content-card{width:100%;min-height:118px;display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;text-align:left;padding:18px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:18px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.content-card:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:0 18px 36px var(--shadow-blue)}.content-card:disabled{cursor:wait;opacity:.82}.content-card:disabled:hover{transform:none;box-shadow:none}.content-card:active{transform:translateY(0) scale(.995);background:#f8fbff}.content-card:focus-visible{outline:3px solid rgba(0,102,204,.22);outline-offset:3px;border-color:var(--primary)}.content-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;color:var(--primary);background:var(--primary-soft);font-size:21px}.content-icon.document{color:var(--green);background:#ddf7ef}.content-icon.video{color:#4176e1;background:#edf3ff}.content-main{min-width:0;display:flex;flex-direction:column;gap:7px}.content-main strong{overflow:hidden;font-size:16px;line-height:1.45;white-space:nowrap;text-overflow:ellipsis}.summary{color:var(--subtle);font-size:13.5px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.content-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--subtle);font-size:12px}.content-meta span{padding:3px 8px;border-radius:999px;background:#f4f8fc;border:1px solid #e6eef7}.content-meta .pin{color:#9a5b00;background:#fff7e6;border-color:#ffe1a8}.card-arrow{color:#c5d3e2}.card-status{width:18px;height:18px;display:grid;place-items:center;color:var(--primary)}.empty-state{padding:28px;text-align:center;color:var(--subtle);background:#fff;border:1px dashed var(--line-strong);border-radius:18px}.search-box{width:min(100%,380px);display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--subtle)}.search-box input{width:100%;height:44px;border:0;outline:0}.detail-panel{margin-top:16px}.detail-panel h2{margin-top:14px;font-size:30px}.article-body{margin:20px 0;color:var(--ink);white-space:pre-wrap;line-height:1.85}.preview-box,.video-box{overflow:hidden;margin-top:18px;border:1px solid var(--line);border-radius:18px;background:#f8fbff}.preview-box iframe{width:100%;height:min(72vh,760px);border:0}.image-preview-list{display:grid;gap:16px;margin-top:18px}.image-preview-page{position:relative;overflow:hidden;min-height:220px;margin:0;border:1px solid var(--line);border-radius:18px;background:#f8fbff;box-shadow:0 10px 28px #0f4b8114}.image-preview-page img{display:block;width:100%;min-height:220px;height:auto;background:#fff}.image-loading,.image-waiting{position:absolute;top:12px;right:12px;z-index:1;display:inline-flex;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:8px 10px;color:var(--primary);background:#ffffffeb;border:1px solid var(--line);border-radius:999px;box-shadow:0 8px 22px #0f4b811f;pointer-events:none}.image-waiting{color:var(--subtle);background:#f8fbfff0}.image-loading span,.image-waiting span{color:var(--muted-foreground);font-size:13px;line-height:1.2;white-space:nowrap}.image-preview-page.is-waiting{background:linear-gradient(90deg,rgba(0,102,204,.035) 1px,transparent 1px),linear-gradient(0deg,rgba(0,102,204,.03) 1px,transparent 1px),#f8fbff;background-size:24px 24px,24px 24px,auto}.image-preview-page figcaption{padding:10px 14px;color:var(--subtle);font-size:13px;text-align:center;border-top:1px solid var(--line)}.preview-hint,.preview-message{display:flex;align-items:center;gap:8px;color:var(--muted-foreground);font-size:14px;line-height:1.6}.preview-hint{margin:0;padding:12px 14px;border-top:1px solid var(--line);background:#eaf3ffb8}.preview-message{margin-top:18px;padding:14px 16px;border:1px dashed var(--line-strong);border-radius:16px;background:#f8fbff}.preview-hint i,.preview-message i{color:var(--primary)}.video-box video{width:100%;max-height:70vh;display:block;background:#000}.download-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.download-row a,.primary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 16px;color:#fff;text-decoration:none;border:0;border-radius:12px;background:var(--primary);font-weight:700;box-shadow:0 10px 22px #0066cc2e;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}.download-row a:hover,.primary-action:hover{background:var(--primary-deep);box-shadow:0 14px 28px #0066cc38}.ghost-action{display:inline-flex;align-items:center;gap:8px;margin:0}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-panel{width:min(100%,560px);padding:38px}.login-panel h2{font-size:36px;line-height:1.15}.admin-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.85fr);gap:18px;padding:34px 0 10px}.admin-heading select,.content-form input,.content-form select,.content-form textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}.admin-heading select{max-width:160px;height:40px;padding:0 10px}.admin-table{display:flex;flex-direction:column;gap:10px}.admin-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff}.admin-row strong,.admin-row span{display:block}.admin-row span{margin-top:5px;color:var(--subtle);font-size:13px}.row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.row-actions .danger{color:var(--red)}.content-form{display:flex;flex-direction:column;gap:14px}.content-form label{display:flex;flex-direction:column;gap:7px;color:var(--muted-foreground);font-size:13px;font-weight:700}.content-form input,.content-form select{height:42px;padding:0 12px}.content-form textarea{min-height:120px;padding:12px;resize:vertical}.form-grid,.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.check-line{flex-direction:row!important;align-items:center}.check-line input{width:auto;height:auto}.toast{position:fixed;left:50%;bottom:28px;z-index:20;transform:translate(-50%);padding:12px 18px;color:#fff;border-radius:14px;background:#111827e6;box-shadow:0 18px 40px #1118272e;animation:toast-enter .2s ease both}.toast.error{background:#be123ceb}.loading-screen{min-height:100vh;display:grid;place-items:center;gap:10px;color:var(--primary);font-weight:700}@keyframes content-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-enter{0%{opacity:0;transform:translate(-50%) translateY(8px) scale(.98)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:980px){.portal-header,.section-grid,.admin-shell{grid-template-columns:1fr}.top-nav{justify-content:flex-start;overflow-x:auto}.portal-header{align-items:stretch}}@media(max-width:640px){.app-shell{padding-top:10px}.portal-header,.content-shell,.admin-shell{width:min(100% - 20px,1280px)}.portal-header{min-height:auto;padding:12px;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;align-items:center;border-radius:18px}.brand-block{grid-column:1;gap:10px;min-width:0}.brand-mark{width:40px;height:40px;border-radius:12px;font-size:19px}.brand-block h1{overflow:hidden;font-size:18px;line-height:1.3;white-space:nowrap;text-overflow:ellipsis}.top-nav{grid-column:1 / -1;grid-row:2;width:100%;flex-wrap:wrap;justify-content:flex-start;gap:6px}.top-nav button{flex:0 1 auto;padding:8px 10px;font-size:14px}.user-pill{grid-column:2;grid-row:1;justify-self:end;align-self:center;max-width:112px;padding:6px 8px;font-size:12px}.user-pill span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.content-shell,.admin-shell{padding-top:16px}.content-section,.detail-panel,.admin-panel,.login-panel{border-radius:18px}.login-panel h2{font-size:30px;line-height:1.2}.form-grid,.permission-grid{grid-template-columns:1fr}.section-grid{gap:12px}.content-section,.detail-panel,.admin-panel{padding:14px}.section-heading,.list-toolbar,.admin-heading{align-items:flex-start;flex-direction:column;gap:10px}.section-heading{align-items:center;flex-direction:row}.section-heading h3{min-width:0;flex:1}.section-heading button{flex:0 0 auto;padding:6px 8px;white-space:nowrap}.content-card{min-height:96px;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:14px;border-radius:14px}.content-icon{width:40px;height:40px;border-radius:12px;font-size:18px}.content-main strong{font-size:15px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.summary{font-size:13px;-webkit-line-clamp:2}.card-arrow{display:none}.search-box{width:100%}.admin-row{grid-template-columns:1fr}.row-actions{justify-content:flex-start}.download-row a,.primary-action{width:100%}}:root{--background: oklch(1 0 0);--foreground: oklch(.148 .004 228.8);--card: oklch(1 0 0);--card-foreground: oklch(.148 .004 228.8);--popover: oklch(1 0 0);--popover-foreground: oklch(.148 .004 228.8);--primary: oklch(.488 .243 264.376);--primary-foreground: oklch(.97 .014 254.604);--secondary: oklch(.967 .001 286.375);--secondary-foreground: oklch(.21 .006 285.885);--muted: oklch(.963 .002 197.1);--muted-foreground: oklch(.56 .021 213.5);--accent: oklch(.488 .243 264.376);--accent-foreground: oklch(.97 .014 254.604);--destructive: oklch(.577 .245 27.325);--border: oklch(.925 .005 214.3);--input: oklch(.925 .005 214.3);--ring: oklch(.723 .014 214.4);--radius: .625rem;--sidebar: oklch(.987 .002 197.1);--sidebar-foreground: oklch(.148 .004 228.8);--sidebar-primary: oklch(.546 .245 262.881);--sidebar-primary-foreground: oklch(.97 .014 254.604);--sidebar-accent: oklch(.963 .002 197.1);--sidebar-accent-foreground: oklch(.218 .008 223.9);--sidebar-border: oklch(.925 .005 214.3);--primary-soft: var(--sidebar-accent);--page: var(--muted);--page-deep: var(--muted);--surface: var(--card);--ink: var(--foreground);--subtle: var(--muted-foreground);--line: var(--border);--line-strong: var(--border);--primary-deep: var(--primary);--green: oklch(.627 .149 159);--amber: oklch(.75 .15 70);--red: var(--destructive);--shadow-blue: oklch(.148 .004 228.8 / .06);--shadow-strong: oklch(.148 .004 228.8 / .1);--bg-base: var(--muted);--grid-color: oklch(.148 .004 228.8 / .04);--border-subtle: var(--border);--border-focus: var(--primary);--surface-hover: var(--card);--text-main: var(--foreground);--text-secondary: var(--muted-foreground);--text-tertiary: var(--muted-foreground);--accent-blue: var(--primary);--accent-green: oklch(.627 .149 159);--accent-red: var(--destructive);--accent-orange: oklch(.7 .15 55)}.module-skill,.module-credit,.module-cme,.module-content{min-height:100%;background:var(--muted);color:var(--foreground);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}.module-frame-content>.module-skill,.module-frame-content>.module-credit,.module-frame-content>.module-cme,.module-frame-content>.module-content{min-height:calc(100vh - 4rem)}.module-frame-body{min-height:calc(100vh - 4rem);display:grid;grid-template-columns:288px minmax(0,1fr);background:var(--muted)}.module-frame-sidebar{position:fixed;inset:4rem auto 0 0;z-index:30;width:288px;display:flex;flex-direction:column;overflow:hidden;padding:24px;border-right:1px solid var(--border);background:var(--card);transition:width .18s ease,padding .18s ease}.module-frame-portal-sidebar{position:sticky;inset:auto;top:4rem;width:264px;height:calc(100vh - 4rem);min-height:calc(100vh - 4rem);flex:0 0 264px;padding:16px 12px}.module-frame-portal-sidebar.is-collapsed{width:72px;flex-basis:72px;padding:16px 10px}.portal-sidebar-account-copy{display:grid;min-width:0;gap:2px;line-height:1.2}.portal-sidebar-account-copy strong{overflow:hidden;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.portal-sidebar-account-copy small{overflow:hidden;color:var(--muted-foreground);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.portal-sidebar-account-arrow{flex:0 0 auto;color:var(--muted-foreground)}.module-frame-sidebar-topline{display:flex;align-items:center;justify-content:flex-start}.module-frame-sidebar-topline .module-frame-workbench{width:calc(100% - 34px);margin-left:34px;justify-content:flex-start;text-align:left}.module-frame-sidebar-scroll{min-height:0;flex:1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.module-frame-sidebar-footer{flex:0 0 auto;display:flex;justify-content:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.module-frame-portal-sidebar .module-frame-sidebar-footer{display:grid;gap:6px;margin-top:10px;padding:10px 4px 0}.portal-sidebar-account{display:flex;min-width:0;align-items:center;gap:9px;min-height:42px;padding:5px 6px;border-radius:var(--radius);color:var(--foreground);transition:background-color .16s ease,color .16s ease}.portal-sidebar-account:hover{color:var(--primary);background:var(--primary-soft)}.portal-sidebar-account-menu-wrap{position:relative}.portal-sidebar-account-menu{position:absolute;right:-4px;bottom:calc(100% + 2px);z-index:40;display:grid;min-width:172px;gap:3px;padding:6px;border:1px solid var(--border);border-radius:10px;background:var(--card);box-shadow:0 12px 28px #0f172a1f}.portal-sidebar-account-menu button{display:flex;width:100%;align-items:center;gap:9px;min-height:34px;padding:0 9px;border:0;border-radius:7px;color:var(--foreground);background:transparent;font-size:13px;text-align:left;cursor:pointer}.portal-sidebar-account-menu button:hover{background:var(--primary-soft);color:var(--primary)}.portal-sidebar-account-menu button.is-danger{color:#dc2626}.portal-sidebar-account-menu button.is-danger:hover{background:#fef2f2;color:#b91c1c}.portal-sidebar-account-menu button:disabled{cursor:wait;opacity:.6}.portal-sidebar-account-icon{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border-radius:8px;color:var(--primary);background:var(--primary-soft)}.portal-sidebar-account-copy{flex:1}.module-frame-rail-toggle,.module-frame-module-toggle{display:grid;place-items:center;border:0;color:var(--muted-foreground);background:transparent;cursor:pointer;transition:color .16s ease,background .16s ease}.module-frame-rail-toggle{width:100%;height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 0 100%;border-radius:8px;font-size:13px;font-weight:500}.module-frame-rail-toggle span{white-space:nowrap}.module-frame-rail-toggle:hover,.module-frame-module-toggle:hover{color:var(--primary);background:var(--primary-soft)}.module-frame-module-tree,.portal-sidebar-group{margin-top:10px}.portal-sidebar-group:first-child{margin-top:2px}.portal-sidebar-group+.portal-sidebar-group{margin-top:0}.module-frame-portal-sidebar .module-frame-module-tree{margin-top:0}.module-frame-module-heading{display:flex;align-items:center;gap:4px;border-radius:var(--radius);transition:background .16s ease}.module-frame-module-link{min-width:0;min-height:40px;flex:1;display:flex;align-items:center;gap:12px;padding:0 12px;border:0;border-radius:var(--radius);color:color-mix(in oklch,var(--foreground) 78%,var(--muted-foreground));background:transparent;font-size:14px;font-weight:500;text-align:left;cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease}.module-frame-module-group.is-current>.module-frame-module-heading{background:color-mix(in oklch,var(--primary-soft) 74%,var(--card))}.module-frame-module-group.is-current>.module-frame-module-heading .module-frame-module-link{color:var(--primary);background:transparent}.module-frame-module-heading:hover{background:color-mix(in oklch,var(--primary-soft) 72%,var(--card))}.module-frame-module-link:hover{color:var(--primary);background:transparent}.module-frame-module-link:active{transform:scale(.99)}.module-frame-module-toggle{width:30px;height:30px;flex:0 0 30px;border-radius:7px}.module-frame-accordion-content{overflow:hidden;transform-origin:left center}.module-frame-module-items{margin:4px 0 6px;padding-left:12px}.module-frame-module-separator{height:1px;margin:9px 0;background:var(--border)}.module-frame-workbench,.module-frame-group-label,.module-frame-nav-item{min-height:40px;display:flex;align-items:center;gap:12px;border-radius:8px;font-size:14px;line-height:1.2}.module-frame-workbench{padding:0 12px;color:var(--foreground);background:transparent;font-weight:500}.module-frame-workbench:hover{color:var(--primary);background:var(--primary-soft)}.module-frame-workbench.is-active{color:var(--primary);background:color-mix(in oklch,var(--primary-soft) 74%,var(--card))}.module-frame-group-label{justify-content:space-between;margin-top:16px;padding:0 14px;color:var(--foreground);font-weight:500}.module-frame-nav{display:flex;flex-direction:column;gap:2px;margin-top:4px}.module-frame-nav-item{width:100%;padding:0 14px;border:0;background:transparent;color:color-mix(in oklch,var(--foreground) 74%,var(--muted-foreground));text-align:left;transition:background .16s ease,color .16s ease,transform .16s ease}.module-frame-nav-item:hover,.module-frame-nav-item.is-active{color:var(--primary);background:var(--primary-soft)}.module-frame-nav-item:active{transform:scale(.99)}.module-frame-divider{height:1px;margin:18px 0 10px;background:var(--border)}.module-frame-module-links .module-frame-nav-item{color:var(--foreground)}.module-frame-body.is-collapsed{grid-template-columns:72px minmax(0,1fr)}.module-frame-sidebar.is-collapsed{width:72px;padding:24px 10px}.module-frame-sidebar.is-collapsed .module-frame-workbench,.module-frame-sidebar.is-collapsed .module-frame-module-link{justify-content:center;padding:0}.module-frame-sidebar.is-collapsed .module-frame-workbench span,.module-frame-sidebar.is-collapsed .module-frame-module-link span,.module-frame-sidebar.is-collapsed .module-frame-module-toggle{display:none}.module-frame-sidebar.is-collapsed .module-frame-module-heading{justify-content:center}.module-frame-sidebar.is-collapsed .module-frame-module-items{padding-left:0}.module-frame-sidebar.is-collapsed .module-frame-nav-item{justify-content:center;padding:0}.module-frame-sidebar.is-collapsed .module-frame-nav-item span{display:none}.module-frame-sidebar.is-collapsed .module-frame-module-separator{margin:12px 0}.module-frame-sidebar.is-collapsed .module-frame-rail-toggle{width:40px;flex-basis:40px}.module-frame-sidebar.is-collapsed .module-frame-rail-toggle span,.module-frame-portal-sidebar.is-collapsed .portal-sidebar-account-copy,.module-frame-portal-sidebar.is-collapsed .portal-sidebar-account-arrow{display:none}.module-frame-portal-sidebar.is-collapsed .portal-sidebar-account{justify-content:center;padding:5px 0}.module-frame-portal-sidebar.is-collapsed .module-frame-sidebar-footer{padding-left:0;padding-right:0}.module-frame-content{grid-column:2;min-width:0;min-height:calc(100vh - 4rem);max-width:100%;overflow-x:clip}.module-frame-shell>header{height:4rem!important;min-height:4rem}.module-frame-shell>header>div{padding-left:24px;padding-right:24px}.module-frame-shell>header img{width:32px;height:32px}.module-frame-content .module-skill{height:calc(100vh - 4rem)}.module-skill>aside{top:4rem;height:calc(100vh - 4rem)}.module-frame-skill .module-skill>aside{display:none!important}.module-frame-skill .module-skill>div{margin-left:0!important}.module-frame-skill .module-skill>div>header{display:none!important}.module-frame-skill .module-skill main{padding:32px 36px}.module-frame-skill .skill-stat-row{margin-bottom:7px}.module-frame-skill .skill-stat-row,.module-frame-skill .module-skill .skill-stat-row{border-radius:0}.module-skill>div>header,.module-cme .topbar{display:none!important}.module-cme .app-layout{margin-top:0}.module-content .portal-header{min-height:58px;border-top:0}.module-content .user-pill{display:none}.module-content .portal-context{color:var(--muted-foreground);font-size:13px}.module-cme .grid-bg{background-image:none;background:var(--muted)}.module-cme .topbar{top:0;height:auto;border-bottom:1px solid var(--border);background:color-mix(in oklch,var(--card) 85%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:none}.module-cme .topbar-inner{max-width:none;height:64px;padding:0 24px}.module-cme .logo-button{font-weight:500;color:var(--foreground)}.module-cme .app-layout{max-width:none;margin:0;padding:32px 36px;display:block}.module-frame-cme .module-cme .side-nav{display:none!important}.module-frame-cme .module-cme .content{max-width:1180px;margin:0 auto}.module-cme .side-nav{top:88px;padding:8px;border:1px solid var(--sidebar-border);border-radius:var(--radius);background:var(--sidebar)}.module-cme .nav-item{min-height:40px;margin:2px 0;border-left:0;border-radius:calc(var(--radius) - 2px);color:var(--sidebar-foreground);font-weight:400}.module-cme .nav-item:hover{background:var(--sidebar-accent);transform:none;color:var(--sidebar-foreground)}.module-cme .nav-item.active{background:var(--sidebar-accent);color:var(--sidebar-primary);font-weight:500}.module-cme .page-header h1,.module-cme .detail-header h1{font-size:28px;font-weight:500;letter-spacing:-.02em}.module-cme .btn{border-radius:calc(var(--radius) - 2px);font-weight:500}.module-cme .btn.primary{border-color:var(--primary);background:var(--primary);color:var(--primary-foreground)}.module-cme .btn.primary:hover{border-color:var(--primary);background:var(--primary);opacity:.92;box-shadow:none}.module-cme .stat-card,.module-cme .card,.module-cme .panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:none}.module-content .portal-header{width:100%;min-height:64px;margin:0;padding:0 24px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:color-mix(in oklch,var(--card) 85%,transparent);box-shadow:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.module-frame-content .module-content .portal-header{display:none!important}.module-frame-content .module-content.app-shell{padding:32px 36px 48px}.module-frame-content .module-content .content-section,.module-frame-content .module-content .detail-panel,.module-frame-content .module-content .admin-panel,.module-frame-content .module-content .content-card{box-shadow:none}.module-frame-credit .credit-internal-tabs{display:none!important}.module-frame-credit .module-credit>div.max-w-7xl{max-width:1180px;padding:32px 36px}.module-frame-credit .module-credit h1{font-size:32px;font-weight:500}.module-frame-mobile-icon{width:40px;height:40px;min-height:40px;flex:0 0 40px;display:grid;place-items:center;border:0;border-radius:9px;color:var(--foreground);background:transparent;transition:color .16s ease,background .16s ease,transform .16s ease}.module-frame-mobile-icon:hover{color:var(--primary);background:var(--primary-soft)}.module-frame-mobile-icon:active{transform:scale(.96)}.module-frame-mobile-drawer{position:fixed;inset:0;z-index:80;display:flex}.module-frame-mobile-scrim{position:absolute;inset:0;width:100%;height:100%;min-height:0;border:0;background:color-mix(in oklch,var(--foreground) 28%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.module-frame-mobile-sheet{position:relative;z-index:1;width:min(86vw,328px);height:100dvh;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--card);box-shadow:20px 0 50px color-mix(in oklch,var(--foreground) 15%,transparent)}.module-frame-mobile-sheet-header{min-height:calc(64px + env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(10px,env(safe-area-inset-top)) 12px 10px 16px;border-bottom:1px solid var(--border)}.module-frame-mobile-sheet-scroll{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:16px 14px calc(24px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.module-frame-mobile-nav{position:fixed;inset:auto 0 0;z-index:60;min-height:calc(58px + env(safe-area-inset-bottom));display:flex;align-items:stretch;overflow-x:auto;overflow-y:hidden;padding:4px 8px max(5px,env(safe-area-inset-bottom));border-top:1px solid var(--border);background:color-mix(in oklch,var(--card) 92%,transparent);box-shadow:0 -10px 28px color-mix(in oklch,var(--foreground) 7%,transparent);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.module-frame-mobile-nav::-webkit-scrollbar{display:none}.module-frame-mobile-tab{position:relative;min-width:0;flex:1 0 72px;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;border-radius:10px;color:var(--muted-foreground);background:transparent;font-size:11px;line-height:1}.module-frame-mobile-tab span{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.module-frame-mobile-nav.is-scrollable .module-frame-mobile-tab{flex-basis:80px}.module-frame-mobile-tab.is-active{color:var(--primary);background:var(--primary-soft);font-weight:500}@media(min-width:768px){.portal-app-shell{display:flex;gap:8px;min-height:100vh;padding:8px;background:#f8fafc}.portal-workspace{min-height:calc(100vh - 16px);display:flex;flex-direction:column;overflow:hidden;border:1px solid color-mix(in oklch,var(--border) 90%,white);border-radius:16px;background:var(--card);box-shadow:0 1px 2px #090b0c09}.portal-workspace-header{flex:0 0 64px;min-height:64px;border-color:color-mix(in oklch,var(--border) 78%,white)!important;background:color-mix(in oklch,var(--card) 94%,#f8fafc)!important}.portal-workspace-content{flex:1;min-height:0;overflow-y:auto;background:var(--card)}.module-frame-shell>header{height:auto!important;min-height:0}.module-frame-shell>header>div{padding-left:0;padding-right:0}.module-frame-portal-sidebar{position:sticky;top:8px;width:252px;height:calc(100vh - 16px);min-height:calc(100vh - 16px);flex:0 0 252px;padding:8px 12px 12px;border:0;background:transparent}.module-frame-portal-sidebar.is-collapsed{width:68px;flex-basis:68px;padding:8px 8px 12px}.portal-sidebar-workspace{min-height:64px;display:flex;align-items:center;gap:10px;margin:0 2px 12px;padding:8px 6px;border-radius:10px;color:var(--foreground);transition:background-color .16s ease}.portal-sidebar-workspace:hover{background:color-mix(in oklch,var(--primary-soft) 56%,transparent)}.portal-sidebar-workspace-logo{width:36px;height:36px;flex:0 0 36px;border-radius:11px;-o-object-fit:cover;object-fit:cover}.portal-sidebar-workspace-copy{min-width:0;display:grid;gap:2px;line-height:1.15}.portal-sidebar-workspace-copy strong{overflow:hidden;font-size:14px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.portal-sidebar-workspace-copy small{overflow:hidden;color:var(--muted-foreground);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.portal-sidebar-workspace-arrow{margin-left:auto;flex:0 0 auto;color:var(--muted-foreground)}.module-frame-sidebar-scroll{padding:0 0 8px}.portal-sidebar-group{margin-top:18px}.portal-sidebar-group:first-child{margin-top:0}.portal-sidebar-section-label{margin:0 8px 7px;color:var(--muted-foreground);font-size:12px;line-height:1.4}.module-frame-portal-sidebar .module-frame-module-tree{margin-top:3px}.module-frame-module-heading{gap:2px}.module-frame-workbench,.module-frame-module-link{min-height:38px;border-radius:8px;font-size:14px}.module-frame-workbench{gap:12px;padding:0 12px}.module-frame-module-link{gap:11px;padding:0 10px}.module-frame-module-toggle{width:28px;height:28px;flex-basis:28px}.module-frame-module-items{margin:3px 0 5px;padding-left:16px}.module-frame-nav-item{min-height:36px;padding:0 12px;border-radius:7px;font-size:13px}.module-frame-module-group.is-current>.module-frame-module-heading,.module-frame-workbench.is-active{background:color-mix(in oklch,var(--primary-soft) 66%,var(--card))}.module-frame-module-separator{display:none}.module-frame-sidebar-footer{margin-top:8px;padding-top:12px}.module-frame-portal-sidebar .module-frame-sidebar-footer{padding:12px 4px 0}.module-frame-portal-sidebar.is-collapsed .portal-sidebar-workspace{justify-content:center;margin-left:0;margin-right:0;padding-left:0;padding-right:0}.module-frame-portal-sidebar.is-collapsed .portal-sidebar-workspace-copy,.module-frame-portal-sidebar.is-collapsed .portal-sidebar-workspace-arrow,.module-frame-portal-sidebar.is-collapsed .portal-sidebar-section-label{display:none}.module-frame-portal-sidebar.is-collapsed .portal-sidebar-account-menu{right:auto;left:0}.module-frame-content{min-height:0}.module-frame-content .module-skill{height:auto;min-height:calc(100vh - 80px)}}@media(max-width:900px){.module-frame-body,.module-frame-body.is-collapsed{display:block}.module-frame-sidebar{display:none}.module-frame-shell{min-height:100dvh}.module-frame-shell>header{padding-top:env(safe-area-inset-top);height:calc(4rem + env(safe-area-inset-top))!important;min-height:calc(4rem + env(safe-area-inset-top))}.module-frame-shell>header>div{padding-left:8px;padding-right:8px}.module-frame-content{min-height:calc(100dvh - 4rem - env(safe-area-inset-top));padding-bottom:calc(64px + env(safe-area-inset-bottom));overflow:visible}.module-frame-content>.module-skill,.module-frame-content>.module-credit,.module-frame-content>.module-cme,.module-frame-content>.module-content{min-height:calc(100dvh - 4rem - env(safe-area-inset-top))}.module-frame-content .module-skill{height:calc(100dvh - 4rem - env(safe-area-inset-top) - 64px - env(safe-area-inset-bottom));min-height:520px}.module-frame-skill .skill-mobile-bottom-nav{display:none!important}.module-frame-skill .module-skill main,.module-frame-content .module-content.app-shell,.module-cme .app-layout,.module-frame-credit .module-credit>div.max-w-7xl{padding:16px 12px 28px}.module-frame-credit .module-credit,.module-frame-content .module-content.app-shell,.module-cme .app-layout{min-height:auto}.module-frame-content input,.module-frame-content select,.module-frame-content textarea{max-width:100%}.module-frame-content .overflow-x-auto,.module-frame-content .table-card,.module-frame-content .people-table{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.module-frame-content table{width:-moz-max-content;width:max-content;min-width:100%}.module-frame-credit .fixed.inset-0,.module-frame-skill .fixed.inset-0{padding:10px}.module-frame-credit .fixed.inset-0>.bg-white,.module-frame-skill .fixed.inset-0>.bg-white{max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.module-frame-credit .module-credit .fixed.bottom-0{bottom:calc(62px + env(safe-area-inset-bottom))}.module-frame-content .toast{bottom:calc(74px + env(safe-area-inset-bottom))}}@media(max-width:480px){.module-frame-skill .module-skill main,.module-frame-content .module-content.app-shell,.module-cme .app-layout,.module-frame-credit .module-credit>div.max-w-7xl{padding-left:10px;padding-right:10px}.module-frame-content .card,.module-frame-content .panel,.module-frame-content .content-section,.module-frame-content .detail-panel,.module-frame-content .admin-panel{border-radius:10px}.module-frame-credit .module-credit h1,.module-cme .page-header h1,.module-cme .detail-header h1,.module-content .detail-panel h2{font-size:22px}.module-frame-skill .module-skill main{padding-top:10px;padding-bottom:18px}.module-frame-content .detail-panel,.module-frame-content .content-section,.module-frame-content .admin-panel{padding:12px}.module-frame-content .detail-header .action-row,.module-frame-content .page-header .action-row{grid-template-columns:1fr}}.module-content .brand-block h1{font-size:15px;font-weight:500}.module-content .brand-mark{width:36px;height:36px;border-radius:calc(var(--radius) - 2px);border-color:var(--border);background:var(--primary-soft);color:var(--primary);font-size:16px}.module-content .content-section,.module-content .detail-panel,.module-content .admin-panel,.module-content .login-panel,.module-content .content-card{border-radius:var(--radius);border-color:var(--border);background:var(--card);box-shadow:none}.module-content .login-panel h2,.module-content .detail-panel h2,.module-content .list-toolbar h2,.module-content .admin-heading h2,.module-content .section-heading h3{font-weight:500;letter-spacing:-.02em}.module-content .primary-action{background:var(--primary);color:var(--primary-foreground);border-radius:calc(var(--radius) - 2px)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-x-3{left:.75rem;right:.75rem}.inset-y-0{top:0;bottom:0}.inset-y-0\.5{top:.125rem;bottom:.125rem}.-right-3{right:-.75rem}.bottom-0{bottom:0}.bottom-0\.5{bottom:.125rem}.bottom-\[-10px\]{bottom:-10px}.left-0{left:0}.left-3{left:.75rem}.right-0{right:0}.right-1{right:.25rem}.right-4{right:1rem}.right-6{right:1.5rem}.right-\[-10px\]{right:-10px}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-2\.5{top:.625rem}.top-4{top:1rem}.top-6{top:1.5rem}.top-8{top:2rem}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[110\]{z-index:110}.z-\[120\]{z-index:120}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.order-1{order:1}.order-2{order:2}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.-mt-0\.5{margin-top:-.125rem}.-mt-1{margin-top:-.25rem}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-24{margin-bottom:6rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.size-4{width:1rem;height:1rem}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-32{height:8rem}.h-36{height:9rem}.h-4{height:1rem}.h-40{height:10rem}.h-44{height:11rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[300px\]{height:300px}.h-\[calc\(4rem\+env\(safe-area-inset-top\)\)\]{height:calc(4rem + env(safe-area-inset-top))}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-60{max-height:15rem}.max-h-80{max-height:20rem}.max-h-\[400px\]{max-height:400px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:0px}.min-h-64{min-height:16rem}.min-h-\[150px\]{min-height:150px}.min-h-\[164px\]{min-height:164px}.min-h-\[300px\]{min-height:300px}.min-h-\[400px\]{min-height:400px}.min-h-\[42px\]{min-height:42px}.min-h-\[520px\]{min-height:520px}.min-h-\[80vh\]{min-height:80vh}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[19rem\]{width:19rem}.w-\[300px\]{width:300px}.w-\[320px\]{width:320px}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[230px\]{min-width:230px}.min-w-\[30px\]{min-width:30px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-\[1200px\]{max-width:1200px}.max-w-\[1320px\]{max-width:1320px}.max-w-\[160px\]{max-width:160px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-\[1\.5\]{flex:1.5}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-crosshair{cursor:crosshair}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.snap-y{scroll-snap-type:y var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness: mandatory}.snap-center{scroll-snap-align:center}.list-disc{list-style-type:disc}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[28px_1\.2fr_1fr_1fr_1\.25fr_1\.25fr_80px_64px\]{grid-template-columns:28px 1.2fr 1fr 1fr 1.25fr 1.25fr 80px 64px}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.place-items-center{place-items:center}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){border-color:var(--border)}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(243 244 246 / var(--tw-divide-opacity, 1))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.divide-slate-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(241 245 249 / var(--tw-divide-opacity, 1))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-clip{overflow-x:clip}.overflow-y-scroll{overflow-y:scroll}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-card{border-radius:var(--radius)}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.rounded-r-lg{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-blue-100{--tw-border-opacity: 1;border-color:rgb(219 234 254 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-border{border-color:var(--border)}.border-emerald-100{--tw-border-opacity: 1;border-color:rgb(209 250 229 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-emerald-500{--tw-border-opacity: 1;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-green-100{--tw-border-opacity: 1;border-color:rgb(220 252 231 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-indigo-100{--tw-border-opacity: 1;border-color:rgb(224 231 255 / var(--tw-border-opacity, 1))}.border-input{border-color:var(--input)}.border-orange-100{--tw-border-opacity: 1;border-color:rgb(255 237 213 / var(--tw-border-opacity, 1))}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-purple-200{--tw-border-opacity: 1;border-color:rgb(233 213 255 / var(--tw-border-opacity, 1))}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-sidebar-border{border-color:var(--sidebar-border)}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white\/20{border-color:#fff3}.border-yellow-100{--tw-border-opacity: 1;border-color:rgb(254 249 195 / var(--tw-border-opacity, 1))}.border-yellow-400{--tw-border-opacity: 1;border-color:rgb(250 204 21 / var(--tw-border-opacity, 1))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-400{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-50\/30{background-color:#eff6ff4d}.bg-blue-50\/40{background-color:#eff6ff66}.bg-blue-50\/50{background-color:#eff6ff80}.bg-blue-50\/80{background-color:#eff6ffcc}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-card{background-color:var(--card)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-50\/80{background-color:#ecfdf5cc}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50\/80{background-color:#eef2ffcc}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:var(--muted)}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-600{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.bg-pink-100{--tw-bg-opacity: 1;background-color:rgb(252 231 243 / var(--tw-bg-opacity, 1))}.bg-primary{background-color:var(--primary)}.bg-primary-soft{background-color:var(--primary-soft)}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-accent{background-color:var(--sidebar-accent)}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-600{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-900\/35{background-color:#0f172a59}.bg-slate-900\/50{background-color:#0f172a80}.bg-slate-900\/60{background-color:#0f172a99}.bg-transparent{background-color:transparent}.bg-violet-50{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.bg-violet-50\/80{background-color:#f5f3ffcc}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-opacity-0{--tw-bg-opacity: 0}.bg-opacity-40{--tw-bg-opacity: .4}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-60{--tw-bg-opacity: .6}.bg-opacity-80{--tw-bg-opacity: .8}.bg-opacity-90{--tw-bg-opacity: .9}.bg-\[radial-gradient\(circle_at_center\,var\(--tw-gradient-stops\)\,transparent_80\%\)\]{background-image:radial-gradient(circle at center,var(--tw-gradient-stops),transparent 80%)}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from: #eff6ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white{--tw-gradient-from: #fff var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-card{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--card) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white\/90{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / .9) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-blue-100{--tw-gradient-to: #dbeafe var(--tw-gradient-to-position)}.to-card{--tw-gradient-to: var(--card) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-\[length\:250\%_100\%\,auto\]{background-size:250% 100%,auto}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-10{padding:2.5rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[60px\]{padding-top:60px;padding-bottom:60px}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-\[calc\(5\.5rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(5.5rem + env(safe-area-inset-bottom))}.pb-\[max\(0\.4rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(.4rem,env(safe-area-inset-bottom))}.pb-\[max\(0\.75rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(.75rem,env(safe-area-inset-bottom))}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-9{padding-left:2.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-\[env\(safe-area-inset-top\)\]{padding-top:env(safe-area-inset-top)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[28px\]{font-size:28px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-blue-100{--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-destructive{color:var(--destructive)}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-foreground{color:var(--foreground)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:var(--muted-foreground)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-pink-700{--tw-text-opacity: 1;color:rgb(190 24 93 / var(--tw-text-opacity, 1))}.text-pink-800{--tw-text-opacity: 1;color:rgb(157 23 77 / var(--tw-text-opacity, 1))}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground{color:var(--sidebar-foreground)}.text-sidebar-primary{color:var(--sidebar-primary)}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity, 1))}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/50{color:#ffffff80}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.accent-\[var\(--primary\)\]{accent-color:var(--primary)}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_-4px_20px_-5px_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow: 0 -4px 20px -5px rgba(0,0,0,.1);--tw-shadow-colored: 0 -4px 20px -5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card{--tw-shadow: 0 1px 2px oklch(.148 .004 228.8 / .04);--tw-shadow-colored: 0 1px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-blue-200{--tw-shadow-color: #bfdbfe;--tw-shadow: var(--tw-shadow-colored)}.shadow-card{--tw-shadow-color: var(--card);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-blue-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(219 234 254 / var(--tw-ring-opacity, 1))}.ring-border{--tw-ring-color: var(--border)}.ring-red-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(254 226 226 / var(--tw-ring-opacity, 1))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-xl{--tw-blur: blur(24px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-md{--tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / .07)) drop-shadow(0 2px 2px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.\!transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-duration:.15s!important}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.will-change-\[opacity\,transform\,filter\]{will-change:opacity,transform,filter}.\[--base-color\:var\(--muted-foreground\)\]{--base-color: var(--muted-foreground)}.\[--base-gradient-color\:var\(--foreground\)\]{--base-gradient-color: var(--foreground)}.\[--bg\:linear-gradient\(90deg\,\#0000_calc\(50\%-var\(--spread\)\)\,var\(--base-gradient-color\)\,\#0000_calc\(50\%\+var\(--spread\)\)\)\]{--bg: linear-gradient(90deg,#0000 calc(50% - var(--spread)),var(--base-gradient-color),#0000 calc(50% + var(--spread)))}.\[background-repeat\:no-repeat\,padding-box\]{background-repeat:no-repeat,padding-box}.\[mask-clip\:padding-box\,border-box\]{-webkit-mask-clip:padding-box,border-box;mask-clip:padding-box,border-box}.\[mask-composite\:intersect\]{-webkit-mask-composite:source-in,xor;mask-composite:intersect}.\[mask-image\:linear-gradient\(transparent\,transparent\)\,linear-gradient\(\#000\,\#000\)\]{-webkit-mask-image:linear-gradient(transparent,transparent),linear-gradient(#000,#000);mask-image:linear-gradient(transparent,transparent),linear-gradient(#000,#000)}:root{--background: oklch(1 0 0);--foreground: oklch(.148 .004 228.8);--card: oklch(1 0 0);--card-foreground: oklch(.148 .004 228.8);--popover: oklch(1 0 0);--popover-foreground: oklch(.148 .004 228.8);--primary: oklch(.55 .205 258);--primary-foreground: oklch(.97 .014 254.604);--secondary: oklch(.967 .001 286.375);--secondary-foreground: oklch(.21 .006 285.885);--muted: oklch(.975 .002 286);--muted-foreground: oklch(.55 .014 286);--accent: oklch(.488 .243 264.376);--accent-foreground: oklch(.97 .014 254.604);--destructive: oklch(.577 .245 27.325);--border: oklch(.92 .004 286.32);--input: oklch(.92 .004 286.32);--ring: oklch(.723 .014 214.4);--chart-1: oklch(.828 .111 230.318);--chart-2: oklch(.685 .169 237.323);--chart-3: oklch(.588 .158 241.966);--chart-4: oklch(.5 .134 242.749);--chart-5: oklch(.443 .11 240.79);--radius: .5rem;--sidebar: oklch(.995 .001 286);--sidebar-foreground: oklch(.148 .004 228.8);--sidebar-primary: oklch(.546 .245 262.881);--sidebar-primary-foreground: oklch(.97 .014 254.604);--sidebar-accent: oklch(.963 .002 197.1);--sidebar-accent-foreground: oklch(.218 .008 223.9);--sidebar-border: oklch(.925 .005 214.3);--sidebar-ring: oklch(.723 .014 214.4);--primary-soft: var(--sidebar-accent);color:var(--foreground);background:var(--muted);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}.dark{--background: oklch(.148 .004 228.8);--foreground: oklch(.987 .002 197.1);--card: oklch(.218 .008 223.9);--card-foreground: oklch(.987 .002 197.1);--popover: oklch(.218 .008 223.9);--popover-foreground: oklch(.987 .002 197.1);--primary: oklch(.424 .199 265.638);--primary-foreground: oklch(.97 .014 254.604);--secondary: oklch(.274 .006 286.033);--secondary-foreground: oklch(.985 0 0);--muted: oklch(.275 .011 216.9);--muted-foreground: oklch(.723 .014 214.4);--accent: oklch(.424 .199 265.638);--accent-foreground: oklch(.97 .014 254.604);--destructive: oklch(.704 .191 22.216);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: oklch(.56 .021 213.5);--chart-1: oklch(.828 .111 230.318);--chart-2: oklch(.685 .169 237.323);--chart-3: oklch(.588 .158 241.966);--chart-4: oklch(.5 .134 242.749);--chart-5: oklch(.443 .11 240.79);--sidebar: oklch(.218 .008 223.9);--sidebar-foreground: oklch(.987 .002 197.1);--sidebar-primary: oklch(.623 .214 259.815);--sidebar-primary-foreground: oklch(.97 .014 254.604);--sidebar-accent: oklch(.275 .011 216.9);--sidebar-accent-foreground: oklch(.987 .002 197.1);--sidebar-border: oklch(1 0 0 / 10%);--sidebar-ring: oklch(.56 .021 213.5);--primary-soft: var(--sidebar-accent)}*{box-sizing:border-box}html,body,#root{min-height:100%}html{min-width:320px;-webkit-tap-highlight-color:transparent;scrollbar-gutter:stable;scrollbar-color:color-mix(in oklch,var(--foreground) 28%,transparent) transparent;scrollbar-width:thin}body{margin:0;overflow-x:clip;background:var(--muted);color:var(--foreground);overscroll-behavior-x:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}img,video,iframe,canvas,svg{max-width:100%}.card{position:relative;background:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--radius)}.dashboard-panel{position:relative;background:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);box-shadow:0 1px 2px #090b0c09}.dashboard-service-card,.dashboard-row-link{transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease}.dashboard-service-card:hover,.dashboard-row-link:hover{border-color:color-mix(in oklch,var(--primary) 24%,var(--border));background:color-mix(in oklch,var(--primary-soft) 30%,var(--card));box-shadow:0 10px 24px #090b0c11}.dashboard-service-card:hover{transform:translateY(-2px)}.dashboard-service-card:active,.dashboard-row-link:active{transform:translateY(1px)}.dashboard-icon-tile{display:grid;width:2.5rem;height:2.5rem;flex:0 0 auto;place-items:center;border-radius:calc(var(--radius) + 1px);color:var(--primary);background:var(--primary-soft)}.dashboard-action{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border);border-radius:var(--radius);padding:.625rem .75rem;color:var(--foreground);font-size:.875rem;font-weight:500;transition:color .16s ease,border-color .16s ease,background-color .16s ease}.dashboard-action:hover{border-color:color-mix(in oklch,var(--primary) 26%,var(--border));color:var(--primary);background:var(--primary-soft)}.dashboard-text-action{color:var(--muted-foreground);font-size:.75rem;transition:color .16s ease}.dashboard-text-action:hover{color:var(--primary)}.dashboard-notice-link{display:block;border-radius:var(--radius);padding:.375rem .5rem;transition:background-color .16s ease}.dashboard-notice-link:hover{background:var(--muted)}.dashboard-todo-link{display:block;border-radius:var(--radius);padding:.625rem .75rem;color:var(--foreground);background:var(--muted);font-size:.875rem;transition:color .16s ease,background-color .16s ease}.dashboard-todo-link:hover{color:var(--primary);background:var(--primary-soft)}table{border-collapse:collapse}thead{background:color-mix(in oklch,var(--muted) 70%,var(--card));color:var(--muted-foreground)}th{padding:.8rem 1rem;text-align:left;font-weight:500;white-space:nowrap}td{padding:.85rem 1rem;border-top:1px solid var(--border);vertical-align:middle}td small{display:block;margin-top:.2rem;color:var(--muted-foreground)}tbody tr{transition:background-color .16s ease}tbody tr:hover{background:color-mix(in oklch,var(--muted) 55%,transparent)}.status-dot{display:inline-block;width:.45rem;height:.45rem;margin-right:.45rem;border-radius:999px;background:var(--muted-foreground)}.status-dot.active{background:#00a055;background:oklch(.62 .16 153)}.status-dot.disabled{background:#ed4042}.icon-tile{width:44px;height:44px;border-radius:calc(var(--radius) - 2px);display:grid;place-items:center;flex-shrink:0}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:color-mix(in oklch,var(--foreground) 18%,transparent);border-radius:999px}@media(max-width:767px){html{scrollbar-gutter:auto}button,[role=button],input,select{min-height:44px}th,td{padding:.7rem .8rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.selection\:bg-primary-soft *::-moz-selection{background-color:var(--primary-soft)}.selection\:bg-primary-soft *::selection{background-color:var(--primary-soft)}.selection\:text-primary *::-moz-selection{color:var(--primary)}.selection\:text-primary *::selection{color:var(--primary)}.selection\:bg-primary-soft::-moz-selection{background-color:var(--primary-soft)}.selection\:bg-primary-soft::selection{background-color:var(--primary-soft)}.selection\:text-primary::-moz-selection{color:var(--primary)}.selection\:text-primary::selection{color:var(--primary)}.placeholder\:text-muted-foreground::-moz-placeholder{color:var(--muted-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.placeholder\:text-slate-300::-moz-placeholder{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.placeholder\:text-slate-300::placeholder{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-blue-200:hover{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.hover\:border-blue-300:hover{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.hover\:border-blue-400:hover{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.hover\:border-blue-500:hover{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.hover\:border-gray-200:hover{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.hover\:border-green-300:hover{--tw-border-opacity: 1;border-color:rgb(134 239 172 / var(--tw-border-opacity, 1))}.hover\:border-red-200:hover{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.hover\:border-red-300:hover{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.hover\:bg-blue-100:hover{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-50:hover{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-50\/60:hover{background-color:#eff6ff99}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-100:hover{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-50:hover{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-green-100:hover{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.hover\:bg-green-200:hover{--tw-bg-opacity: 1;background-color:rgb(187 247 208 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-100:hover{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-50:hover{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity: 1;background-color:rgb(67 56 202 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-orange-100:hover{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.hover\:bg-orange-700:hover{--tw-bg-opacity: 1;background-color:rgb(194 65 12 / var(--tw-bg-opacity, 1))}.hover\:bg-purple-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-rose-100:hover{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-200:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-700:hover{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.hover\:bg-violet-100:hover{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-opacity-80:hover{--tw-bg-opacity: .8}.hover\:text-blue-500:hover{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-blue-900:hover{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.hover\:text-emerald-700:hover{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.hover\:text-green-900:hover{--tw-text-opacity: 1;color:rgb(20 83 45 / var(--tw-text-opacity, 1))}.hover\:text-orange-600:hover{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.hover\:text-orange-900:hover{--tw-text-opacity: 1;color:rgb(124 45 18 / var(--tw-text-opacity, 1))}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-purple-900:hover{--tw-text-opacity: 1;color:rgb(88 28 135 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:text-red-800:hover{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.hover\:text-red-900:hover{--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity, 1))}.hover\:text-rose-700:hover{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.hover\:text-sidebar-foreground:hover{color:var(--sidebar-foreground)}.hover\:text-slate-600:hover{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.hover\:text-slate-700:hover{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.hover\:text-slate-800:hover{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:text-yellow-800:hover{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:scale-\[1\.01\]:focus{--tw-scale-x: 1.01;--tw-scale-y: 1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-indigo-400:focus{--tw-border-opacity: 1;border-color:rgb(129 140 248 / var(--tw-border-opacity, 1))}.focus\:border-red-500:focus{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.focus\:border-ring:focus{border-color:var(--ring)}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.active\:scale-90:active{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.98\]:active{--tw-scale-x: .98;--tw-scale-y: .98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.99\]:active{--tw-scale-x: .99;--tw-scale-y: .99;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-blue-300:disabled{--tw-bg-opacity: 1;background-color:rgb(147 197 253 / var(--tw-bg-opacity, 1))}.disabled\:bg-blue-400:disabled{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.disabled\:bg-gray-100:disabled{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.disabled\:bg-gray-400:disabled{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.disabled\:bg-muted:disabled{background-color:var(--muted)}.disabled\:bg-slate-100:disabled{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.disabled\:text-gray-500:disabled{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.disabled\:text-muted-foreground:disabled{color:var(--muted-foreground)}.disabled\:text-slate-400:disabled{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.group:hover .group-hover\:-translate-y-0\.5{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-opacity-20{--tw-bg-opacity: .2}.group:hover .group-hover\:bg-opacity-5{--tw-bg-opacity: .05}.group:hover .group-hover\:text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-foreground{color:var(--foreground)}.group:hover .group-hover\:opacity-100{opacity:1}@media(min-width:360px){.min-\[360px\]\:block{display:block}}@media(min-width:420px){.min-\[420px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:640px){.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:hidden{display:none}.sm\:h-32{height:8rem}.sm\:w-64{width:16rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.sm\:divide-y-0>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(0px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(0px * var(--tw-divide-y-reverse))}.sm\:self-auto{align-self:auto}.sm\:p-6{padding:1.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-4{padding-top:1rem;padding-bottom:1rem}.sm\:pt-6{padding-top:1.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:768px){.md\:relative{position:relative}.md\:col-span-1{grid-column:span 1 / span 1}.md\:col-span-12{grid-column:span 12 / span 12}.md\:col-span-2{grid-column:span 2 / span 2}.md\:col-span-3{grid-column:span 3 / span 3}.md\:col-span-6{grid-column:span 6 / span 6}.md\:mb-0{margin-bottom:0}.md\:mb-1{margin-bottom:.25rem}.md\:mb-2{margin-bottom:.5rem}.md\:ml-0{margin-left:0}.md\:ml-16{margin-left:4rem}.md\:ml-\[19rem\]{margin-left:19rem}.md\:ml-auto{margin-left:auto}.md\:mr-2{margin-right:.5rem}.md\:mt-6{margin-top:1.5rem}.md\:block{display:block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:table-cell{display:table-cell}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:w-10{width:2.5rem}.md\:w-40{width:10rem}.md\:w-52{width:13rem}.md\:w-56{width:14rem}.md\:w-64{width:16rem}.md\:w-\[300px\]{width:300px}.md\:w-auto{width:auto}.md\:w-fit{width:-moz-fit-content;width:fit-content}.md\:min-w-\[120px\]{min-width:120px}.md\:flex-none{flex:none}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-wrap{flex-wrap:wrap}.md\:items-center{align-items:center}.md\:justify-end{justify-content:flex-end}.md\:justify-between{justify-content:space-between}.md\:gap-2{gap:.5rem}.md\:gap-3{gap:.75rem}.md\:gap-y-2{row-gap:.5rem}.md\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.md\:self-auto{align-self:auto}.md\:rounded-xl{border-radius:.75rem}.md\:border-0{border-width:0px}.md\:border-r{border-right-width:1px}.md\:border-t-0{border-top-width:0px}.md\:border-t-2{border-top-width:2px}.md\:bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.md\:bg-transparent{background-color:transparent}.md\:p-0{padding:0}.md\:p-10{padding:2.5rem}.md\:p-4{padding:1rem}.md\:p-5{padding:1.25rem}.md\:p-8{padding:2rem}.md\:px-0{padding-left:0;padding-right:0}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-3{padding-top:.75rem;padding-bottom:.75rem}.md\:pb-0{padding-bottom:0}.md\:pb-8{padding-bottom:2rem}.md\:pt-0{padding-top:0}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-\[32px\]{font-size:32px}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}.md\:text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.md\:shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media(min-width:1024px){.lg\:col-span-1{grid-column:span 1 / span 1}.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:table-cell{display:table-cell}.lg\:hidden{display:none}.lg\:w-1\/2{width:50%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1280px){.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:col-span-1{grid-column:span 1 / span 1}.xl\:col-span-2{grid-column:span 2 / span 2}.xl\:w-auto{width:auto}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1fr\)_320px\]{grid-template-columns:minmax(0,1fr) 320px}.xl\:flex-row{flex-direction:row}.xl\:items-center{align-items:center}}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none}
