:root{--md-primary: #1D4ED8;--md-on-primary: #FFFFFF;--md-primary-container: #EFF6FF;--md-on-primary-container: #1D4ED8;--md-secondary: #8A4B16;--md-on-secondary: #FFFFFF;--md-secondary-container: #FEF3C7;--md-on-secondary-container: #8A4B16;--md-tertiary: #5E3512;--md-on-tertiary: #FFFFFF;--md-background: #FAF7F0;--md-on-background: #1E293B;--md-surface: #FFFFFF;--md-surface-container: #F4EFE6;--md-surface-elevated: #FFFFFF;--md-outline: #CBD5E1;--md-outline-variant: #E2E8F0;--cham-ink: #5E3512;--fluent-card: #FFFFFF;--fluent-stroke: #E2D8C9;--fluent-shadow: 0 4px 16px rgba(36, 50, 74, .04), 0 2px 4px rgba(36, 50, 74, .02);--fluent-shadow-hover: 0 12px 28px rgba(36, 50, 74, .08), 0 4px 8px rgba(36, 50, 74, .04);--color-success: #16A34A;--color-success-soft: #DCFCE7;--color-warning: #CA8A04;--color-warning-soft: #FEF9C3;--color-error: #DC2626;--color-error-soft: #FEE2E2;--color-neutral-soft: #F1F5F9;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-cham: "Noto Sans Cham", "Noto Sans", system-ui, sans-serif;--sidebar-width: 280px;--topbar-height: 70px}*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--md-background);color:var(--md-on-background);font-family:var(--font-family);line-height:1.6;overflow-x:hidden}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:auto 1fr;min-height:100vh}.sidebar{grid-row:1 / 3;background-color:var(--md-surface);border-right:1px solid var(--fluent-stroke);padding:var(--space-lg);display:flex;flex-direction:column;justify-content:space-between;height:100vh;position:sticky;top:0;z-index:100}.sidebar-top{display:flex;flex-direction:column;gap:var(--space-xl)}.logo-container{display:flex;align-items:center;gap:var(--space-sm);text-decoration:none;color:inherit;padding:var(--space-xs) 0}.logo-img{height:44px;width:auto;display:block}.logo-text{font-size:20px;font-weight:800;color:var(--md-primary);letter-spacing:-.03em}.sidebar-nav{display:flex;flex-direction:column;gap:var(--space-xs)}.nav-item{display:flex;align-items:center;gap:var(--space-md);padding:12px 16px;border-radius:var(--radius-md);color:var(--md-on-background);text-decoration:none;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .16s ease,color .16s ease;min-height:44px}.nav-item:hover{background-color:var(--md-primary-container);color:var(--md-primary)}.nav-item.active{background-color:var(--md-primary);color:var(--md-on-primary)}.sidebar-footer{display:flex;flex-direction:column;gap:var(--space-md)}.status-card{background-color:var(--md-surface-container);border:1px solid var(--fluent-stroke);border-radius:var(--radius-md);padding:var(--space-md)}.status-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--cham-ink);margin-bottom:var(--space-xs)}.status-desc{font-size:13px;color:var(--md-on-background);opacity:.8;line-height:1.4}.topbar{grid-column:2 / 3;height:var(--topbar-height);background-color:var(--md-surface);border-bottom:1px solid var(--fluent-stroke);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-xl);position:sticky;top:0;z-index:90}.topbar-search-container{flex:1;max-width:480px;position:relative}.topbar-search{width:100%;padding:10px 16px 10px 40px;border:1px solid var(--fluent-stroke);border-radius:var(--radius-full);background-color:var(--md-background);font-family:var(--font-family);font-size:14px;transition:all .16s ease}.topbar-search:focus{outline:none;border-color:var(--md-primary);background-color:var(--md-surface);box-shadow:0 0 0 3px #1d4ed81a}.topbar-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--md-on-background);opacity:.5;pointer-events:none}.topbar-actions{display:flex;align-items:center;gap:var(--space-md)}.topbar-btn{text-decoration:none;font-size:13px;font-weight:700;color:var(--md-primary);padding:8px 16px;border-radius:var(--radius-full);border:1px solid var(--md-primary);background:transparent;transition:all .16s ease}.topbar-btn:hover{background-color:var(--md-primary-container)}.main-content{grid-column:2 / 3;padding:var(--space-xl);max-width:1200px;width:100%;margin:0 auto}.mobile-header{display:none;background-color:var(--md-surface);border-bottom:1px solid var(--fluent-stroke);padding:var(--space-md);align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background-color:var(--md-surface);border-top:1px solid var(--fluent-stroke);height:64px;z-index:100;grid-template-columns:repeat(5,1fr);box-shadow:0 -4px 16px #00000008}.mobile-nav-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);background:transparent;border:none;color:var(--md-on-background);opacity:.6;font-size:10px;font-weight:700;cursor:pointer;height:100%;transition:all .16s ease;min-height:44px}.mobile-nav-btn.active{color:var(--md-primary);opacity:1}.mobile-nav-icon{font-size:20px;line-height:1}.card{background-color:var(--fluent-card);border:1px solid var(--fluent-stroke);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--fluent-shadow);transition:box-shadow .16s ease,transform .16s ease}.card:hover{box-shadow:var(--fluent-shadow-hover)}.card-title{font-size:22px;font-weight:750;color:var(--md-tertiary);margin-bottom:var(--space-md);letter-spacing:-.02em;line-height:1.25}.card-subtitle{font-size:14px;color:var(--md-on-background);opacity:.7;margin-bottom:var(--space-lg)}.page-title{font-size:32px;font-weight:800;letter-spacing:-.03em;color:var(--md-primary);margin-bottom:var(--space-xs)}.page-subtitle{font-size:16px;color:var(--md-on-background);opacity:.7;margin-bottom:var(--space-xl)}.hero{background-color:var(--md-surface);border:1px solid var(--fluent-stroke);border-radius:var(--radius-xl);padding:var(--space-2xl) var(--space-xl);text-align:center;box-shadow:var(--fluent-shadow);margin-bottom:var(--space-xl);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--md-primary),var(--md-secondary))}.hero-title{font-size:36px;font-weight:850;color:var(--md-primary);line-height:1.15;margin-bottom:var(--space-md);letter-spacing:-.03em}.hero-subtitle{font-size:18px;color:var(--md-on-background);opacity:.8;max-width:720px;margin:0 auto var(--space-2xl) auto;line-height:1.6}.quick-search-container{max-width:600px;margin:0 auto var(--space-xl) auto;position:relative}.quick-search-input{width:100%;padding:16px 20px 16px 48px;border:2px solid var(--fluent-stroke);border-radius:var(--radius-full);font-size:16px;font-family:var(--font-family);transition:all .16s ease;box-shadow:0 4px 12px #24324a08}.quick-search-input:focus{outline:none;border-color:var(--md-primary);box-shadow:0 4px 20px #1d4ed826}.quick-search-icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);font-size:20px;opacity:.5}.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);margin-bottom:var(--space-2xl)}.action-card{text-decoration:none;color:inherit;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;min-height:200px}.action-card-top{width:100%}.action-card-icon{font-size:32px;margin-bottom:var(--space-md)}.action-card-title{font-size:18px;font-weight:750;color:var(--md-primary);margin-bottom:var(--space-xs)}.action-card-desc{font-size:14px;color:var(--md-on-background);opacity:.7}.action-card-arrow{margin-top:var(--space-lg);font-size:14px;font-weight:700;color:var(--md-secondary);display:flex;align-items:center;gap:var(--space-xs);transition:transform .16s ease}.action-card:hover .action-card-arrow{transform:translate(4px)}.form-group{margin-bottom:var(--space-lg)}.form-group label{display:block;font-size:13px;font-weight:700;margin-bottom:var(--space-sm);color:var(--md-tertiary);text-transform:uppercase;letter-spacing:.05em}.form-input,.form-select,.form-textarea{width:100%;padding:14px 16px;border:1px solid var(--fluent-stroke);border-radius:var(--radius-md);font-family:var(--font-family);font-size:15px;color:var(--md-on-background);background-color:var(--md-surface);transition:all .16s ease;min-height:44px}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--md-primary);box-shadow:0 0 0 3px #1d4ed81a}.form-textarea{resize:vertical;min-height:120px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:12px 24px;border-radius:var(--radius-md);font-size:14px;font-weight:700;font-family:var(--font-family);border:none;cursor:pointer;transition:all .16s ease;min-height:44px;text-decoration:none}.btn-primary{background-color:var(--md-primary);color:var(--md-on-primary)}.btn-primary:hover{background-color:#153fb5}.btn-primary:disabled{background-color:var(--md-outline);color:var(--md-on-background);opacity:.5;cursor:not-allowed}.btn-secondary{background-color:var(--md-secondary-container);color:var(--md-secondary);border:1px solid #FCD34D}.btn-secondary:hover{background-color:#fde68a}.btn-outline{background-color:transparent;border:1px solid var(--fluent-stroke);color:var(--md-on-background)}.btn-outline:hover{background-color:var(--md-surface-container)}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;line-height:1.2}.badge-success{background-color:var(--color-success-soft);color:var(--color-success);border:1px solid var(--color-success)}.badge-warning{background-color:var(--color-warning-soft);color:var(--color-warning);border:1px solid var(--color-warning)}.badge-danger{background-color:var(--color-error-soft);color:var(--color-error);border:1px solid var(--color-error)}.badge-neutral{background-color:var(--color-neutral-soft);color:var(--md-on-background);opacity:.8;border:1px solid var(--md-outline)}.alert{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs);font-size:14px}.alert-success{background-color:var(--color-success-soft);color:#14532d;border-left:4px solid var(--color-success)}.alert-warning{background-color:var(--color-warning-soft);color:#713f12;border-left:4px solid var(--color-warning)}.alert-danger{background-color:var(--color-error-soft);color:#7f1d1d;border-left:4px solid var(--color-error)}.dictionary-results{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-xl)}.dict-result-card{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md)}.dict-word-info{display:flex;flex-direction:column;gap:var(--space-xs)}.dict-cham{font-family:var(--font-family-cham);font-size:32px;color:var(--md-primary);margin-bottom:var(--space-xs);line-height:1.2}.dict-latin-trans{font-size:16px;font-weight:700;color:var(--md-secondary)}.dict-meaning-text{font-size:15px;color:var(--md-on-background);margin-top:var(--space-xs)}.dict-result-badges{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.filter-container{display:flex;gap:var(--space-xs);margin-bottom:var(--space-lg);flex-wrap:wrap}.chip-btn{background-color:var(--md-surface);border:1px solid var(--fluent-stroke);color:var(--md-on-background);padding:6px 14px;border-radius:var(--radius-full);font-size:13px;font-weight:600;cursor:pointer;transition:all .16s ease;min-height:36px}.chip-btn.active{background-color:var(--md-primary-container);color:var(--md-primary);border-color:var(--md-primary)}.keyboard-layout-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:var(--space-sm);margin-top:var(--space-lg)}.keyboard-key{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--md-surface-container);border:1px solid var(--fluent-stroke);border-radius:var(--radius-sm);padding:10px 4px;cursor:pointer;transition:all .16s ease;-webkit-user-select:none;user-select:none;min-height:52px;min-width:44px}.keyboard-key:hover{background-color:var(--md-secondary-container);border-color:var(--md-secondary);transform:translateY(-2px)}.key-char-latin{font-size:10px;color:var(--md-on-background);opacity:.5}.key-char-cham{font-family:var(--font-family-cham);font-size:22px;font-weight:600;color:var(--md-primary)}.converter-panels{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.converter-panel{display:flex;flex-direction:column}.converter-panel-header{font-size:14px;font-weight:700;color:var(--md-tertiary);margin-bottom:var(--space-xs);text-transform:uppercase}.converter-textarea{width:100%;font-size:20px;font-family:var(--font-family-cham);line-height:1.5;padding:var(--space-md);border:1px solid var(--fluent-stroke);border-radius:var(--radius-md);background-color:var(--md-surface);min-height:240px;transition:all .16s ease}.converter-textarea:focus{outline:none;border-color:var(--md-primary);box-shadow:0 0 0 3px #1d4ed81a}.converter-textarea.output{background-color:var(--md-surface-container)}.matcher-header-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-md);border:1px solid var(--fluent-stroke);background-color:var(--md-surface-container);border-radius:var(--radius-md);font-weight:700;cursor:pointer;transition:all .16s ease}.matcher-header-btn:hover{background-color:#ede8df}.suggestions-grid{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-lg)}.suggestion-card{border:1px solid var(--fluent-stroke);border-radius:var(--radius-md);padding:var(--space-md);background-color:var(--md-surface);transition:all .16s ease}.suggestion-card.approved{background-color:#f0fdf4;border-color:#bbf7d0}.suggestion-card.rejected{background-color:#fef2f2;border-color:#fee2e2}.match-comparison{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin:var(--space-md) 0}.match-box{background-color:var(--md-surface-container);border:1px dashed var(--md-outline);border-radius:var(--radius-sm);padding:var(--space-md);text-align:center}.match-box-title{font-size:11px;text-transform:uppercase;letter-spacing:.05em;opacity:.6;margin-bottom:var(--space-xs)}.match-box-glyph{font-size:32px;font-family:var(--font-family-cham)}.match-box-code{font-family:monospace;font-size:14px}.articles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-lg)}.article-card{display:flex;flex-direction:column;justify-content:space-between}.article-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.article-title{font-size:18px;font-weight:750;color:var(--md-primary);margin-bottom:var(--space-sm)}.article-desc{font-size:14px;color:var(--md-on-background);opacity:.8;margin-bottom:var(--space-md);flex-grow:1}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);margin-bottom:var(--space-xl)}.stat-card{background-color:var(--md-surface);border:1px solid var(--fluent-stroke);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:var(--fluent-shadow)}.stat-num{font-size:28px;font-weight:800;color:var(--md-primary);line-height:1.15}.stat-label{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--md-on-background);opacity:.6}.admin-layout{display:block}.admin-menu{display:flex;flex-direction:column;gap:var(--space-xs)}.admin-menu-item{padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:700;text-decoration:none;color:var(--md-on-background);cursor:pointer}.admin-menu-item:hover{background-color:var(--md-surface-container)}.admin-menu-item.active{background-color:var(--md-primary-container);color:var(--md-primary)}.admin-table{width:100%;border-collapse:collapse;margin-top:var(--space-md);font-size:14px}.admin-table th,.admin-table td{padding:12px;text-align:left;border-bottom:1px solid var(--fluent-stroke)}.admin-table th{font-weight:700;background-color:var(--md-surface-container)}@media(max-width:1024px){.admin-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.app-shell{grid-template-columns:1fr;grid-template-rows:auto auto 1fr}.sidebar,.topbar{display:none}.mobile-header{display:flex}.mobile-bottom-nav{display:grid}.main-content{grid-column:1 / 2;padding:var(--space-md) var(--space-md) 80px var(--space-md)}.action-grid,.converter-panels{grid-template-columns:1fr}.admin-menu{flex-direction:row;overflow-x:auto;padding-bottom:var(--space-sm)}}
