body{background-color:#f4fafc;font-family:Lexend,sans-serif;font-size:16px;margin:0;padding:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}input,textarea{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}body *{font-family:Lexend,sans-serif}input[type=file]{display:none}.custom-file-name{margin-left:10px}svg image{user-drag:none;-webkit-user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}#root{height:100vh;position:absolute;width:100%}.login-container{border:1px solid #ccc;padding:20px;text-align:center}.welcome-message{font-size:16px;margin-bottom:20px}.login-sections{align-items:flex-start;display:flex;justify-content:center}.login-divider{border-left:2px solid #000;height:200px;margin:0 80px}.login-section{align-items:center;display:flex;flex-direction:column}.login-input{border:1px solid #ddd;border-radius:4px;margin-bottom:10px;padding:8px;width:200px}.login-button{background-color:#000;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:10px;padding:10px 20px}.login-button:hover{background-color:#333}.login-text{align-items:center;display:flex;margin-top:20px}.arrow{margin-left:5px}.forgot-password{align-self:flex-end;cursor:pointer;font-size:14px;margin-bottom:10px;margin-top:5px}.google{align-items:center;background-color:#4285f4;color:#fff;display:flex;justify-content:center}.google-icon{margin-right:10px}.logout-message{animation:fadeOut 10s forwards;background-color:#4caf50;color:#fff;left:0;padding:10px 0;position:absolute;text-align:center;top:0;width:100%;z-index:1}@keyframes fadeOut{to{opacity:0;visibility:hidden}}.login-button.black:disabled{background-color:#555;cursor:not-allowed}.header-controls{justify-content:flex-end;padding-bottom:20px;padding-right:40px;width:100%}.header-controls,.sort-dropdown,.view-mode-and-sort{align-items:center;display:flex}.sort-dropdown{color:grey;margin-right:20px}.view-mode-selector{align-items:center;display:flex;gap:6px}.view-mode-selector button{background:none;border:none;cursor:pointer;padding:5px}.view-mode-selector button.selected{background-color:#f0f0f0}.view-mode-selector img{transition:transform .3s ease}.view-mode-selector button:hover img{transform:scale(1.01)}.auth-buttons{align-items:center;display:flex;position:absolute;right:0;top:10px}.admin-button,.logout-button{background:linear-gradient(45deg,#1e3c72,#2a5298);background-size:200% 200%;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;margin-left:10px;padding:10px 20px;transition:background .3s ease-in-out}.admin-button{background:linear-gradient(160deg,#2abfd4,#28a0c3)}.admin-button:hover,.logout-button:hover{animation:gradient-wave 3s ease infinite;background:linear-gradient(45deg,#0f0c29,#302b63,#24243e);background-size:200% 200%}.design-grid{display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}.design-card{background-color:#fff;border:1px solid #ddd;border-radius:8px;overflow:hidden;padding:16px;transition:transform .2s}.design-card:hover{transform:scale(1.01)}.design-thumbnail{border:1px solid #ddd;height:auto;-o-object-fit:cover;object-fit:cover;width:100%}.design-info{background-color:#fff;font-weight:700;overflow:hidden;padding-bottom:16px;text-overflow:ellipsis;white-space:nowrap}.design-info strong{display:block;margin-bottom:5px}.design-link{color:inherit;text-decoration:none}.design-link:hover{color:#000}.new-design-card{align-items:center;background-color:#000;color:#fff;cursor:pointer;display:flex;justify-content:center}.metadata{color:grey;display:flex;flex-direction:column;font-size:14px;gap:2px;padding-top:16px}.create-new-design{text-align:center}.plus-sign{font-size:180px;margin-bottom:8px}.create-new-text{font-size:24px}.design-list td,.design-list th{padding:15px;text-align:left}a{color:inherit;font-weight:700;text-decoration:none}a:hover{color:#000}.design-list td{background-color:#fff;border-spacing:16px}.design-list table{max-width:1080px}.custom-tooltip .ant-tooltip-inner{background-color:#000;border-radius:4px;color:#fff}.custom-tooltip .ant-tooltip-arrow{border-top-color:#000}.design-list table{background-color:none;border-collapse:collapse;width:100%}@keyframes pulseLetter{0%{opacity:.2}50%{opacity:1}to{opacity:.2}}.pulsing-letter{animation:pulseLetter 1.5s infinite;display:inline-block}.submitting-animation{background:linear-gradient(90deg,#120136,#0c0032,#2e0239,#3b064d);border-radius:10px;bottom:20px;color:#8fe3cf;font-family:"Monaco, monospace";font-size:20px;letter-spacing:3px;padding:10px 20px;position:absolute;right:20px;white-space:nowrap}.confetti-thank-you{box-shadow:0 8px 16px 0 rgba(0,0,0,.2);position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1002}.confetti-thank-you,.global-thank-you{background-color:#fff;border-radius:10px;left:50%;padding:20px}.global-thank-you{box-shadow:0 4px 8px rgba(0,0,0,.1);position:fixed;text-align:center;top:0;transform:translateX(-50%);width:300px;z-index:1003}.modal-button{border:none;border-radius:10px;cursor:pointer;margin:8px 0;padding:14px 20px;transition:background-image .3s ease-in-out}.modal-button:disabled{cursor:not-allowed;opacity:.5}.react-tabs{-webkit-tap-highlight-color:transparent}.react-tabs__tab-list{border-bottom:1px solid #aaa;margin:0 0 10px;padding:0}.react-tabs__tab{border:1px solid transparent;border-bottom:none;bottom:-1px;cursor:pointer;display:inline-block;list-style:none;padding:6px 12px;position:relative}.react-tabs__tab--selected{background:#fff;border-color:#aaa;border-radius:5px 5px 0 0;color:#000}.react-tabs__tab--disabled{color:GrayText;cursor:default}.react-tabs__tab:focus{outline:none}.react-tabs__tab:focus:after{background:#fff;bottom:-5px;content:"";height:5px;left:-4px;position:absolute;right:-4px}.react-tabs__tab-panel{display:none}.react-tabs__tab-panel--selected{display:block}@keyframes slideDown-show{0%{opacity:0;transform:translateY(-100%);visibility:visible}to{opacity:1;transform:translateY(0);visibility:visible}}.modal{background-color:#fff;border-radius:5px;padding:20px;visibility:hidden;z-index:1001}.modal-enter{animation:slideDown-show .5s ease-out forwards;visibility:visible}.button{border-radius:20px;box-shadow:0 4px 6px rgba(0,0,0,.1);font-weight:700;margin:0 10px;padding:8px 16px;transition:transform .3s ease,box-shadow .3s}.button:hover{box-shadow:0 6px 12px rgba(0,0,0,.2);transform:translateY(-2px)}.yes-button{background-image:linear-gradient(90deg,#056608,#0d8a70)}.no-button{background-image:linear-gradient(90deg,#fe8c00,#f83600)}.admin-tab-label{background:linear-gradient(90deg,#334155,#94a3b8);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block;font-weight:600}.admin-tab-label.admin-tab-design{background-image:linear-gradient(90deg,#f97316,#facc15)}.admin-tab-label.admin-tab-users{background-image:linear-gradient(90deg,#0ea5e9,#22d3ee)}.admin-tab-label.admin-tab-bugs{background-image:linear-gradient(90deg,#ef4444,#f97316)}.admin-tab-label.admin-tab-audit{background-image:linear-gradient(90deg,#6366f1,#a855f7)}.admin-tab-label.admin-tab-aws{background-image:linear-gradient(90deg,#f59e0b,#f97316)}.admin-tab-label.admin-tab-storage{background-image:linear-gradient(90deg,#22c55e,#10b981)}.admin-tab-label.admin-tab-analytics{background-image:linear-gradient(90deg,#8b5cf6,#ec4899)}.modal-overlay{align-items:center;background-color:rgba(0,0,0,.5);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{background-color:#fff;border-radius:10px;box-shadow:0 4px 8px rgba(0,0,0,.2);max-width:90%;padding:30px;width:500px}.modal-content label{font-size:16px;margin-right:10px}.modal-content input[type=date],.modal-content input[type=number]{border:1px solid #ccc;border-radius:5px;margin-top:5px;padding:8px}.modal-content button:hover{opacity:.9}@media (max-width:600px){.modal-content{width:90%}}.audit-trail{display:flex;flex-direction:column;gap:16px}.audit-trail-header{align-items:flex-end;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.audit-trail-subtitle{color:#666;font-size:14px;margin:6px 0 0}.audit-trail-search{background-color:#fff;border:1px solid #d0d7de;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06);font-size:14px;padding:10px 12px;width:280px}.audit-trail-state{color:#555;padding:20px 0}.audit-trail-table{border-collapse:collapse;table-layout:fixed;width:100%}.audit-trail-table td,.audit-trail-table th{border-bottom:1px solid #e5e7eb;font-size:14px;overflow:hidden;padding:12px 10px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.audit-trail-table th{background-color:#f3f4f6;color:#1f2937;font-weight:600}.audit-trail-table tbody tr:nth-child(2n){background-color:#f9fafb}.audit-trail-table tbody tr:hover{background-color:#eef2ff}.audit-trail-footer{display:flex;justify-content:center}.audit-trail-load{background-image:linear-gradient(90deg,#3b82f6,#6366f1);border:none;border-radius:999px;box-shadow:0 6px 12px rgba(59,130,246,.3);color:#fff;cursor:pointer;font-weight:600;padding:10px 24px;transition:transform .2s ease,box-shadow .2s ease}.audit-trail-load:hover{box-shadow:0 10px 18px rgba(59,130,246,.35);transform:translateY(-1px)}.audit-trail-load:disabled{box-shadow:none;cursor:not-allowed;opacity:.7}.aws-bill{display:flex;flex-direction:column;gap:16px}.aws-bill-header{align-items:flex-end;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.aws-bill-subtitle{color:#666;font-size:14px;margin:6px 0 0}.aws-bill-refresh{background-image:linear-gradient(90deg,#10b981,#34d399);border:none;border-radius:999px;box-shadow:0 6px 12px rgba(16,185,129,.3);color:#fff;cursor:pointer;font-weight:600;padding:8px 18px;transition:transform .2s ease,box-shadow .2s ease}.aws-bill-refresh:hover{box-shadow:0 10px 18px rgba(16,185,129,.35);transform:translateY(-1px)}.aws-bill-refresh:disabled{box-shadow:none;cursor:not-allowed;opacity:.7}.aws-bill-total{color:#0f172a;font-size:18px;font-weight:600}.aws-bill-total span{margin-left:6px}.aws-bill-table{border-collapse:collapse;table-layout:fixed;width:100%}.aws-bill-table td,.aws-bill-table th{border-bottom:1px solid #e5e7eb;font-size:14px;overflow:hidden;padding:12px 10px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.aws-bill-service-cell{overflow:visible;position:relative;z-index:2}.aws-bill-table th{background-color:#f3f4f6;color:#1f2937;font-weight:600}.aws-bill-table tbody tr:nth-child(2n){background-color:#f9fafb}.aws-bill-table tbody tr:hover{background-color:#ecfdf5}.aws-bill-service{display:flex;gap:8px;overflow:visible}.aws-bill-info,.aws-bill-service{align-items:center;position:relative}.aws-bill-info{background-color:#e5e7eb;border-radius:50%;color:#111827;cursor:default;display:inline-flex;flex-shrink:0;font-size:12px;font-weight:700;height:18px;justify-content:center;width:18px}.aws-bill-info:after{background:linear-gradient(135deg,#0f172a,#7c2d12);border-radius:12px;box-shadow:0 8px 16px rgba(15,23,42,.2);color:#f8fafc;content:attr(data-tooltip);font-size:13px;left:120%;line-height:1.4;padding:12px 14px;pointer-events:none;text-align:center;white-space:normal;width:260px}.aws-bill-info:after,.aws-bill-info:before{opacity:0;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .2s ease;z-index:20}.aws-bill-info:before{border:6px solid transparent;border-right-color:#0f172a;content:"";left:110%}.aws-bill-subrow{background-color:#fdf8f3}.aws-bill-subrow td{color:#4b5563;font-size:13px}.aws-bill-subrow-label{padding-left:18px}.aws-bill-info:hover:after,.aws-bill-info:hover:before{opacity:1}.aws-bill-empty{color:#666;padding:20px 0;text-align:center}.aws-bill-state{color:#555;padding:20px 0}.aws-bill-error{color:#b91c1c;font-weight:600}.aws-bill-footnote{color:#4b5563;display:flex;flex-direction:column;font-size:13px;gap:6px;margin-top:14px}.aws-bill-footnote-title{color:#374151;font-weight:600}.aws-bill-footnote-list{display:flex;flex-wrap:wrap;gap:10px}.aws-bill-footnote-item{background-color:#f3f4f6;border-radius:999px;margin-right:6px;padding:4px 8px}.aws-bill-info-inline{margin-right:8px}.user-storage{display:flex;flex-direction:column;gap:16px}.user-storage-header{align-items:flex-end;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.user-storage-subtitle{color:#666;font-size:14px;margin:6px 0 0}.user-storage-refresh{background-image:linear-gradient(90deg,#0ea5e9,#38bdf8);border:none;border-radius:999px;box-shadow:0 6px 12px rgba(14,165,233,.3);color:#fff;cursor:pointer;font-weight:600;padding:8px 18px;transition:transform .2s ease,box-shadow .2s ease}.user-storage-refresh:hover{box-shadow:0 10px 18px rgba(14,165,233,.35);transform:translateY(-1px)}.user-storage-refresh:disabled{box-shadow:none;cursor:not-allowed;opacity:.7}.user-storage-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.user-storage-card{background:linear-gradient(135deg,#fff,#f1f5f9);border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 6px 14px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:8px;padding:16px}.user-storage-label{color:#6b7280;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.user-storage-value{color:#0f172a;font-size:18px;font-weight:600}.user-storage-state{color:#555;padding:20px 0}.user-storage-note{color:#6b7280;font-size:13px;margin-top:10px}.user-storage-error{color:#b91c1c;font-weight:600}.user-storage-footnote{align-items:center;color:#4b5563;display:flex;flex-wrap:wrap;font-size:13px;gap:8px;margin-top:12px}.user-storage-footnote-title{color:#374151;font-weight:600}.user-storage-footnote-value{background:linear-gradient(90deg,#0ea5e9,#22c55e);border-radius:999px;color:#0f172a;font-weight:600;padding:4px 10px}.user-storage-footnote-detail{color:#6b7280;font-size:12px;font-weight:500}.reset-password-container{align-items:center;display:flex;flex-direction:column;height:100vh;justify-content:center;position:relative;text-align:center}.reset-password-container input{font-size:16px;margin:10px 0;padding:10px;width:300px}.reset-password-button{background-color:#000;border:none;color:#fff;cursor:pointer;margin-top:10px;padding:10px 20px;transition:background .3s ease}.reset-password-button.disabled{animation:gradient-animation 1.5s ease infinite;background:linear-gradient(145deg,#d8d8d8,#f0f0f0);color:#888;cursor:not-allowed}@keyframes gradient-animation{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.password-toggle{right:35px;top:10px}.confetti-canvas{height:100%;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:2000}.create-password-container{align-items:center;display:flex;flex-direction:column;height:100vh;justify-content:center;text-align:center}.create-password-container input{box-sizing:border-box;font-size:16px;margin:10px 0;padding:10px;width:300px}.password-field{width:300px}.password-field,.password-input{position:relative}.password-toggle{cursor:pointer;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.create-password-button{background-color:#000;border:none;color:#fff;cursor:pointer;margin-top:10px;padding:10px 20px;transition:background .3s ease}.create-password-button.disabled{background:linear-gradient(145deg,#d8d8d8,#f0f0f0);color:#888;cursor:not-allowed}.create-password-button.loading{animation:gradient 1.5s infinite;background:linear-gradient(270deg,#d8d8d8,#f0f0f0,#333,#000);background-size:600% 600%}.message{color:red}.message,.message-success{font-weight:700;margin-top:10px}.message-success{color:#2a9d8f}@keyframes gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.student-container{display:flex;flex-direction:column;gap:10px}.student-item{align-items:center;border:1px solid #ddd;border-radius:4px;display:flex;justify-content:space-between;padding:10px}.student-name{flex:1;max-width:200px;min-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.add-student-row{align-items:center;display:flex;gap:10px;margin-bottom:20px}.input{border:1px solid #ddd;border-radius:4px;flex:1;padding:8px}.button{background-color:#26adbb;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:400;padding:10px}.button:hover{background-color:#1d828c}.passcode-text{background-color:#f0f0f0;border-radius:4px;cursor:pointer;min-width:100px;padding:8px;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media print{body{margin:0!important;padding:0!important;-webkit-print-color-adjust:exact}.footer,.header,.modal-overlay,button,nav{display:none!important}.card-grid{display:grid;gap:20px;grid-template-columns:repeat(2,1fr);margin:0!important;padding:0!important}.card,.card-grid{page-break-inside:avoid}.card{border:1px solid #000;box-shadow:none;margin-bottom:20px}}