.site-header{width:100%;border-bottom:1px solid var(--gray-300);background-color:var(--white);box-sizing:border-box}.site-header--sticky{position:sticky;top:0;z-index:100}.site-header__banner{width:100%;padding:var(--space-sm) clamp(1rem,4vw,2rem);background-color:var(--color-info-bg);color:var(--color-info-text);font-size:var(--text-sm);text-align:center;box-sizing:border-box;border-bottom:1px solid var(--color-info-border);display:flex;align-items:center;justify-content:center;gap:var(--space-md)}.site-header__banner-close{flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--color-info-text);font-size:var(--text-lg);line-height:1;padding:0 var(--space-xs);opacity:.6}.site-header__banner-close:hover{opacity:1}.site-header__inner{width:min(100%,1200px);margin:0 auto;padding:var(--space-md) clamp(1rem,4vw,2rem);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-md);box-sizing:border-box}.site-header__brand{display:flex;align-items:center;gap:var(--space-sm)}.site-header__logo{height:40px}.site-header__title{justify-self:center;font-weight:var(--font-bold);font-size:var(--text-lg);letter-spacing:.02em}.site-header__actions{display:flex;justify-self:end}.site-header__link{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--button-padding-y) var(--button-padding-x);border-radius:var(--button-radius);border:none;background-color:var(--blue-100);color:var(--blue-700);font-weight:var(--button-font-weight);text-decoration:none;cursor:pointer;box-shadow:var(--shadow-button);transition:background-color var(--transition-base),color var(--transition-base),box-shadow var(--transition-base)}.site-header__link:hover{background-color:var(--blue-200);color:var(--blue-800);box-shadow:var(--shadow-button-hover)}.site-header__link:focus-visible{outline:var(--focus-outline-thick);outline-offset:var(--focus-offset)}.site-header__link-icon{font-size:var(--text-md);line-height:var(--leading-none)}.feedback-dialog{max-width:500px}.feedback-prompt-text{margin:0 0 var(--space-2xl);color:var(--blue-900);font-size:var(--text-xl);font-weight:var(--font-normal);line-height:var(--leading-normal);background:#e6f0ff;border-radius:var(--radius-md)}.star-rating-container{margin-bottom:var(--space-2xl)}.star-rating-label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-semibold);color:var(--blue-900);font-size:var(--text-base)}.star-rating{display:flex;gap:var(--space-sm);justify-content:center}.star-button{background:none;border:none;font-size:2.5rem;color:#fff;-webkit-text-stroke:1.5px var(--yellow-600);cursor:pointer;transition:color var(--transition-base),transform .1s ease;padding:0;line-height:var(--leading-none)}.star-button:hover{color:var(--yellow-200);-webkit-text-stroke:1.5px var(--yellow-600);transform:scale(1.1)}.star-button.selected{color:var(--yellow-400);-webkit-text-stroke:1.5px var(--yellow-600)}.star-button.selected:hover{color:var(--yellow-400);-webkit-text-stroke:1.5px var(--yellow-700)}.star-button:focus-visible{outline:2px solid var(--yellow-600);outline-offset:2px;border-radius:2px}.feedback-text-container{margin-bottom:var(--space-2xl)}.feedback-text-container label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-semibold);color:var(--blue-900);font-size:var(--text-base)}.feedback-text-container textarea{width:100%;padding:var(--space-md);border:var(--input-border);border-radius:var(--input-radius);font-family:inherit;font-size:var(--text-base);resize:vertical;box-sizing:border-box;transition:border-color var(--transition-base)}.feedback-text-container textarea:focus{outline:none;border-color:var(--input-focus-border)}.feedback-dialog-hint{margin:var(--space-sm) 0 var(--space-lg);font-size:var(--text-sm);font-weight:var(--font-normal);color:var(--gray-600);line-height:var(--leading-snug)}.feedback-dialog-actions{display:flex;gap:var(--space-md);justify-content:flex-end}.feedback-dialog-actions button{flex:0 0 auto}.feedback-float-button{position:absolute;top:var(--space-lg);right:var(--space-lg);background:var(--violet-600);color:var(--white);border:none;border-radius:var(--button-radius);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);font-weight:var(--button-font-weight);cursor:pointer;box-shadow:0 2px 8px #00000026;transition:background var(--transition-base),transform .1s ease,opacity var(--transition-base);z-index:5;max-width:200px;white-space:nowrap;opacity:.75}.feedback-float-button:hover{background:var(--violet-700);transform:translateY(-1px);box-shadow:0 4px 12px #0003;opacity:1}.feedback-float-button:active{transform:translateY(0)}.feedback-float-button--completed{background:var(--violet-300)}.feedback-float-button--completed:hover{background:#9289f5}:root{--bottom-nav-height: 3.75rem;--bottom-nav-padding: .35rem;--bottom-nav-offset: calc( var(--bottom-nav-height) + (var(--bottom-nav-padding) * 2) + env(safe-area-inset-bottom) + .65rem )}.app-shell{min-height:100dvh;background-color:var(--app-background-color);background-image:var(--app-background-image);background-repeat:var(--app-background-repeat);background-size:var(--app-background-size);display:flex;flex-direction:column}@supports not (height: 100dvh){.app-shell{height:var(--app-height, 100vh);min-height:var(--app-height, 100vh)}}html,body{height:100%}body.has-bottom-nav{padding-bottom:var(--bottom-nav-offset);scroll-padding-bottom:var(--bottom-nav-offset)}.app-header{padding:clamp(1.5rem,4vw,2.25rem) clamp(1.5rem,5vw,2.25rem) var(--space-lg);display:flex;justify-content:center;align-items:flex-start;gap:var(--space-lg)}.app-header-content{width:min(960px,100%)}.app-header h1{font-size:var(--text-4xl)}.app-main{flex:1;padding:var(--space-xl) clamp(1.25rem,4vw,2.25rem) var(--bottom-nav-offset);display:flex;justify-content:center;box-sizing:border-box}.app-shell--with-header .app-main{padding-top:0}.content-area{width:min(960px,100%);display:flex;flex-direction:column;gap:var(--space-xl)}.tab-panel{display:none}.tab-panel--active{display:block}.tab-content{display:flex;flex-direction:column;gap:var(--space-xl)}.panel-card{background:var(--white);border-radius:var(--modal-radius);padding:var(--card-padding);box-shadow:var(--shadow-xl);border:var(--card-border);display:flex;flex-direction:column;gap:var(--space-lg)}.community-challenge-card{gap:var(--space-md);margin-bottom:var(--space-md)}.challenge-progress{margin:0;font-weight:var(--font-semibold);color:var(--blue-900)}.settings-card{gap:var(--space-xl)}.intensity-selector{margin-bottom:var(--space-sm)}.intensity-label{font-weight:var(--font-semibold);color:var(--blue-900);display:block;margin-bottom:var(--space-md)}.intensity-options{display:flex;flex-direction:column;gap:var(--space-sm)}.intensity-option{display:flex;align-items:baseline;gap:var(--space-xs);padding:var(--button-padding-y) .85rem;border:1px solid var(--gray-300);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-base),background-color var(--transition-base);background:var(--white);font-size:var(--text-md);text-align:left;width:100%}.intensity-option:hover{border-color:var(--blue-400);background:var(--blue-50)}.intensity-option.selected{border-color:var(--blue-600);background:var(--blue-100)}.intensity-option-label{font-weight:var(--font-normal);color:var(--blue-900);font-size:var(--text-base)}.intensity-option.selected .intensity-option-label{color:var(--blue-700)}.intensity-option strong{font-weight:var(--font-bold);color:var(--blue-900)}.intensity-option.selected strong{color:var(--blue-700)}.intensity-option-desc{color:var(--blue-900);font-size:var(--text-sm);font-weight:var(--font-normal)}.intensity-option.selected .intensity-option-desc{color:var(--blue-700)}.intensity-option-desc:before{content:"("}.intensity-option-desc:after{content:")"}.section-header p{margin:0 0 .35rem}.eyebrow{font-size:var(--text-base);font-weight:var(--font-semibold);letter-spacing:.02em;text-transform:uppercase;color:var(--blue-700);margin:0 0 var(--space-xs)}.subdued{margin:0;color:var(--gray-600)}.settings-form{display:flex;flex-direction:column;gap:var(--space-lg)}.form-grid{display:grid;gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}label{font-weight:var(--font-semibold);color:var(--blue-900);display:flex;flex-direction:column;gap:.4rem}.helper-text{margin:0;color:var(--gray-600);font-size:var(--text-base)}.action-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md)}.align-end{justify-content:flex-end}.action-card{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-md);align-items:center;padding:var(--space-lg) var(--space-xl);border-radius:var(--card-radius);border:var(--card-border);background:var(--gray-100)}.study-action-button{max-width:360px;width:100%;margin:0 auto;padding:clamp(.65rem,2vw,1rem) var(--button-padding-x);box-shadow:0 6px 16px #0000002e}.study-action-button:hover{box-shadow:0 8px 20px #00000038}.study-action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);max-width:720px;width:100%;margin:0 auto}.study-action-buttons .study-action-button{max-width:none;margin:0}.rc-button-wrapper{position:relative}.rc-info-button{position:absolute;top:50%;right:-10px;transform:translateY(-50%);width:20px;height:20px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--gray-200);color:var(--gray-600);border:none;border-radius:var(--radius-full);box-shadow:none;cursor:pointer;transition:background var(--transition-base),color var(--transition-base)}.rc-info-button:hover{background:var(--gray-300);color:var(--gray-800);box-shadow:none}.rc-info-button:active{transform:translateY(-50%)}.rc-info-button:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.rc-tooltip{position:absolute;top:calc(100% + .5rem);left:50%;transform:translate(-50%);width:min(320px,calc(100vw - 2rem));padding:var(--space-md) var(--space-lg);background:var(--white);border:var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-tooltip);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--blue-900);line-height:var(--leading-normal);z-index:10}.rc-tooltip p{margin:0}.rc-tooltip strong{font-weight:var(--font-semibold)}.rc-tooltip p+p{margin-top:var(--space-md)}.rc-tooltip:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid var(--gray-300)}.rc-tooltip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid var(--white);margin-bottom:-1px}@media(max-width:768px){.study-action-buttons{grid-template-columns:1fr;max-width:360px}}.study-alerts{display:flex;flex-direction:column;gap:var(--space-lg)}.study-alerts .error-message{margin:0}.progress-card{display:flex;flex-direction:column;gap:var(--space-lg)}.progress-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-lg);flex-wrap:wrap}.progress-header-left{display:flex;flex-direction:column;gap:var(--space-xs)}.progress-chart{--graph-padding: var(--space-md);display:flex;flex-direction:column;gap:.6rem}.progress-graph-area{position:relative;border:1px solid var(--gray-200);border-radius:var(--card-radius);background:linear-gradient(180deg,var(--gray-50),var(--white));overflow:hidden;padding:var(--graph-padding)}.progress-axis{position:relative;min-height:3.75rem;padding:0 var(--graph-padding);overflow:visible}.axis-label{position:absolute;top:0;font-weight:var(--font-semibold);color:var(--blue-900);font-size:var(--text-base);white-space:nowrap}.axis-label.start{left:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.axis-label.exam{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs);right:0}.axis-date{font-size:var(--text-sm);color:var(--blue-900);font-weight:var(--font-normal)}.exam-date-display{display:flex;align-items:center;gap:var(--space-sm);position:relative}.exam-date-edit-button{padding:.25rem;background:transparent;border:none;cursor:pointer;transition:opacity var(--transition-base);box-shadow:none;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--gray-500);opacity:.7}.exam-date-edit-button:hover{opacity:1;background:transparent;box-shadow:none}.exam-date-edit-button:active{transform:none}.exam-date-edit-wrapper{position:relative;display:flex;align-items:center}.exam-date-tooltip{position:absolute;top:calc(100% + .5rem);left:50%;transform:translate(-50%);min-width:200px;max-width:280px;padding:var(--space-sm) var(--space-md);background:var(--white);border:var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-tooltip);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--blue-900);text-align:center;z-index:10;white-space:normal;line-height:var(--leading-normal)}.exam-date-tooltip:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid var(--gray-200)}.exam-date-tooltip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid var(--white);margin-bottom:-1px}.exam-date-input-overlay{position:absolute;left:0;top:0;width:22px;height:22px;opacity:0;cursor:pointer;margin:0;padding:0;border:none}.axis-date-picker{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs);font-weight:var(--font-semibold);color:var(--blue-900)}.axis-date-picker input{border:1px solid var(--gray-300);border-radius:var(--radius-md);padding:var(--space-xs) .6rem;font-size:var(--text-sm);color:var(--blue-900);background:var(--white);width:clamp(6.5rem,15vw,8.5rem);box-sizing:border-box;-webkit-user-select:none;user-select:none;caret-color:transparent}.axis-date-picker input::-webkit-clear-button,.axis-date-picker input::-webkit-inner-spin-button{display:none}.axis-date-picker input::-ms-clear{display:none}.progress-path{position:relative;width:100%;height:100%;z-index:1}.progress-segment{position:absolute;background:var(--red-500);border-radius:4px}.progress-segment.vertical{transform:translate(-50%)}.progress-segment.horizontal{height:4px;border-radius:0}.progress-segment.goal{background:var(--blue-400)}.progress-segment.goal.vertical{width:2px}.progress-segment.goal.horizontal{height:2px}.progress-scale{position:absolute;top:var(--space-md);right:var(--space-md);background:#0066fd1a;color:var(--blue-900);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-weight:var(--font-semibold);font-size:var(--text-base)}.progress-legend{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs);color:var(--blue-900);font-weight:var(--font-semibold);text-transform:lowercase}.progress-legend-overlay{position:absolute;top:var(--graph-padding);left:var(--graph-padding);z-index:2}.legend-item{display:flex;align-items:center;gap:var(--space-sm)}.legend-line{width:38px;height:4px;background:var(--red-500);border-radius:var(--card-radius);display:inline-flex}.legend-line.progress{background:var(--red-500)}.legend-line.target{background:var(--blue-400)}@media(max-width:600px){.progress-card,.progress-header{gap:.75rem}.progress-header-left{gap:.25rem}.progress-header .eyebrow{font-size:.75rem}.progress-legend{font-size:.85rem}.legend-item span:not(.legend-line){font-size:.85rem}.progress-axis{min-height:3.4rem}.axis-label{font-size:.8rem}.axis-date-picker span{font-size:.75rem}.axis-date-picker input{width:min(100%,7.5rem);font-size:.7rem;padding:.15rem;border-radius:6px}.progress-chart{--graph-padding: .6rem}}.words-list{display:flex;flex-direction:column;gap:var(--space-md)}.word-row{display:grid;grid-template-columns:1.2fr 2fr 1.6fr;gap:.65rem;column-gap:clamp(1rem,4vw,1.75rem);align-items:center}.word-row--header{font-weight:var(--font-bold);color:var(--gray-700)}.word-column-label{display:flex;align-items:center}.word-label{font-weight:var(--font-bold);color:var(--blue-900);position:relative}.word-label-button{border:none;padding:.15rem .25rem;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left;font-weight:var(--font-bold);color:var(--blue-900);border-radius:var(--radius-sm);box-shadow:none}.word-label-button:hover{background:none;box-shadow:none}.word-label-button:active{background:none;transform:none}.word-label-button:focus{outline:none}.word-label-button:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.word-details-tooltip{position:absolute;left:0;top:calc(100% + var(--space-sm));z-index:3;width:min(480px,calc(100vw - 3rem));min-width:280px;max-width:100%;padding:var(--space-md) .9rem;border-radius:var(--card-radius);border:var(--card-border);background:var(--white);color:var(--blue-900);font-size:var(--text-base);font-weight:var(--font-medium);box-shadow:var(--shadow-tooltip);display:flex;flex-direction:column;gap:.6rem}.word-details-tooltip--above{top:auto;bottom:calc(100% + var(--space-sm))}.word-tooltip-section{margin:0;line-height:var(--leading-normal)}.word-tooltip-section strong{display:block;font-weight:var(--font-bold);color:var(--blue-900);margin-bottom:.25rem}.word-click-hint-tip{position:absolute;bottom:calc(100% + .5rem);left:0;min-width:200px;max-width:280px;padding:var(--space-sm) var(--space-md);background:var(--white);border:var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-tooltip);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--blue-900);z-index:10;white-space:normal;line-height:var(--leading-normal);display:flex;align-items:flex-start;gap:var(--space-sm)}.word-click-hint-tip:before{content:"";position:absolute;top:100%;left:1rem;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid var(--gray-200)}.word-click-hint-tip:after{content:"";position:absolute;top:100%;left:1rem;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid var(--white);margin-top:-1px}.word-click-hint-tip-close{flex-shrink:0;width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--gray-500);font-size:var(--text-lg);line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--transition-base),background var(--transition-base)}.word-click-hint-tip-close:hover{color:var(--gray-700);background:var(--gray-100)}.word-click-hint-tip-close:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.strength-meter{width:100%;height:14px;background:var(--gray-300);border-radius:var(--radius-full);overflow:hidden;position:relative}.strength-meter__fill{height:100%;background:linear-gradient(90deg,var(--green-500),var(--green-600));transition:width .25s ease}.next-review{margin:0;color:var(--gray-600);font-weight:var(--font-medium)}@media(max-width:768px){.word-row{grid-template-columns:1fr}.word-row--header{display:none}.next-review{font-size:.95rem}.word-details-tooltip{left:50%;transform:translate(-50%);width:min(360px,calc(100vw - 2rem))}}.password-panel{padding:var(--space-lg) var(--space-xl);border-radius:var(--card-radius);border:var(--card-border);background:var(--white);display:flex;flex-direction:column;gap:var(--space-md)}.danger{border-color:var(--color-error-border);background:var(--color-error-bg)}.danger-button{background:var(--color-error);color:var(--white)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--modal-overlay-bg-dark);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}.modal-content{background:var(--white);border-radius:var(--modal-radius);padding:var(--modal-padding-lg);max-width:400px;width:100%;box-shadow:var(--shadow-3xl)}.modal-content h3{margin:0 0 var(--space-2xl);color:var(--blue-900);font-size:var(--text-3xl)}.install-steps{display:flex;flex-direction:column;gap:var(--space-lg);margin-bottom:var(--modal-padding-lg)}.install-step{margin:0;color:var(--blue-900);font-size:var(--text-md);line-height:var(--leading-relaxed)}.share-icon{font-size:1.2rem;display:inline-block;margin:0 .25rem}.modal-close-button{width:100%;padding:var(--space-md);background:var(--blue-600);color:var(--white);border:none;border-radius:var(--radius-md);font-weight:var(--font-semibold);cursor:pointer;transition:background var(--transition-base)}.modal-close-button:hover{background:var(--blue-700)}.mission-text{padding:0 0 var(--space-lg);text-align:center;background:transparent}.mission-text p{margin:0 auto;max-width:800px;font-size:var(--text-sm);line-height:var(--leading-normal)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;min-height:var(--bottom-nav-height);background:var(--white);border-top:var(--card-border);display:flex;gap:var(--space-sm);padding:var(--bottom-nav-padding) clamp(1rem,4vw,1.25rem);padding-bottom:calc(var(--bottom-nav-padding) + env(safe-area-inset-bottom));box-shadow:var(--shadow-nav);z-index:10}.nav-button{flex:1;border-radius:var(--card-radius);background:transparent;color:var(--gray-600);border:1px solid transparent;box-shadow:none;padding:.65rem var(--space-md);font-weight:var(--font-bold);transition:background-color var(--transition-base),color var(--transition-base),border-color var(--transition-base)}.nav-button:hover{background:var(--blue-100);color:var(--blue-700)}.nav-button.active{background:var(--blue-100);border-color:var(--blue-400);color:var(--blue-700)}@media(min-width:768px){.action-card{flex-wrap:nowrap}}.loading-message{display:inline-block;transition:opacity .3s ease-in-out}.loading-message.fade-in{opacity:1}.loading-message.fade-out{opacity:0}.words-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.words-card-header h2{margin:0}.words-sort-button{padding:.35rem;background:transparent;border:none;box-shadow:none;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--gray-500);cursor:pointer;flex-shrink:0;border-radius:var(--radius-sm);transition:color var(--transition-base)}.words-sort-button:hover{color:var(--gray-700);background:transparent;box-shadow:none}.words-sort-button:active{transform:none}.words-sort-button:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.sort-options{display:flex;flex-direction:column;gap:var(--space-sm)}.sort-option{display:block;width:100%;text-align:left;padding:var(--button-padding-y) .85rem;border:1px solid var(--gray-300);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-base),background-color var(--transition-base);background:var(--white);font-size:var(--text-md);font-weight:var(--font-normal);color:var(--blue-900);box-shadow:none}.sort-option:hover{border-color:var(--blue-400);background:var(--blue-50);box-shadow:none}.sort-option--active{border-color:var(--blue-600);background:var(--blue-100);color:var(--blue-700)}.sort-option:active{transform:none}.mafy-info-content{display:grid;gap:var(--space-md)}.mafy-info-content p{margin:0}.mafy-info-actions{margin-top:var(--space-2xl);display:flex;flex-direction:column;gap:var(--space-md);align-items:center}.practice-card{gap:var(--space-xl)}.practice-progress{font-weight:var(--font-semibold)}.practice-progress-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.practice-header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.practice-report-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);border:1px solid var(--gray-200);background:transparent;color:var(--gray-500);padding:0;cursor:pointer;transition:border-color var(--transition-base),color var(--transition-base),background var(--transition-base)}.practice-report-button:hover{border-color:var(--gray-300);color:var(--gray-700);background:var(--gray-100)}.practice-report-button:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.practice-report-icon{width:18px;height:18px}.practice-sentence-card{border:var(--card-border);border-radius:var(--radius-2xl);padding:clamp(1rem,3vw,1.25rem);display:flex;flex-direction:column;gap:var(--space-md);background:var(--white)}.practice-audio-section{display:flex;flex-direction:column;gap:var(--space-xs);align-items:flex-end}.practice-audio-controls{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-sm)}.practice-audio-button{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;padding:0;cursor:pointer}.practice-audio-button:disabled{cursor:not-allowed;opacity:.5}.practice-audio-button:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}.practice-audio-icon{width:44px;height:44px;display:block}.practice-audio-error{margin:0;font-size:var(--text-sm);color:var(--color-error);font-weight:var(--font-semibold)}.practice-sentence,.practice-translation{margin:0;line-height:var(--leading-loose);color:var(--blue-900)}.practice-whitespace{white-space:pre-wrap}.practice-sentence-ellipsis{color:var(--gray-500)}.practice-word{display:inline;line-height:inherit;vertical-align:baseline}.practice-input{display:inline-flex;width:auto;min-width:110px;max-width:160px;padding:.3rem var(--space-sm);font-size:var(--text-md);line-height:var(--leading-snug);border:1px solid var(--gray-400);border-radius:var(--radius-md);background:var(--white)}.practice-input-correct{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success-text);font-weight:var(--font-semibold)}.practice-input-incorrect{background:var(--yellow-100);border-color:var(--yellow-200);font-weight:var(--font-semibold)}.practice-blank{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-xs);max-width:100%}.practice-feedback{border-radius:var(--radius-lg);padding:var(--space-md) .9rem;font-weight:var(--font-medium);color:var(--blue-900)}.practice-feedback-hint{margin-top:.4rem;font-weight:var(--font-semibold)}.practice-feedback-explanation{margin-top:.4rem;font-weight:var(--font-normal)}.practice-correct-answer{font-weight:var(--font-bold)}.practice-feedback.success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text)}.practice-feedback.warning,.practice-feedback.error{background:var(--color-feedback-bg);border:1px solid var(--color-feedback-border);color:var(--color-feedback-text)}.practice-word-translation{color:var(--gray-600);font-weight:var(--font-semibold);font-size:var(--text-base)}.practice-translation-wrapper{position:relative;display:inline-flex;align-items:baseline}.practice-translation-trigger{border:none;padding:0;background:none;color:inherit;font:inherit;cursor:pointer;box-shadow:none}.practice-translation-trigger:hover{background:none;box-shadow:none}.practice-translation-trigger:active{background:none;transform:none}.practice-translation-trigger:focus{outline:none}.practice-translation-trigger:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}@keyframes subtle-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.8}}.practice-translation-trigger.pulse-hint{animation:subtle-pulse .8s ease-in-out 2}.practice-definition-tooltip{position:absolute;left:50%;bottom:calc(100% + .4rem);transform:translate(-50%);z-index:2;width:min(360px,calc(100vw - 3rem));min-width:220px;max-width:100%;padding:var(--space-sm) .6rem;border-radius:var(--radius-lg);border:var(--card-border);background:var(--white);color:var(--blue-900);font-size:var(--text-sm);font-weight:var(--font-medium);box-shadow:var(--shadow-tooltip);white-space:normal}.practice-custom-hint{display:flex;flex-direction:column;gap:var(--space-sm)}.practice-custom-hint-title{margin:0;font-weight:var(--font-bold);color:var(--blue-900)}.practice-custom-hint-input{width:100%;padding:var(--button-padding-y) var(--space-md);font-size:var(--text-md);border:1px solid var(--gray-400);border-radius:var(--radius-lg);background:var(--white)}.practice-report-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--modal-overlay-bg);display:flex;align-items:center;justify-content:center;padding:var(--space-2xl);z-index:10}.practice-report-dialog{width:min(420px,100%);background:var(--white);border:1px solid var(--gray-200);border-radius:var(--modal-radius);padding:var(--modal-padding);box-shadow:var(--shadow-2xl);display:flex;flex-direction:column;gap:var(--space-lg)}.practice-report-dialog h2{margin:0;font-size:var(--text-2xl);color:var(--blue-900)}.practice-report-dialog .intensity-change-info{margin:.25rem 0 0;padding:var(--space-md);background:var(--gray-100);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--gray-700);text-align:center}.practice-report-options{display:flex;flex-direction:column;gap:.6rem}.practice-report-option{display:grid;grid-template-columns:auto 1fr;align-items:start;column-gap:.6rem;font-weight:var(--font-semibold);color:var(--blue-900)}.practice-report-option input{width:16px;height:16px;margin-top:.15rem}.practice-reading-comprehension{display:flex;flex-direction:column;gap:var(--space-lg)}.practice-rc-reading-phase{display:flex;flex-direction:column;gap:var(--space-2xl)}.practice-rc-text-title{margin:0;font-size:var(--text-3xl);font-weight:var(--font-semibold);color:var(--blue-900)}.practice-rc-text-content{line-height:var(--leading-loose);color:var(--blue-900);font-size:var(--text-lg);white-space:pre-wrap}.practice-rc-reading-actions{display:flex;justify-content:flex-end;margin-top:var(--space-sm)}.practice-rc-progress{font-weight:var(--font-semibold);color:var(--gray-600);text-align:center;padding:var(--space-sm)}.practice-rc-question-section{display:flex;flex-direction:column;gap:var(--space-lg)}.practice-rc-question{margin:0;font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--blue-900);line-height:var(--leading-relaxed)}.practice-rc-show-text{align-self:flex-start;padding:var(--space-sm) var(--space-lg);font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--blue-600);background:var(--blue-50);border:1px solid var(--blue-200);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base)}.practice-rc-show-text:hover{background:var(--blue-100);border-color:var(--blue-300)}.practice-rc-show-text:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.practice-rc-show-text-button{width:auto;margin-bottom:1rem;align-self:flex-end}.practice-rc-options{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm)}.practice-rc-option{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:2px solid var(--gray-300);border-radius:var(--radius-lg);background:var(--white);text-align:left;cursor:pointer;transition:border-color var(--transition-base),background var(--transition-base)}.practice-rc-option:hover:not(:disabled){border-color:var(--blue-400);background:var(--blue-50)}.practice-rc-option:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.practice-rc-option:disabled{cursor:default}.practice-rc-option-selected{border-color:var(--blue-500);background:var(--blue-100)}.practice-rc-option-correct{border-color:var(--green-500);background:var(--color-success-bg)}.practice-rc-option-incorrect{border-color:var(--red-500);background:var(--color-error-bg)}.practice-rc-option-correct-answer{border-color:var(--green-500);background:var(--color-success-bg)}.practice-rc-option-letter{font-weight:var(--font-bold);color:var(--blue-900);min-width:1.5rem}.practice-rc-option-text{flex:1;font-weight:var(--font-medium);color:var(--blue-900);line-height:var(--leading-normal)}.practice-rc-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--modal-overlay-bg-dark);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:100;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.practice-rc-modal{width:min(600px,100%);max-height:80vh;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--modal-radius);box-shadow:var(--shadow-modal);display:flex;flex-direction:column;overflow:hidden;animation:slideUp var(--transition-slow) ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.practice-rc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--modal-padding);border-bottom:1px solid var(--gray-200);gap:var(--space-lg)}.practice-rc-modal-header h3{margin:0;font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--blue-900)}.practice-rc-modal-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);border:1px solid var(--gray-300);background:var(--white);color:var(--gray-600);font-size:var(--text-2xl);cursor:pointer;transition:background var(--transition-base),color var(--transition-base);flex-shrink:0}.practice-rc-modal-close:hover{background:var(--gray-100);color:var(--gray-900)}.practice-rc-modal-close:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.practice-rc-modal-content{padding:var(--space-2xl);overflow-y:auto;line-height:var(--leading-loose);color:var(--blue-900);font-size:var(--text-lg);white-space:pre-wrap}.tip-label{font-weight:var(--font-semibold)}.submit-button-wrapper{position:relative;display:inline-flex;flex-direction:column;align-items:flex-end}.keyboard-tip{position:absolute;top:calc(100% + .5rem);right:0;min-width:280px;max-width:320px;padding:var(--space-sm) var(--space-md);background:var(--white);border:var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-tooltip);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--blue-900);z-index:10;white-space:normal;line-height:var(--leading-normal);display:flex;align-items:flex-start;gap:var(--space-sm)}.keyboard-tip:before{content:"";position:absolute;bottom:100%;right:1rem;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid var(--gray-200)}.keyboard-tip:after{content:"";position:absolute;bottom:100%;right:1rem;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid var(--white);margin-bottom:-1px}.keyboard-tip-close{flex-shrink:0;width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--gray-500);font-size:var(--text-lg);line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--transition-base),background var(--transition-base)}.keyboard-tip-close:hover{color:var(--gray-700);background:var(--gray-100)}.keyboard-tip-close:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.play-button-wrapper{position:relative;display:inline-flex;flex-direction:column;align-items:center}.play-button-tip{position:absolute;top:calc(100% + .5rem);left:50%;transform:translate(-50%);min-width:300px;max-width:400px;padding:var(--space-sm) var(--space-md);background:var(--white);border:var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-tooltip);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--blue-900);z-index:10;white-space:normal;line-height:var(--leading-normal);display:flex;align-items:flex-start;gap:var(--space-sm)}.play-button-tip:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid var(--gray-200)}.play-button-tip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid var(--white);margin-bottom:-1px}.play-button-tip-close{flex-shrink:0;width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--gray-500);font-size:var(--text-lg);line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--transition-base),background var(--transition-base)}.play-button-tip-close:hover{color:var(--gray-700);background:var(--gray-100)}.play-button-tip-close:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.translation-hint-tip{position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%);min-width:280px;max-width:340px;padding:var(--space-sm) var(--space-md);background:var(--white);border:var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-tooltip);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--blue-900);z-index:10;white-space:normal;line-height:var(--leading-normal);display:flex;align-items:flex-start;gap:var(--space-sm)}.translation-hint-tip:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid var(--gray-200)}.translation-hint-tip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid var(--white);margin-top:-1px}.translation-hint-tip-close{flex-shrink:0;width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--gray-500);font-size:var(--text-lg);line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--transition-base),background var(--transition-base)}.translation-hint-tip-close:hover{color:var(--gray-700);background:var(--gray-100)}.translation-hint-tip-close:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.practice-definition-prompt{display:flex;flex-direction:column;gap:var(--space-md)}.practice-definition-prompt__answer-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-xs)}.practice-definition-prompt__translation-label{font-weight:var(--font-semibold);color:var(--gray-700)}.practice-definition-prompt__equals{color:var(--gray-600)}.practice-definition-prompt__definition{margin:0;color:var(--blue-900);line-height:var(--leading-relaxed)}.practice-definition-input{flex:1;min-width:160px;max-width:300px}.study-reader-card{gap:var(--space-xl)}.study-text-block{display:grid;gap:var(--space-md)}.study-text-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-md)}.study-text-header h2{margin:0;font-weight:var(--font-semibold)}.study-audio-controls{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.study-audio-button{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;padding:0;cursor:pointer}.study-audio-button:disabled{cursor:not-allowed;opacity:.5}.study-audio-button:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}.study-audio-icon{width:44px;height:44px;display:block}.study-audio-error{margin:0;font-size:var(--text-sm);color:var(--color-error);font-weight:var(--font-semibold)}.study-text-content{display:block;color:var(--blue-900)}.study-text-flow{line-height:var(--leading-loose);margin:0}.study-word{position:relative;display:inline-block;line-height:inherit;vertical-align:baseline}.study-word.selected{padding-top:1.1em}.study-word-original{padding:.05rem .15rem;background:transparent;color:inherit;font:inherit;line-height:var(--leading-relaxed);border-radius:var(--radius-sm);display:inline;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.study-word-original:active{transform:none}.study-word.selectable .study-word-original{cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.study-word.selectable .study-word-original:hover,.study-word.selectable .study-word-original:focus-visible{background:var(--blue-50);outline:none;box-shadow:none}.study-word.selected .study-word-original,.study-word.selected .study-word-original:hover,.study-word.selected .study-word-original:focus-visible{background:var(--blue-100)}.study-word.guest-hint .study-word-original,.study-word.guest-hint .study-word-original:hover,.study-word.guest-hint .study-word-original:focus-visible{background:#cde4ff80}.study-word.inert,.study-word.non-selectable{color:inherit}.study-word.inert{display:inline;line-height:inherit;vertical-align:baseline}.study-whitespace{white-space:pre-wrap}.study-word-translation{position:absolute;left:50%;top:0;transform:translate(-50%,.1rem);font-size:var(--text-xs);color:var(--blue-700);line-height:var(--leading-none);pointer-events:none;white-space:nowrap}.welcome-page{display:flex;flex-direction:column;background-color:var(--app-background-color);background-image:var(--app-background-image);background-repeat:var(--app-background-repeat);background-size:180px 180px,100% 100%}.welcome-hero{display:flex;justify-content:center;padding:clamp(3rem,8vw,5rem) clamp(1.25rem,5vw,2.5rem) 0}.welcome-features{display:flex;justify-content:center;padding:calc(4 * var(--space-xl)) clamp(1.25rem,5vw,2.5rem) clamp(3rem,7vw,5rem)}.welcome-content{width:100%;max-width:540px;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.welcome-logo{display:block;width:100%;max-width:480px}.welcome-hero .welcome-content{gap:calc(4 * var(--space-xl))}.welcome-hero-heading{margin:0;text-align:center;font-size:clamp(2.5rem,10vw,3rem);font-weight:var(--font-bold)}.welcome-hero-narrow{width:100%;max-width:380px;display:flex;flex-direction:column;gap:calc(2 * var(--space-xl))}.welcome-cta-group{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);width:100%}.welcome-cta{font-size:var(--text-2xl);padding:1rem 3rem;width:100%}.welcome-cta-hint{margin:0;font-size:var(--text-xs);color:var(--gray-500)}@media(min-width:768px){.welcome-cta{width:auto}.welcome-hero .welcome-cta{width:100%}}.welcome-cards{width:100%;display:flex;flex-direction:column;gap:var(--space-xl)}.welcome-cards .card{border-radius:var(--radius-3xl);box-shadow:var(--shadow-xs);border:1px solid var(--gray-200);padding:2rem}.welcome-card-heading{margin:0;font-weight:var(--font-semibold)}.welcome-demo-text{margin:var(--space-md) 0 0;font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--gray-700);height:4.5rem;overflow:hidden;background-color:var(--blue-50);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.welcome-demo-word{position:relative;display:inline-block;padding-top:0;transition:padding-top .5s ease}.welcome-demo-word.selected{padding-top:1.1em}.welcome-demo-translation{position:absolute;left:50%;top:0;transform:translate(-50%,.1rem);font-size:var(--text-xs);color:var(--blue-700);line-height:var(--leading-none);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .5s ease}.welcome-demo-word.selected .welcome-demo-translation{opacity:1}.welcome-demo-original{padding:.05rem .15rem;border-radius:var(--radius-sm);background-color:transparent;transition:background-color .5s ease}.welcome-demo-word.selected .welcome-demo-original{background-color:var(--blue-100)}.welcome-demo-word-row{display:flex;flex-direction:column;gap:var(--space-sm);font-size:var(--text-sm);margin-top:var(--space-md);background-color:var(--blue-50);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.welcome-demo-word-label{font-weight:var(--font-bold);color:var(--blue-900);white-space:nowrap}.welcome-demo-strength-meter{width:100%;height:14px;background:var(--gray-300);border-radius:var(--radius-full);overflow:hidden}.welcome-demo-strength-fill{width:40%;height:100%;background:linear-gradient(90deg,var(--green-500),var(--green-600))}.welcome-demo-strength-fill.growing{animation:welcome-bar-grow .7s ease forwards}@keyframes welcome-bar-grow{0%{width:40%}to{width:50%}}.welcome-demo-next-review{color:var(--gray-600);font-weight:var(--font-medium);opacity:1;transition:opacity .35s ease}.welcome-demo-next-review.fading{opacity:0}.welcome-demo-progress{margin-top:var(--space-md);height:6rem;background-color:var(--blue-50);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.welcome-demo-progress-svg{width:100%;height:100%;overflow:visible}.welcome-demo-progress-line{stroke-dasharray:155;animation:welcome-progress-draw 3.5s ease-in both}@keyframes welcome-progress-draw{0%{stroke-dashoffset:155}to{stroke-dashoffset:0}}.welcome-cards+.welcome-quote{margin-top:3.5rem}.welcome-quote{margin:0;text-align:center;font-style:italic;color:var(--gray-700)}.welcome-quote p{margin:0 0 var(--space-xs)}.welcome-quote footer{font-style:normal;font-size:var(--text-sm);color:var(--gray-500)}.welcome-info-cards{width:100%;display:flex;flex-direction:column;gap:var(--space-xl);margin-top:3.5rem}.welcome-info-cards h2{margin:0 0 var(--space-lg);text-align:center}.welcome-info-cards .card{border-radius:var(--radius-3xl);box-shadow:var(--shadow-xs);border:1px solid var(--gray-200);padding:1rem 1.5rem}.welcome-info-card-text{margin:var(--space-sm) 0 0;color:var(--gray-700)}.welcome-copyright{margin:0;margin-top:calc(4 * var(--space-xl));font-size:var(--text-xs);color:var(--gray-400)}@media(min-width:768px){.welcome-content{max-width:900px}.welcome-cards{flex-direction:row;align-items:stretch;gap:var(--space-2xl)}.welcome-cards .card{flex:1}}:root{--blue-50: #eff6ff;--blue-100: #cde4ff;--blue-200: #a8d1ff;--blue-300: #7db8ff;--blue-400: #54a2fd;--blue-500: #2d8dfd;--blue-600: #0066fd;--blue-700: #0043a8;--blue-800: #023880;--blue-900: #01317d;--gray-50: #f8fafc;--gray-100: #f7f9fc;--gray-200: #edf1f5;--gray-300: #e2e8f0;--gray-400: #cbd5e1;--gray-500: #94a3b8;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--accent-50: #fffbf5;--accent-100: #faeed9;--accent-200: #f7ddb3;--accent-300: #f7ca73;--accent-400: #fdba2d;--accent-500: #fdab04;--accent-600: #d99003;--accent-700: #884e04;--accent-800: #6b4005;--accent-900: #683d05;--green-50: #f0fdf4;--green-100: #e7f6ed;--green-200: #c1e4cf;--green-300: #86efac;--green-400: #4ade80;--green-500: #22c55e;--green-600: #16a34a;--green-700: #058337;--green-800: #046c2d;--green-900: #0f5132;--red-50: #fef2f2;--red-100: #ffe5e5;--red-200: #fecaca;--red-300: #fca5a5;--red-400: #f87171;--red-500: #ef4444;--red-600: #dc2626;--red-700: #b91c1c;--red-800: #b00020;--red-900: #7f1d1d;--yellow-50: #fffbeb;--yellow-100: #fff8e5;--yellow-200: #ffe2a8;--yellow-300: #fcd34d;--yellow-400: #fbbf24;--yellow-500: #f59e0b;--yellow-600: #d97706;--yellow-700: #b45309;--yellow-800: #8a5700;--yellow-900: #78350f;--violet-50: #f5f3ff;--violet-100: #ede9fe;--violet-200: #ddd6fe;--violet-300: #a8a2fa;--violet-400: #8b5cf6;--violet-500: #7c3aed;--violet-600: #3637b0;--violet-700: #2a2b8a;--violet-800: #5b21b6;--violet-900: #4c1d95;--pink-50: #fff5f7;--pink-100: #ffe4e6;--pink-200: #fecdd3;--pink-300: #fda4af;--pink-400: #fb7185;--pink-500: #f43f5e;--white: #ffffff;--black: #000000;--color-success: var(--green-700);--color-success-hover: var(--green-800);--color-success-bg: var(--green-100);--color-success-border: var(--green-200);--color-success-text: var(--green-900);--color-error: var(--red-800);--color-error-hover: var(--red-900);--color-error-bg: var(--red-100);--color-error-border: #f5c2c7;--color-error-text: var(--red-800);--color-warning: var(--yellow-500);--color-warning-hover: var(--yellow-600);--color-warning-bg: var(--yellow-100);--color-warning-border: var(--yellow-200);--color-warning-text: var(--yellow-800);--color-info: var(--blue-600);--color-info-hover: var(--blue-700);--color-info-bg: var(--blue-100);--color-info-border: var(--blue-200);--color-info-text: var(--blue-900);--color-feedback-bg: var(--yellow-100);--color-feedback-border: var(--yellow-200);--color-feedback-text: var(--color-warning-text);--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.25rem;--space-2xl: 1.5rem;--space-3xl: 2rem;--space-4xl: 2.5rem;--space-5xl: 3rem;--text-xs: .75rem;--text-sm: .85rem;--text-base: .95rem;--text-md: 1rem;--text-lg: 1.05rem;--text-xl: 1.15rem;--text-2xl: 1.25rem;--text-3xl: 1.5rem;--text-4xl: 1.75rem;--text-5xl: 2.4rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-none: 1;--leading-tight: 1.2;--leading-snug: 1.4;--leading-normal: 1.5;--leading-relaxed: 1.6;--leading-loose: 1.8;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-2xl: 14px;--radius-3xl: 16px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 3px 6px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .06);--shadow-xl: 0 10px 28px rgba(0, 0, 0, .08);--shadow-2xl: 0 18px 45px rgba(15, 30, 55, .18);--shadow-3xl: 0 20px 60px rgba(0, 0, 0, .3);--shadow-button: 0px 3px 6px rgba(0, 0, 0, .12);--shadow-button-hover: 0px 5px 12px rgba(0, 0, 0, .16);--shadow-card: 0 10px 28px rgba(0, 0, 0, .08);--shadow-modal: 0 18px 45px rgba(15, 30, 55, .25);--shadow-nav: 0 -6px 20px rgba(0, 0, 0, .06);--shadow-tooltip: 0 8px 18px rgba(20, 30, 50, .12);--button-padding-y: .6rem;--button-padding-x: 1.2rem;--button-radius: var(--radius-md);--button-font-weight: var(--font-semibold);--card-padding: clamp(1.5rem, 4vw, 2.25rem);--card-radius: var(--radius-xl);--card-border: 1px solid var(--gray-300);--card-shadow: var(--shadow-card);--input-padding-y: .6rem;--input-padding-x: .9rem;--input-radius: var(--radius-md);--input-border: 1px solid var(--gray-300);--input-focus-border: var(--blue-400);--input-focus-ring: 0 0 0 3px var(--blue-100);--modal-radius: var(--radius-3xl);--modal-padding: 1.25rem;--modal-padding-lg: 2rem;--modal-overlay-bg: rgba(11, 22, 44, .35);--modal-overlay-bg-dark: rgba(0, 0, 0, .5);--focus-outline: 2px solid var(--blue-400);--focus-outline-thick: 3px solid var(--blue-400);--focus-offset: 2px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--app-background-color: var(--white);--app-background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' opacity='0.06'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"), linear-gradient(180deg, #ffffff 0%, #cde4ff 50%, #ffffff 100%);--app-background-repeat: repeat, no-repeat;--app-background-size: 180px 180px, cover;font-family:Poppins,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:var(--leading-normal);font-weight:var(--font-normal);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{margin:0;padding:0;background-color:var(--app-background-color);background-image:var(--app-background-image);background-repeat:var(--app-background-repeat);background-size:var(--app-background-size);color:var(--blue-900);height:100%}#root{width:100%;height:100%;display:flex;flex-direction:column;align-items:stretch;box-sizing:border-box;background-color:transparent}h1,h2,h3,h4,h5,h6{margin:0 0 var(--space-md);font-weight:var(--font-semibold);color:var(--blue-900)}h1{font-size:var(--text-5xl);line-height:var(--leading-tight)}h2{font-size:var(--text-3xl);line-height:var(--leading-tight)}h3{font-size:var(--text-2xl);line-height:var(--leading-snug)}p{margin:0 0 var(--space-lg);color:var(--gray-600)}a{font-weight:var(--font-medium);color:var(--blue-600);text-decoration:none;transition:color var(--transition-base)}a:hover{text-decoration:underline;color:var(--blue-700)}input{width:100%;padding:var(--input-padding-y) var(--input-padding-x);margin-bottom:var(--space-md);border-radius:var(--input-radius);border:var(--input-border);font-family:inherit;font-size:var(--text-md);box-sizing:border-box;transition:border-color var(--transition-base),box-shadow var(--transition-base)}input:focus{outline:none;border-color:var(--input-focus-border);box-shadow:var(--input-focus-ring)}button{border-radius:var(--button-radius);border:none;padding:var(--button-padding-y) var(--button-padding-x);font-size:var(--text-md);font-weight:var(--button-font-weight);font-family:inherit;cursor:pointer;background-color:var(--blue-600);color:var(--white);box-shadow:var(--shadow-button);transition:background-color var(--transition-base),box-shadow var(--transition-base),transform .05s ease}button:hover{background-color:var(--blue-700);box-shadow:var(--shadow-button-hover)}button:disabled,button[disabled]{background-color:var(--gray-300);color:var(--gray-600);cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}button:active{transform:translateY(1px)}button:focus-visible{outline:var(--focus-outline-thick);outline-offset:var(--focus-offset)}button.secondary{background-color:transparent;color:var(--blue-600)}button.secondary:hover{background-color:var(--blue-100)}button.tertiary{background-color:transparent;color:var(--blue-600);box-shadow:none;text-decoration:none}button.tertiary:hover{background-color:transparent;color:var(--blue-700);text-decoration:underline;box-shadow:none}button.tertiary:active{transform:none}button.success{background-color:var(--color-success)}button.success:hover{background-color:var(--color-success-hover)}button.reading{background-color:var(--violet-500)}button.reading:hover{background-color:var(--violet-600)}button.danger{background-color:var(--color-error)}button.danger:hover{background-color:var(--color-error-hover)}.container{width:min(100%,540px);margin:var(--space-4xl) auto;padding:clamp(1.5rem,4vw,2.5rem) clamp(1.25rem,5vw,2.5rem);box-sizing:border-box}.card{background-color:var(--white);border-radius:var(--card-radius);padding:var(--card-padding);box-shadow:var(--shadow-lg);width:100%;box-sizing:border-box}.message{margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);background-color:var(--accent-100);color:var(--accent-900);font-weight:var(--font-medium)}.error-message{margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);background-color:var(--color-error-bg);color:var(--color-error-text);font-weight:var(--font-semibold);border:1px solid var(--color-error-border)}.success-message{margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);background-color:var(--color-success-bg);color:var(--color-success-text);font-weight:var(--font-semibold);border:1px solid var(--color-success-border)}.warning-message{margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);background-color:var(--color-warning-bg);color:var(--color-warning-text);font-weight:var(--font-semibold);border:1px solid var(--color-warning-border)}.info-message{margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);background-color:var(--color-info-bg);color:var(--color-info-text);font-weight:var(--font-semibold);border:1px solid var(--color-info-border)}.feedback-message{margin:0;padding:var(--space-md) .9rem;border-radius:var(--radius-lg);font-weight:var(--font-medium);background:var(--color-feedback-bg);border:1px solid var(--color-feedback-border);color:var(--color-feedback-text)}.button-secondary{background-color:transparent;color:var(--blue-600)}.button-secondary:hover{background-color:var(--blue-100)}.button-danger{background-color:var(--accent-700)}.button-danger:hover{background-color:var(--accent-900)}.form{display:grid;gap:var(--space-md)}.form-actions{display:grid;gap:var(--space-sm);margin-top:var(--space-sm)}.form-field{position:relative}.form-field input{padding-top:1.3rem;padding-bottom:.35rem;margin-bottom:0}.form-field label{display:block;position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:1rem;font-weight:400;color:var(--gray-500);pointer-events:none;white-space:nowrap;transition:top .15s ease,transform .15s ease,font-size .15s ease,color .15s ease}.form-field input:focus~label,.form-field input:not(:placeholder-shown)~label{top:.35rem;transform:translateY(0);font-size:.75rem;font-weight:var(--font-semibold);color:var(--blue-900)}.form-field input:focus~label{color:var(--blue-600, var(--blue-900))}.form-field input:-webkit-autofill~label{top:.35rem;transform:translateY(0);font-size:.75rem;font-weight:var(--font-semibold);color:var(--blue-900)}.form-field .field-error-text{margin-top:var(--space-xs);margin-bottom:0}.help-text{font-size:var(--text-base);color:var(--gray-600);font-weight:var(--font-normal)}.input-error{border-color:var(--color-error)!important}.field-error-text{margin-top:calc(-1 * var(--space-xs));margin-bottom:var(--space-sm);font-size:var(--text-sm);color:var(--color-error);font-weight:var(--font-medium)}
