*,: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: }:root{--background: 220 20% 97%;--foreground: 222 47% 11%;--card: 0 0% 100%;--card-foreground: 222 47% 11%;--popover: 0 0% 100%;--popover-foreground: 222 47% 11%;--primary: 221 83% 53%;--primary-foreground: 0 0% 100%;--secondary: 220 14% 93%;--secondary-foreground: 222 47% 20%;--muted: 220 14% 94%;--muted-foreground: 215 25% 50%;--accent: 220 14% 93%;--accent-foreground: 221 83% 45%;--destructive: 0 72% 51%;--destructive-foreground: 0 0% 100%;--border: 220 13% 90%;--input: 220 13% 90%;--ring: 221 83% 53%;--radius: .625rem;--sidebar-bg: 222 47% 10%;--sidebar-text: 215 20% 65%;--sidebar-active: 221 83% 53%;--sidebar-width: 220px;--theme-header-h: 100px}#tatami-portal{background-color:hsl(var(--background));min-height:calc(100vh - var(--theme-header-h));margin-top:var(--theme-header-h);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;color:hsl(var(--foreground));font-size:14px;-webkit-font-smoothing:antialiased;box-sizing:border-box;line-height:1.5;position:relative;z-index:1}#tatami-portal *,#tatami-portal *:before,#tatami-portal *:after{box-sizing:border-box}#tatami-portal button{border:none;box-shadow:none;background-image:none;text-shadow:none;cursor:pointer;font-family:inherit}body.tatami-portal-active .header{position:fixed!important;top:0;left:0;right:0;z-index:1000}.skip-to-content{position:absolute;left:-9999px;top:0;z-index:999;background:hsl(var(--primary));color:#fff;padding:8px 16px;font-size:14px;font-weight:600;border-radius:0 0 8px;text-decoration:none}.skip-to-content:focus{left:0;outline:3px solid hsl(var(--ring));outline-offset:2px}.tatami-layout{display:flex;min-height:calc(100vh - var(--theme-header-h))}.tatami-sidebar{width:var(--sidebar-width);flex-shrink:0;display:flex;flex-direction:column;min-height:calc(100vh - var(--theme-header-h));background-color:hsl(var(--sidebar-bg));z-index:40;transition:transform .25s ease}.tatami-sidebar-logo{display:flex;align-items:center;gap:10px;padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,.07);color:#fff;font-weight:700;font-size:15px}.tatami-sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:12px 10px;flex:1}.tatami-nav-item{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:8px;font-size:13.5px;font-weight:500;color:hsl(var(--sidebar-text));text-decoration:none!important;transition:background .12s,color .12s;min-height:44px}.tatami-nav-item:hover{background:#ffffff12;color:#fff}.tatami-nav-item.active{background:hsl(var(--primary));color:#fff}.tatami-nav-item:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:-2px}.tatami-sidebar-footer{padding:14px 20px;border-top:1px solid rgba(255,255,255,.07);font-size:12px;color:hsl(var(--sidebar-text))}.tatami-sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:35}.tatami-mobile-header{display:none;align-items:center;gap:12px;padding:12px 16px;background:hsl(var(--sidebar-bg));color:#fff;position:sticky;top:0;z-index:30}.tatami-hamburger{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:transparent;color:#fff;transition:background .12s}.tatami-hamburger:hover{background:#ffffff1a}.tatami-hamburger:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:-2px}.tatami-main{flex:1;overflow:auto;background-color:hsl(var(--background))}.tatami-main:focus{outline:none}.tatami-page{padding:28px 32px;max-width:1100px}.tatami-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.tatami-page-title{font-size:20px;font-weight:700;color:hsl(var(--foreground));letter-spacing:-.02em}.neu-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:20px 24px}.tatami-table-wrap{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow-x:auto;-webkit-overflow-scrolling:touch}.tatami-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:500px}.tatami-table th{padding:10px 16px;text-align:left;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground));background:hsl(var(--muted));border-bottom:1px solid hsl(var(--border));white-space:nowrap}.tatami-table td{padding:11px 16px;border-bottom:1px solid hsl(var(--border));color:hsl(var(--foreground));vertical-align:middle}.tatami-table tr:last-child td{border-bottom:none}.tatami-table tbody tr:hover td{background:hsl(var(--muted))}.neu-input{width:100%;border-radius:8px;border:0;background:#e5e7eb;padding:8px 12px;font-size:14px;color:hsl(var(--foreground));outline:none;box-shadow:none;transition:background .12s,box-shadow .12s;height:44px}.neu-input:focus{background:#dcdfe4;box-shadow:0 0 0 2.5px hsl(var(--primary) / .3)}.neu-input::-moz-placeholder{color:hsl(var(--muted-foreground))}.neu-input::placeholder{color:hsl(var(--muted-foreground))}.neu-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;font-size:14px;font-weight:500;padding:10px 16px;cursor:pointer;min-height:44px;transition:background .12s,opacity .12s;border:none;outline:none}.neu-btn:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.neu-btn:disabled{opacity:.5;pointer-events:none}.neu-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;font-size:14px;font-weight:500;padding:10px 16px;cursor:pointer;min-height:44px;transition:background .12s,opacity .12s;border:none;outline:none}.neu-btn-primary:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.neu-btn-primary:disabled{opacity:.5;pointer-events:none}.neu-btn-primary{background:hsl(var(--primary));color:#fff}.neu-btn-primary:hover{background:#1452d7}.tatami-field{display:flex;flex-direction:column;gap:5px}.tatami-field label{font-size:12.5px;font-weight:500;color:hsl(var(--muted-foreground))}.portal-dashboard{max-width:900px}.portal-greeting{margin-bottom:24px}.portal-greeting-sub{font-size:13.5px;color:hsl(var(--muted-foreground));margin-top:2px}.portal-shortcuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:28px}.portal-shortcut-btn{background:#fff;border:1px solid hsl(var(--border));border-radius:10px;padding:14px;display:flex;align-items:center;gap:10px;cursor:pointer;text-align:left;transition:box-shadow .15s,border-color .15s;min-height:56px}.portal-shortcut-btn:hover{box-shadow:0 2px 12px #00000014;border-color:var(--accent, hsl(var(--primary)))}.portal-shortcut-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.portal-shortcut-label{flex:1;font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.portal-shortcut-arrow{color:hsl(var(--muted-foreground));flex-shrink:0}.portal-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.portal-section-header h2{font-size:14px;font-weight:700;color:hsl(var(--foreground))}.portal-link-btn{font-size:12.5px;color:hsl(var(--primary));background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:4px;font-weight:500}.portal-attendance-list{display:flex;flex-direction:column;gap:6px}.portal-attendance-card{display:flex;align-items:center;gap:12px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:12px 14px;transition:background .12s}.portal-attendance-card:hover{background:hsl(var(--muted))}.portal-attendance-status{flex-shrink:0;display:flex}.portal-attendance-info{flex:1;min-width:0}.portal-attendance-date{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.portal-attendance-detail{font-size:12px;color:hsl(var(--muted-foreground));display:flex;flex-wrap:wrap;gap:4px;margin-top:1px}.portal-attendance-time{opacity:.8}.portal-profile{max-width:600px}.portal-profile-card{margin-bottom:16px}.portal-profile-header{display:flex;align-items:center;gap:14px;margin-bottom:16px}.portal-profile-avatar{width:60px;height:60px;border-radius:12px;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.portal-profile-avatar-placeholder{background:hsl(var(--muted));display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;color:hsl(var(--muted-foreground))}.portal-profile-name-block h2{font-size:17px;font-weight:700;color:hsl(var(--foreground));line-height:1.3}.portal-profile-name-block p{font-size:12.5px;color:hsl(var(--muted-foreground));margin-top:1px}.portal-profile-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.portal-profile-meta-label{font-size:11px;color:hsl(var(--muted-foreground));font-weight:500;text-transform:uppercase;letter-spacing:.04em}.portal-profile-meta-value{font-size:13.5px;color:hsl(var(--foreground));display:block;margin-top:1px}.portal-section-title{font-size:14px;font-weight:600;margin-bottom:14px;color:hsl(var(--foreground))}.portal-profile-form{display:flex;flex-direction:column;gap:14px}.portal-profile-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.portal-clases-list{display:flex;flex-direction:column;gap:8px}.portal-clase-card{display:flex;align-items:center;gap:12px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:14px 16px;cursor:pointer;text-align:left;width:100%;transition:background .12s,border-color .15s}.portal-clase-card:hover{background:hsl(var(--muted));border-color:hsl(var(--primary) / .3)}.portal-clase-main{flex:1;min-width:0}.portal-clase-fecha{font-size:14px;font-weight:600;color:hsl(var(--foreground));display:flex;align-items:center;gap:6px;margin-bottom:3px}.portal-clase-details{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:hsl(var(--muted-foreground))}.portal-clase-details span{display:inline-flex;align-items:center;gap:4px}.portal-clase-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.portal-att-header{display:flex;align-items:flex-start;gap:8px;margin-bottom:16px}.portal-att-header-info{flex:1;min-width:0}.portal-att-header-info h1{font-size:17px;font-weight:700;color:hsl(var(--foreground));line-height:1.3}.portal-att-header-info p{font-size:12.5px;color:hsl(var(--muted-foreground));margin-top:2px}.portal-att-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.portal-att-total-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;padding:14px 8px}.portal-att-total-value{font-size:26px;font-weight:700;line-height:1}.portal-att-total-label{font-size:11px;color:hsl(var(--muted-foreground));margin-top:4px}.portal-att-actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.portal-att-students{display:flex;flex-direction:column;gap:4px}.portal-att-student{display:flex;align-items:center;gap:12px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:10px 14px;min-height:48px;transition:background .12s}.portal-att-student.present{background:#2463eb0a;border-color:#2463eb1f}.portal-att-student-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.portal-att-student-name{font-size:13.5px;font-weight:500;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-att-student-doc{font-size:11.5px;color:hsl(var(--muted-foreground))}.portal-login-card{background:#fff;border-radius:16px;box-shadow:0 4px 30px #00000014;padding:40px;width:100%;max-width:400px}#tatami-portal a:focus-visible,#tatami-portal button:focus-visible,#tatami-portal input:focus-visible,#tatami-portal select:focus-visible,#tatami-portal [tabindex]:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.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-auto{pointer-events:auto}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.left-2{left:.5rem}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-2{top:.5rem}.top-4{top:1rem}.z-50{z-index:50}.z-\[100\]{z-index:100}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[100px\]{height:100px}.h-\[1px\]{height:1px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[calc\(100vh-2rem\)\]{max-height:calc(100vh - 2rem)}.max-h-screen{max-height:100vh}.w-10{width:2.5rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-\[1px\]{width:1px}.w-full{width:100%}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-lg{max-width:32rem}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.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))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.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-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-destructive{border-color:hsl(var(--destructive))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/60{background-color:hsl(var(--muted) / .6)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-1{padding:.25rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.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-2{padding-top:.5rem;padding-bottom:.5rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.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-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)}.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)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.invert{--tw-invert: invert(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)}.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}.duration-200{transition-duration:.2s}.tatami-sidebar-close{display:none!important}@media (max-width: 768px){.tatami-sidebar-close{display:flex!important}.tatami-sidebar{position:fixed;top:var(--theme-header-h);left:0;bottom:0;width:260px;min-height:auto;transform:translate(-100%)}.tatami-sidebar.open{transform:translate(0)}.tatami-sidebar-overlay{top:var(--theme-header-h)!important}.tatami-sidebar-overlay.open{display:block}.tatami-mobile-header{display:flex}.tatami-main{width:100%}.tatami-layout{flex-direction:column}.tatami-page{padding:16px}.tatami-page-title{font-size:18px}.neu-card{padding:16px}.portal-login-card{padding:24px;border-radius:12px;margin:0 12px}.tatami-table{min-width:420px}.tatami-page-header{flex-direction:column;align-items:flex-start;gap:8px}.portal-shortcuts{grid-template-columns:1fr;gap:8px}.portal-shortcut-btn{padding:12px 14px}.portal-greeting{margin-bottom:18px}.portal-attendance-card{padding:10px 12px}.portal-profile-avatar{width:50px;height:50px;border-radius:10px;font-size:18px!important}.portal-profile-name-block h2{font-size:15px}.portal-profile-meta{grid-template-columns:1fr 1fr;gap:8px 12px}.portal-profile-contact-grid{grid-template-columns:1fr}.portal-clase-card{padding:12px}.portal-clase-right{flex-direction:column;gap:6px}.portal-clase-details{flex-direction:column;gap:3px}.portal-att-header-info h1{font-size:15px}.portal-att-total-value{font-size:22px}.portal-att-total-card{padding:10px 6px}.portal-att-actions{gap:4px}.portal-btn-label{display:none}.portal-att-student{padding:10px 12px}}@media (max-width: 480px){.tatami-page{padding:12px}.neu-card{padding:14px 12px}.tatami-table{font-size:12.5px}.tatami-table th,.tatami-table td{padding:9px 10px}.portal-login-card{padding:20px 16px}}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--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-visible\:ring-primary\/30:focus-visible{--tw-ring-color: hsl(var(--primary) / .3)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;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))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;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))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;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))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;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))}.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;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))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);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))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);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))}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:hsl(var(--primary))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[state\=checked\]\:text-white[data-state=checked]{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}@media (min-width: 640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\: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)))}.sm\:text-left{text-align:left}}@media (min-width: 768px){.md\:max-w-\[420px\]{max-width:420px}}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}
