:root{--font-sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,Menlo,Monaco,"Cascadia Mono","Segoe UI Mono","Roboto Mono","Oxygen Mono","Ubuntu Monospace","Source Code Pro","Fira Mono","Droid Sans Mono","Courier New",monospace;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-blue-50:#eff6ff;--color-blue-100:#dbeafe;--color-blue-500:#3b82f6;--color-blue-600:#2563eb;--color-blue-700:#1d4ed8;--color-green-50:#f0fdf4;--color-green-100:#dcfce7;--color-green-500:#22c55e;--color-green-600:#16a34a;--color-red-50:#fef2f2;--color-red-100:#fee2e2;--color-red-500:#ef4444;--color-red-600:#dc2626;--color-red-700:#b91c1c;--color-yellow-50:#fefce8;--color-yellow-100:#fef9c3;--color-yellow-500:#eab308;--color-yellow-600:#ca8a04;--color-blue-200:#bfdbfe;--color-blue-800:#1e40af;--color-green-200:#bbf7d0;--color-green-800:#166534;--color-red-200:#fecaca;--color-red-800:#991b1b;--color-yellow-200:#fef08a;--color-yellow-800:#854d0e;--color-surface:#ffffff;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05);--radius-sm:6px;--radius-md:8px;--radius-lg:12px}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{color:var(--color-gray-900);background:var(--color-gray-50)}a{color:inherit;text-decoration:none}.container{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;border-radius:var(--radius-md);font-size:.9375rem;font-weight:500;border:none;cursor:pointer;transition:all .15s ease;text-decoration:none;line-height:1.5}.btn--primary{background:var(--color-blue-600);color:white}.btn--primary:hover{background:var(--color-blue-700)}.btn--secondary{background:var(--color-surface);color:var(--color-gray-700);border:1px solid var(--color-gray-300)}.btn--secondary:hover{background:var(--color-gray-50);border-color:var(--color-gray-400)}.btn--danger{background:var(--color-red-600);color:white}.btn--danger:hover{background:var(--color-red-700)}.btn--success{background:var(--color-green-600);color:white}.btn--success:hover{background:var(--color-green-500)}.btn--warning{background:var(--color-yellow-600);color:white}.btn--warning:hover{background:var(--color-yellow-500)}.btn--sm{padding:.5rem .75rem;font-size:.875rem}.btn--xsm{padding:.25rem .375rem;font-size:.8125rem}.btn--disabled,.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.card{background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.card__title{font-size:1.125rem;font-weight:600;color:var(--color-gray-900);margin:0}.card__icon{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:var(--radius-md);background:var(--color-blue-50);color:var(--color-blue-600);flex-shrink:0;margin-right:.75rem}.card__icon svg{font-size:1.25rem}.card__actions{display:flex;gap:.5rem}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500;line-height:1.25rem}.badge--active,.badge--running{background:var(--color-green-100);color:var(--color-green-600)}.badge--inactive,.badge--stopped{background:var(--color-gray-100);color:var(--color-gray-600)}.badge--provisioning,.badge--starting{background:var(--color-blue-100);color:var(--color-blue-600)}.badge--error,.badge--failed{background:var(--color-red-100);color:var(--color-red-600)}.badge--warning{background:var(--color-yellow-100);color:var(--color-yellow-600)}.badge--info{background:var(--color-blue-50);color:var(--color-blue-600);font-family:var(--font-mono)}.page-header{margin-bottom:2rem}.page-header__title{font-size:1.875rem;font-weight:700;color:var(--color-gray-900);margin-bottom:.5rem}.page-header__subtitle{font-size:1rem;color:var(--color-gray-500)}.page-header__left{display:flex;align-items:center;gap:1rem}.page-header__left .page-header__title{margin-bottom:.25rem}.page-header__actions{display:flex;gap:.75rem;margin-top:1rem;flex-wrap:wrap;align-items:center}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:1rem;gap:1rem;margin:1rem 0 2rem}.stat-card{padding:1rem 1.25rem;gap:.35rem}.stat-card__label{font-size:.875rem;color:var(--color-gray-500);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.stat-card__value{font-size:1.75rem;font-weight:700;color:var(--color-gray-900);line-height:1.1}.stat-card__meta{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;color:var(--color-gray-600)}.tab-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:1.25rem 0 1.5rem}.tab-toolbar__tabs{flex-wrap:wrap}.tab-toolbar__actions,.tab-toolbar__tabs{display:flex;gap:.5rem}.tab{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .9rem;border-radius:var(--radius-md);border:1px solid var(--color-gray-200);background:var(--color-surface);color:var(--color-gray-700);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .15s ease}.tab:hover{border-color:var(--color-gray-300);background:var(--color-gray-50)}.tab--active{color:var(--color-blue-700);background:var(--color-blue-50);border-color:var(--color-blue-200);box-shadow:0 0 0 3px rgba(59,130,246,.15)}.tab__icon{display:inline-flex;align-items:center}.tab__label{letter-spacing:.01em}.tab__badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:.15rem .45rem;border-radius:999px;background:var(--color-gray-100);color:var(--color-gray-700);font-size:.8125rem;font-weight:700}.tab--active .tab__badge{background:var(--color-surface);color:var(--color-blue-700)}.breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-gray-500);margin-bottom:1rem}.breadcrumb a{color:var(--color-blue-600);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb__separator{color:var(--color-gray-400)}.alert{padding:1rem;border-radius:var(--radius-md);font-size:.9375rem;margin:1.5rem 0}.alert--warning{background:var(--color-yellow-50);border:1px solid var(--color-yellow-200);color:var(--color-yellow-800)}.alert--error{background:var(--color-red-50);border:1px solid var(--color-red-200);color:var(--color-red-800)}.alert--success{background:var(--color-green-50);border:1px solid var(--color-green-200);color:var(--color-green-800)}.alert--info{background:var(--color-blue-50);border:1px solid var(--color-blue-200);color:var(--color-blue-800)}input:not([type=radio]):not([type=checkbox]):not([type=file]),select,textarea{width:100%;padding:.625rem .875rem;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:.9375rem;font-family:var(--font-sans);color:var(--color-gray-900);background:var(--color-surface);transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}input:not([type=radio]):not([type=checkbox]):not([type=file]):focus,select:focus,textarea:focus{outline:none;border-color:var(--color-blue-500);box-shadow:0 0 0 3px rgba(59,130,246,.1)}textarea{resize:vertical}input[type=file]{width:100%;padding:.5rem;border:1px dashed var(--color-gray-300);border-radius:var(--radius-md);font-size:.875rem;color:var(--color-gray-600);background:var(--color-gray-50);cursor:pointer;box-sizing:border-box}input[type=file]:hover{border-color:var(--color-gray-400);background:var(--color-gray-100)}input[type=range]{width:100%;padding:0;border:none;background:transparent}:root[data-theme=dark] input:not([type=radio]):not([type=checkbox]):not([type=file]):not([type=range]),:root[data-theme=dark] select,:root[data-theme=dark] textarea{color-scheme:dark}@media (prefers-color-scheme:dark){input:not([type=radio]):not([type=checkbox]):not([type=file]):not([type=range]),select,textarea{color-scheme:dark}}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.375rem}.form-button-group{display:flex;gap:.5rem;margin-bottom:.5rem}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--color-gray-700);margin-bottom:.5rem}.form-label--required:after{content:" *";color:var(--color-red-500)}.form-input,.form-select,.form-textarea{width:100%;padding:.625rem .875rem;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:.9375rem;color:var(--color-gray-900);background:var(--color-surface);transition:all .15s ease}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-blue-500);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.form-select option:checked{background:var(--color-blue-100)}.form-textarea{min-height:120px;resize:vertical;font-family:var(--font-mono)}.form-error{color:var(--color-red-600)}.form-error,.form-help{font-size:.875rem;margin-top:.375rem}.form-help{color:var(--color-gray-500)}.toggle-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.toggle-input{position:absolute;opacity:0;pointer-events:none}.toggle-icon{display:flex;align-items:center;font-size:2rem;transition:color .2s ease}.toggle-icon--on{color:var(--color-blue-600)}.toggle-icon--off{color:var(--color-gray-400)}.toggle-text{font-size:.9375rem;font-weight:500;color:var(--text-primary)}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--color-gray-500)}.empty-state__title{font-size:1.125rem;font-weight:600;color:var(--color-gray-900);margin-bottom:.5rem}.empty-state__description{font-size:.9375rem;margin-bottom:1.5rem}.grid{display:grid;grid-gap:1.5rem;gap:1.5rem}.grid--2{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.detail-section{margin-bottom:2rem}.detail-section__title{font-size:1rem;font-weight:600;color:var(--color-gray-900);margin-bottom:1rem}.detail-grid{display:grid;grid-gap:1rem;gap:1rem;margin-bottom:1rem}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-item__label{font-size:.875rem;color:var(--color-gray-500)}.detail-item__value{font-size:.9375rem;color:var(--color-gray-900);font-family:var(--font-mono)}.copy-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-gray-700);font-size:.875rem;cursor:pointer;transition:all .15s ease}.copy-button:hover{background:var(--color-gray-50);border-color:var(--color-gray-400)}.loading-spinner{display:inline-block;width:1rem;height:1rem;border:2px solid var(--color-gray-300);border-top-color:var(--color-blue-600);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.app-layout{display:flex;min-height:100vh}.app-main{flex:1 1;display:flex;flex-direction:column;min-width:0}.app-content{flex:1 1}.sidebar{width:260px;background:var(--color-surface);border-right:1px solid var(--color-gray-200);display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;z-index:1000;transition:transform .3s ease}.sidebar__header{padding:1.5rem;border-bottom:1px solid var(--color-gray-200)}.sidebar__logo{font-size:1.25rem;font-weight:700;color:var(--color-gray-900);text-decoration:none;display:flex;align-items:center;gap:.5rem}.sidebar__nav{flex:1 1;padding:1rem;overflow-y:auto}.sidebar__link{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:var(--color-gray-700);text-decoration:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:500;transition:all .15s ease;margin-bottom:.25rem}.sidebar__link:hover{background:var(--color-gray-100);color:var(--color-gray-900)}.sidebar__link--active{background:var(--color-blue-50);color:var(--color-blue-700)}.sidebar__link--notifications{font-size:.75rem;opacity:.6;background:none;border:none;width:100%;text-align:left;cursor:pointer}.sidebar__link--notifications-denied{cursor:default;opacity:.4}.sidebar__link--notifications-denied:hover{background:none}.sidebar__link--logout{color:var(--color-red-600)}.sidebar__link--logout:hover{background:var(--color-red-50)}.sidebar__icon{font-size:1.25rem;display:flex;align-items:center;justify-content:center;width:1.5rem}.sidebar__section-header{padding:.5rem 1rem;margin-top:1rem}.sidebar__section-title{font-size:.75rem;font-weight:600;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em}.sidebar__footer{padding:1rem;border-top:1px solid var(--color-gray-200)}.sidebar__user{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem;margin-bottom:.5rem;background:var(--color-gray-50);border-radius:var(--radius-md)}.sidebar__user-info{display:flex;flex-direction:column;gap:.25rem;flex:1 1;min-width:0}.sidebar__user-name{font-size:.875rem;font-weight:600;color:var(--color-gray-900)}.sidebar__user-email,.sidebar__user-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__user-email{font-size:.75rem;color:var(--color-gray-500)}.sidebar__user-logout{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--color-red-600);transition:background .15s ease,color .15s ease;flex-shrink:0}.sidebar__user-logout .sidebar__icon{width:24px;height:24px;font-size:1.5rem}.sidebar__user-logout .sidebar__icon svg{width:100%;height:100%}.sidebar__user-logout:focus-visible,.sidebar__user-logout:hover{background:var(--color-red-50);color:var(--color-red-700)}.sidebar__user-logout:focus-visible{outline:2px solid var(--color-red-600);outline-offset:2px}.sidebar-overlay{display:none}.mobile-header{display:none;align-items:center;gap:1rem;padding:1rem 1.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-gray-200);position:-webkit-sticky;position:sticky;top:0;z-index:100}.mobile-header__toggle{display:flex;flex-direction:column;gap:4px;padding:.5rem;background:none;border:none;cursor:pointer}.mobile-header__toggle span{width:20px;height:2px;background:var(--color-gray-700);border-radius:2px;transition:all .3s ease}.mobile-header__title{font-size:1.125rem;font-weight:700;color:var(--color-gray-900)}@media (min-width:769px){.app-main{margin-left:260px}}@media (max-width:768px){.sidebar{transform:translateX(-100%)}.sidebar--open{transform:translateX(0)}.sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:999}.mobile-header{display:flex}.app-main{margin-left:0}.container{padding:1rem}.page-header__title{font-size:1.5rem}.grid--2,.stat-grid{grid-template-columns:1fr}.card__actions{flex-direction:column}.btn{width:100%;justify-content:center}.section-header{.btn{width:auto}}.tab-toolbar{flex-direction:column;align-items:stretch}.tab-toolbar__actions{width:100%;justify-content:flex-start}.tab-toolbar__actions .btn{width:100%;justify-content:center}}.section-header{margin-bottom:1rem}.section-header__title{margin:0 1rem 0 0}.badge-group{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.badge--small{font-size:.75rem}.subsection-title{margin-bottom:1rem;font-size:1rem;font-weight:600;color:var(--text-secondary,var(--color-gray-600))}.form-section-divider{margin:2rem 0;border:none;border-top:1px solid var(--border-color,var(--color-gray-200))}.detail-item--full{grid-column:1/-1}.detail-item__value--capitalize{text-transform:capitalize}.detail-item__actions{display:flex;gap:.5rem;align-items:center}.container--narrow{max-width:600px}.alert--spaced{margin-top:1rem}:root{--text-secondary:var(--color-gray-600);--border-color:var(--color-gray-200)}.world-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.world-detail-header__title{font-size:1.75rem;font-weight:700;color:var(--color-gray-900);margin:0 0 .25rem}.world-detail-header__desc{font-size:.9375rem;color:var(--color-gray-500);margin:0}.world-controls{display:flex;flex-direction:column;gap:.875rem}.world-controls__connection{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.world-controls__address{font-family:var(--font-mono);font-size:1.125rem;font-weight:600;color:var(--color-green-600);background:var(--color-green-50);border:1px solid var(--color-green-100);border-radius:var(--radius-sm);padding:.3rem .75rem}.world-controls__host-select{max-width:360px}.world-controls__actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.world-controls__status-msg{font-size:.9375rem;color:var(--color-gray-500);font-style:italic}.world-controls__qr{border-top:1px solid var(--color-gray-100);padding-top:.875rem}.world-danger-zone__actions{display:flex;gap:.5rem;flex-wrap:wrap}.detail-grid--2col{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.dash-tab__dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--color-blue-500);margin-left:2px;vertical-align:middle}@media (max-width:768px){.world-detail-header{flex-direction:column;gap:.5rem}.world-detail-header__title{font-size:1.375rem}.world-controls__address{font-size:.9375rem}.world-controls__actions{flex-direction:column}.world-controls__actions .btn{width:100%;justify-content:center;min-width:0}.world-danger-zone__actions .btn{flex:1 1;justify-content:center}.world-controls__host-select{max-width:100%}}.dash-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.dash-tabs{display:flex;gap:.25rem}.dash-tab{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .875rem;border-radius:var(--radius-md);border:none;background:transparent;color:var(--color-gray-500);font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s ease}.dash-tab:hover{color:var(--color-gray-800);background:var(--color-gray-100)}.dash-tab--active{color:var(--color-gray-900);background:var(--color-surface);border:1px solid var(--color-gray-200);box-shadow:var(--shadow-sm)}.dash-tab__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;padding:.1rem .35rem;border-radius:999px;background:var(--color-gray-100);color:var(--color-gray-600);font-size:.75rem;font-weight:700}.dash-tab--active .dash-tab__count{background:var(--color-blue-100);color:var(--color-blue-700)}.world-list{display:flex;flex-direction:column;gap:.625rem}.world-row{display:flex;align-items:center;gap:1rem;background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:1rem 1.25rem;box-shadow:var(--shadow-sm)}.world-row__info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:.3rem}.world-row__top{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.world-row__name{font-size:1rem;font-weight:600;color:var(--color-gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.world-row__connection{font-family:var(--font-mono);font-size:.875rem;color:var(--color-green-600);background:var(--color-green-50);border:1px solid var(--color-green-100);border-radius:var(--radius-sm);padding:.2rem .5rem;display:inline-block;width:-moz-fit-content;width:fit-content}.world-row__meta{font-size:.8125rem;color:var(--color-gray-400);font-family:var(--font-mono)}.world-row__actions{display:flex;gap:.5rem;flex-shrink:0}@media (max-width:768px){.dash-header{flex-wrap:wrap}.world-row{flex-direction:column;align-items:stretch;gap:.75rem}.world-row__actions{display:grid;grid-template-columns:1fr 1fr}.world-row__actions .btn{width:100%;justify-content:center}.world-row__actions .btn:only-child{grid-column:1/-1}}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:1.75rem;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga";vertical-align:middle}.qr-code-section{margin:1rem 0}.qr-code-container{margin-top:1rem;padding:1.5rem;background:var(--color-gray-50);border-radius:var(--radius-md);border:1px solid var(--color-gray-200);display:flex;flex-direction:column;align-items:center;gap:1rem}.qr-code-wrapper{background:#ffffff;padding:1rem;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.qr-code-info{text-align:center;width:100%}.qr-code-label{font-size:.875rem;color:var(--color-gray-600);margin-bottom:.5rem}.qr-code-url{display:block;font-size:.75rem;color:var(--color-gray-500);background:var(--color-surface);padding:.5rem;border-radius:var(--radius-sm);word-break:break-all;border:1px solid var(--color-gray-200)}.material-symbols-outlined.icon--small{font-size:1rem}.material-symbols-outlined.icon--large{font-size:1.5rem}.operation-logs{background:#000000;border:1px solid #333333;border-radius:8px;overflow:hidden;margin-top:1rem;box-shadow:0 4px 6px rgba(0,0,0,.3)}.operation-logs__header{padding:1rem;border-bottom:1px solid #333333;background:#1a1a1a}.operation-logs__title{margin:0;font-size:1rem;font-weight:600;display:flex;align-items:center;color:#00ff00}.operation-logs__content{max-height:400px;overflow-y:auto;background:#000000}.operation-logs__empty{padding:2rem;text-align:center;color:#00ff00;display:flex;align-items:center;justify-content:center;background:#000000}.operation-logs__list{padding:0;background:#000000}.operation-log-entry{padding:0 1rem;border-bottom:1px solid #1a1a1a;display:flex;align-items:flex-start;gap:1rem;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:.875rem;line-height:1.5;background:#000000}.operation-log-entry:last-child{border-bottom:none}.operation-log-entry:hover{background:#0a0a0a}.operation-log-entry__time{color:#00aa00;flex-shrink:0;font-size:.8125rem;opacity:.8}.operation-log-entry__message{color:#00ff00;flex:1 1;word-break:break-word}.status-badge{padding:.25rem .5rem;border-radius:4px;letter-spacing:.5px;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}.status-badge--success{background:#003300;color:#00ff00;border:1px solid #00aa00}.status-badge--error{background:#330000;color:#ff3333;border:1px solid #aa0000}.table{width:100%;border-collapse:collapse;margin-top:1rem}.table thead{background:var(--color-gray-100)}.table tr:nth-child(2n){border-top:1px solid var(--color-gray-200);border-bottom:1px solid var(--color-gray-200)}.table td,.table th{padding:.75rem 1rem;text-align:left}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-gray-50:#0f1115;--color-gray-100:#1a1d24;--color-gray-200:#262b36;--color-gray-300:#343b4a;--color-gray-400:#4a5568;--color-gray-500:#6b7280;--color-gray-600:#94a3b8;--color-gray-700:#cbd5e1;--color-gray-800:#e2e8f0;--color-gray-900:#f1f5f9;--color-blue-50:#0a1728;--color-blue-100:#0f2040;--color-blue-200:#1a3560;--color-blue-500:#60a5fa;--color-blue-600:#3b82f6;--color-blue-700:#93c5fd;--color-blue-800:#bfdbfe;--color-green-50:#071a0c;--color-green-100:#0d2b18;--color-green-200:#14421f;--color-green-500:#4ade80;--color-green-600:#22c55e;--color-green-800:#86efac;--color-red-50:#1f0808;--color-red-100:#3b1010;--color-red-200:#561818;--color-red-500:#f87171;--color-red-600:#ef4444;--color-red-700:#fca5a5;--color-red-800:#fca5a5;--color-yellow-50:#1a1200;--color-yellow-100:#2e1f00;--color-yellow-200:#453000;--color-yellow-500:#fbbf24;--color-yellow-600:#f59e0b;--color-yellow-800:#fcd34d;--color-surface:#1a1d24;--shadow-sm:0 1px 3px 0 rgba(0,0,0,0.4);--shadow-md:0 4px 8px -1px rgba(0,0,0,0.5),0 2px 4px -1px rgba(0,0,0,0.4);--shadow-lg:0 10px 20px -3px rgba(0,0,0,0.6),0 4px 8px -2px rgba(0,0,0,0.4)}.form-input,.form-select,.form-textarea{color-scheme:dark}.sidebar{border-right-color:var(--color-gray-200)}.mobile-header,.sidebar{background:var(--color-gray-100)}.mobile-header{border-bottom-color:var(--color-gray-200)}.copy-button:hover{background:var(--color-gray-200);border-color:var(--color-gray-300)}.btn--secondary:hover{background:var(--color-gray-100);border-color:var(--color-gray-400)}.qr-code-container{background:var(--color-gray-100)}.operation-logs,.qr-code-container{border-color:var(--color-gray-200)}.btn--primary{background:#2f6fd4}.btn--primary:hover{background:#2560bc}.btn--success{background:#1a8f47}.btn--success:hover{background:#177d3e}.btn--danger{background:#c93535}.btn--danger:hover{background:#b52e2e}.btn--warning{background:#b8790a}.btn--warning:hover{background:#a56c09}}:root[data-theme=dark]{--color-gray-50:#0f1115;--color-gray-100:#1a1d24;--color-gray-200:#262b36;--color-gray-300:#343b4a;--color-gray-400:#4a5568;--color-gray-500:#6b7280;--color-gray-600:#94a3b8;--color-gray-700:#cbd5e1;--color-gray-800:#e2e8f0;--color-gray-900:#f1f5f9;--color-blue-50:#0a1728;--color-blue-100:#0f2040;--color-blue-200:#1a3560;--color-blue-500:#60a5fa;--color-blue-600:#3b82f6;--color-blue-700:#93c5fd;--color-blue-800:#bfdbfe;--color-green-50:#071a0c;--color-green-100:#0d2b18;--color-green-200:#14421f;--color-green-500:#4ade80;--color-green-600:#22c55e;--color-green-800:#86efac;--color-red-50:#1f0808;--color-red-100:#3b1010;--color-red-200:#561818;--color-red-500:#f87171;--color-red-600:#ef4444;--color-red-700:#fca5a5;--color-red-800:#fca5a5;--color-yellow-50:#1a1200;--color-yellow-100:#2e1f00;--color-yellow-200:#453000;--color-yellow-500:#fbbf24;--color-yellow-600:#f59e0b;--color-yellow-800:#fcd34d;--color-surface:#1a1d24;--shadow-sm:0 1px 3px 0 rgba(0,0,0,0.4);--shadow-md:0 4px 8px -1px rgba(0,0,0,0.5),0 2px 4px -1px rgba(0,0,0,0.4);--shadow-lg:0 10px 20px -3px rgba(0,0,0,0.6),0 4px 8px -2px rgba(0,0,0,0.4)}:root[data-theme=dark] .form-input,:root[data-theme=dark] .form-select,:root[data-theme=dark] .form-textarea{color-scheme:dark}:root[data-theme=dark] .sidebar{background:var(--color-gray-100);border-right-color:var(--color-gray-200)}:root[data-theme=dark] .mobile-header{background:var(--color-gray-100);border-bottom-color:var(--color-gray-200)}:root[data-theme=dark] .copy-button:hover{background:var(--color-gray-200);border-color:var(--color-gray-300)}:root[data-theme=dark] .btn--secondary:hover{background:var(--color-gray-100);border-color:var(--color-gray-400)}:root[data-theme=dark] .qr-code-container{background:var(--color-gray-100);border-color:var(--color-gray-200)}:root[data-theme=dark] .operation-logs{border-color:var(--color-gray-200)}:root[data-theme=dark] .btn--primary{background:#2f6fd4}:root[data-theme=dark] .btn--primary:hover{background:#2560bc}:root[data-theme=dark] .btn--success{background:#1a8f47}:root[data-theme=dark] .btn--success:hover{background:#177d3e}:root[data-theme=dark] .btn--danger{background:#c93535}:root[data-theme=dark] .btn--danger:hover{background:#b52e2e}:root[data-theme=dark] .btn--warning{background:#b8790a}:root[data-theme=dark] .btn--warning:hover{background:#a56c09}.sidebar-prefs{padding:.75rem;background:var(--color-gray-50);border-radius:var(--radius-md);margin-bottom:.5rem;display:flex;flex-direction:column;gap:.625rem}.sidebar-prefs__row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sidebar-prefs__label{font-size:.8125rem;font-weight:500;color:var(--color-gray-600);white-space:nowrap}.theme-switcher{display:flex;gap:2px;background:var(--color-gray-200);border-radius:var(--radius-sm);padding:2px}.theme-btn{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .4rem;border-radius:4px;border:none;background:transparent;color:var(--color-gray-500);cursor:pointer;transition:all .15s ease;font-size:.75rem;font-weight:600;line-height:1}.theme-btn:hover{color:var(--color-gray-700)}.theme-btn--active{background:var(--color-surface);color:var(--color-gray-900);box-shadow:var(--shadow-sm)}.notif-btn{color:var(--color-blue-600);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.notif-btn,.notif-status{font-size:.75rem;font-weight:600}.notif-status{color:var(--color-gray-500)}.notif-status--blocked{color:var(--color-red-500)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.welcome{text-align:center;max-width:400px}.welcome__icon{color:var(--color-blue-600);margin-bottom:1rem;display:flex;justify-content:center}.welcome__icon svg{font-size:4rem;width:4rem;height:4rem}.welcome h1{font-size:2rem;font-weight:700;color:var(--color-gray-900);margin-bottom:.5rem}.welcome p{color:var(--color-gray-500);margin-bottom:2rem}.login-btn{display:inline-flex;align-items:center;padding:.75rem 2rem;background:var(--color-blue-600);color:white;border-radius:var(--radius-md);font-weight:600;font-size:1rem;text-decoration:none;border:none;cursor:pointer}.login-btn:hover{background:var(--color-blue-700)}.setup-form{max-width:480px;margin:2rem auto;padding:2rem;background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.setup-form h2{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.setup-form p{color:var(--color-gray-500);margin-bottom:1.5rem}.role-options{display:flex;gap:1rem;margin-top:.5rem}.role-option{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem 1rem;border:2px solid var(--color-gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:all .15s ease;font-size:.9375rem;font-weight:500;color:var(--color-gray-700)}.role-option input[type=radio]{display:none}.role-option svg{font-size:2rem;width:2rem;height:2rem;color:var(--color-gray-400)}.role-option--active{border-color:var(--color-blue-500);background:var(--color-blue-50);color:var(--color-blue-700)}.role-option--active svg{color:var(--color-blue-600)}.role-option:hover{border-color:var(--color-gray-300);background:var(--color-gray-50)}.logout-link{text-align:center;margin-top:1.5rem}.logout-link a{font-size:.875rem;text-decoration:underline}.loading,.logout-link a{color:var(--color-gray-500)}.loading{display:flex;align-items:center;justify-content:center;min-height:200px;font-size:.9375rem}.status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.status-badge--pending{background:var(--color-yellow-100);color:var(--color-yellow-800)}.status-badge--approved{background:var(--color-green-100);color:var(--color-green-800)}.status-badge--rejected{background:var(--color-red-100);color:var(--color-red-800)}.status-badge--active{background:var(--color-blue-100);color:var(--color-blue-800)}.status-badge--completed{background:var(--color-green-100);color:var(--color-green-800)}.status-badge--paused{background:var(--color-yellow-100);color:var(--color-yellow-800)}.stats-section{margin-bottom:1.5rem}.goals-stats{margin-bottom:2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:1rem;gap:1rem}.stat-card{background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.25rem}.stat-card.highlight{border-color:var(--color-blue-200);background:var(--color-blue-50)}.stat-number{font-size:2rem;font-weight:700;color:var(--color-gray-900);line-height:1}.stat-label{font-size:.8125rem;font-weight:500;color:var(--color-gray-500)}.stat-description{font-size:.75rem;color:var(--color-gray-400);margin-top:.125rem}.actions-section{margin-bottom:1.5rem}.submission-group{margin-bottom:2rem}.submission-group h3{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--color-gray-900);margin-bottom:1rem}.submission-card{background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.submission-card.pending{border-left:3px solid var(--color-yellow-500)}.submission-card.approved{border-left:3px solid var(--color-green-500)}.submission-card.rejected{border-left:3px solid var(--color-red-500)}.submission-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:.5rem}.submission-date{font-size:.8125rem;color:var(--color-gray-500)}.submission-content{display:flex;flex-direction:column;gap:.625rem}.chore-description{font-size:.9375rem;color:var(--color-gray-800);line-height:1.5;margin:0}.points-info{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.875rem}.requested-points{color:var(--color-gray-600)}.approved-points{color:var(--color-green-600);font-weight:600}.goal-allocation{display:inline-flex;align-items:center;gap:.25rem;color:var(--color-blue-600);font-size:.875rem}.parent-notes{padding:.625rem;background:var(--color-blue-50);border-radius:var(--radius-sm);font-size:.875rem;color:var(--color-gray-700)}.approved-by{font-size:.8125rem}.approved-by,.show-more{color:var(--color-gray-500)}.show-more{font-size:.875rem;text-align:center;padding:1rem}.btn-primary,.submit-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;background:var(--color-blue-600);color:white;border:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-primary:hover,.submit-btn:hover{background:var(--color-blue-700)}.btn-primary:disabled,.submit-btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;background:var(--color-surface);color:var(--color-gray-700);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-secondary:hover{background:var(--color-gray-50)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-warning{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;background:var(--color-yellow-600);color:white;border:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-warning:hover{background:var(--color-yellow-500)}.btn-warning:disabled{opacity:.5;cursor:not-allowed}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;background:var(--color-red-600);color:white;border:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:500;cursor:pointer;text-decoration:none;transition:all .15s ease}.btn-danger:hover{background:var(--color-red-700)}.btn-small{padding:.375rem .75rem;font-size:.875rem}.filter-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.filter-tab{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-gray-600);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.filter-tab:hover{border-color:var(--color-gray-300);background:var(--color-gray-50)}.filter-tab.active{background:var(--color-blue-50);color:var(--color-blue-700);border-color:var(--color-blue-200)}.submission-card-parent{background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.submission-card-parent.pending{border-left:3px solid var(--color-yellow-500)}.submission-card-parent.approved{border-left:3px solid var(--color-green-500)}.submission-card-parent.rejected{border-left:3px solid var(--color-red-500)}.submission-header-parent{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:.5rem}.submission-meta{gap:.75rem;flex-wrap:wrap}.child-info,.submission-meta{display:flex;align-items:center}.child-info{gap:.5rem}.child-name{font-weight:600;color:var(--color-gray-900)}.points-section{display:flex;gap:.75rem;flex-wrap:wrap}.notes-section,.points-section{margin-top:.5rem;font-size:.875rem}.notes-section{padding:.625rem;background:var(--color-blue-50);border-radius:var(--radius-sm)}.edit-section{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-gray-100)}.edit-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--color-surface);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);color:var(--color-gray-700);font-size:.875rem;cursor:pointer;transition:all .15s ease}.edit-btn:hover,.edit-form{background:var(--color-gray-50)}.edit-form{margin-top:1rem;padding:1rem;border-radius:var(--radius-md);border:1px solid var(--color-gray-200)}.edit-form h4{font-size:1rem;font-weight:600;margin-bottom:1rem}.form-row{margin-bottom:.75rem}.form-row label{display:block;font-size:.875rem;font-weight:500;color:var(--color-gray-700);margin-bottom:.375rem}.form-row input,.form-row select,.form-row textarea,.goal-select,.notes-input,.points-input,.status-select{width:100%;padding:.5rem .75rem;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:.875rem;background:var(--color-surface);color:var(--color-gray-900)}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--color-blue-500);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.form-actions{display:flex;gap:.5rem;margin-top:1rem}.approval-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-gray-100)}.quick-actions{display:flex;gap:.5rem;flex-wrap:wrap}.approve-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;background:var(--color-green-600);color:white}.approve-btn:hover{background:var(--color-green-500)}.approve-btn.custom{background:var(--color-surface);color:var(--color-gray-700);border:1px solid var(--color-gray-300)}.approve-btn.custom:hover{background:var(--color-gray-50)}.approve-btn:disabled{opacity:.5;cursor:not-allowed}.reject-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:var(--color-red-600);color:white;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.reject-btn:hover{background:var(--color-red-700)}.reject-btn:disabled{opacity:.5;cursor:not-allowed}.save-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:var(--color-blue-600);color:white;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer}.save-btn:disabled{opacity:.5;cursor:not-allowed}.cancel-btn{display:inline-flex;align-items:center;padding:.5rem 1rem;background:var(--color-surface);color:var(--color-gray-700);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer}.cancel-btn:hover{background:var(--color-gray-50)}.cancel-btn:disabled{opacity:.5;cursor:not-allowed}.pagination{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-gray-200)}.pagination-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);color:var(--color-gray-700);font-size:.875rem;cursor:pointer;transition:all .15s ease}.pagination-btn:hover:not(:disabled){background:var(--color-gray-50)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.attachments-grid{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.attachment-wrapper{position:relative;cursor:pointer}.attachment-thumb{width:80px;height:80px;object-fit:cover;border-radius:var(--radius-md);display:block}.attachment-delete-btn{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--color-red-600);color:white;border:none;cursor:pointer;font-size:12px;line-height:1}.attachment-delete-btn,.lightbox-overlay{display:flex;align-items:center;justify-content:center}.lightbox-overlay{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:9999}.lightbox-content{position:relative;max-width:90vw;max-height:90vh}.lightbox-image{max-width:100%;max-height:90vh;object-fit:contain;border-radius:var(--radius-md)}.lightbox-close-btn{top:-2rem;right:0;background:none;line-height:1}.lightbox-close-btn,.lightbox-nav-btn{position:absolute;border:none;color:white;font-size:2rem;cursor:pointer}.lightbox-nav-btn{top:50%;transform:translateY(-50%);background:rgba(255,255,255,.2);padding:.5rem 1rem;border-radius:var(--radius-md)}.lightbox-prev{left:-3.5rem}.lightbox-next{right:-3.5rem}.goals-section{margin-bottom:2rem}.goals-section h2{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.goals-list{display:flex;flex-direction:column;gap:1.25rem}.goals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:1rem;gap:1rem}.child-goal-card{background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.child-goal-card.completed{border-color:var(--color-green-200)}.child-goal-card.family-goal{border-color:var(--color-yellow-200)}.goal-hero-child{width:100%;aspect-ratio:16/9;overflow:hidden}.goal-hero-child img{width:100%;height:100%;object-fit:cover}.goal-header-child{padding:1.25rem 1.25rem 0}.goal-title-section{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.goal-title{font-size:1.0625rem;font-weight:600;color:var(--color-gray-900);margin:0}.family-goal-info{margin-bottom:.5rem}.family-badge-child{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:600;color:var(--color-yellow-800);background:var(--color-yellow-100);padding:.2rem .5rem;border-radius:9999px}.family-participants{font-size:.8125rem;color:var(--color-gray-500);margin:.25rem 0 0}.goal-description-child{font-size:.875rem;color:var(--color-gray-500);padding:.5rem 1.25rem 0;margin:0}.progress-section-child{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.625rem}.progress-info-child{display:flex;justify-content:space-between;align-items:center}.points-display{font-size:.875rem;color:var(--color-gray-700)}.current-points{font-weight:700;color:var(--color-blue-600);font-size:1rem}.progress-percentage-child{font-size:.875rem;font-weight:600;color:var(--color-gray-600)}.individual-contribution{font-size:.8125rem;color:var(--color-gray-500)}.contribution-points{font-weight:600;color:var(--color-blue-600)}.progress-bar-child{height:8px;background:var(--color-gray-200);border-radius:9999px;overflow:hidden}.progress-fill-child{height:100%;border-radius:9999px;transition:width .3s ease;background:var(--color-blue-500)}.points-remaining{font-size:.8125rem;color:var(--color-gray-500)}.celebration{font-size:.875rem;color:var(--color-green-600);font-weight:600;display:flex;align-items:center;gap:.25rem}.goal-card{background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.goal-card.family-goal{border-color:var(--color-yellow-200)}.goal-card.completed{border-color:var(--color-green-200)}.goal-hero{width:100%;aspect-ratio:16/9;overflow:hidden}.goal-hero img{width:100%;height:100%;object-fit:cover}.goal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:1rem 1rem 0}.goal-meta{flex:1 1;min-width:0}.goal-participants{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.family-badge{font-size:.75rem;font-weight:600;color:var(--color-yellow-800);background:var(--color-yellow-100);padding:.2rem .5rem;border-radius:9999px}.child-names,.family-badge{display:inline-flex;align-items:center;gap:.25rem}.child-names{font-size:.8125rem;color:var(--color-gray-600)}.status-badge-child,.status-badge-goal{display:inline-flex;align-items:center;padding:.2rem .625rem;border-radius:9999px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:white;white-space:nowrap}.goal-description{font-size:.875rem;color:var(--color-gray-500);margin:.5rem 1rem;line-height:1.5}.progress-section{padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem}.progress-info{display:flex;justify-content:space-between;font-size:.875rem;color:var(--color-gray-600)}.progress-percentage{font-weight:600}.progress-bar{height:8px;background:var(--color-gray-200);border-radius:9999px;overflow:hidden}.progress-fill{height:100%;border-radius:9999px;transition:width .3s ease;background:var(--color-blue-500)}.goal-actions{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--color-gray-100)}.remove-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--color-red-50);color:var(--color-red-600);border:1px solid var(--color-red-200);border-radius:var(--radius-md);font-size:.875rem;cursor:pointer;transition:all .15s ease}.remove-btn:hover{background:var(--color-red-100)}.goals-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.summary-stats{display:flex;gap:2rem}.stat-item{display:flex;flex-direction:column;align-items:center}.stat-item .stat-number{font-size:1.75rem;font-weight:700;color:var(--color-gray-900);line-height:1}.stat-item .stat-label{font-size:.8125rem;color:var(--color-gray-500)}.goal-form-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:999;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;overflow-y:auto}.goal-form-container{background:var(--color-surface);border-radius:var(--radius-lg);padding:2rem;width:100%;max-width:560px;box-shadow:var(--shadow-lg)}.goal-form-container h3{font-size:1.25rem;font-weight:700;margin-bottom:1.5rem}.goal-form{gap:0}.children-selection,.goal-form{display:flex;flex-direction:column}.children-selection{gap:.5rem;margin-top:.5rem}.child-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9375rem}.goal-type-info{margin-top:.75rem;padding:.75rem;background:var(--color-yellow-50);border:1px solid var(--color-yellow-200);border-radius:var(--radius-md)}.family-goal-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:600;color:var(--color-yellow-800)}.goal-type-description{font-size:.8125rem;color:var(--color-gray-600);margin:.375rem 0 0}.cropper-actions{display:flex;gap:.5rem;margin-top:1rem;justify-content:flex-end}.submit-form-container{max-width:640px}.chore-form{display:flex;flex-direction:column;gap:0}.char-count{font-size:.8125rem;color:var(--color-gray-400);text-align:right;margin-top:.25rem}.points-guide{margin-top:.75rem;padding:1rem;background:var(--color-blue-50);border:1px solid var(--color-blue-100);border-radius:var(--radius-md);font-size:.875rem;color:var(--color-gray-700);line-height:1.6}.points-guide h4{font-weight:600;margin-bottom:.5rem}.points-guide ul{margin:.5rem 0 .5rem 1.5rem}.points-guide p{margin:.25rem 0}.loading-text,.no-goals-text{font-size:.875rem;color:var(--color-gray-500);margin-top:.375rem}.selected-files-info{font-size:.875rem;color:var(--color-gray-600);margin-top:.375rem}.success-message{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;gap:1rem}.success-message h1{font-size:2rem;font-weight:700;color:var(--color-green-600);display:flex;align-items:center;gap:.5rem}.profile-content{display:flex;flex-direction:column;gap:2rem;max-width:640px}.profile-info{display:flex;gap:2rem;flex-wrap:wrap}.avatar-section{flex-direction:column;gap:.75rem}.avatar,.avatar-section{display:flex;align-items:center}.avatar{border-radius:50%;overflow:hidden;background:var(--color-gray-100);justify-content:center;color:var(--color-gray-400)}.avatar-buttons{display:flex;gap:.5rem}.role-badge{display:inline-flex;padding:.25rem .75rem;background:var(--color-blue-100);color:var(--color-blue-700);border-radius:9999px;font-size:.8125rem;font-weight:600;text-transform:capitalize}.account-info{flex:1 1;min-width:200px}.account-info h3{font-size:1rem;font-weight:600;margin-bottom:.75rem}.info-item{display:flex;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--color-gray-100);font-size:.875rem}.info-item label{font-weight:500;color:var(--color-gray-600);min-width:80px}.profile-form{background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:1.5rem}.profile-form h3{font-size:1.125rem;font-weight:600;margin-bottom:1.25rem}.notifications-section{background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:1.5rem}.notifications-section h3{font-size:1.125rem;font-weight:600;margin-bottom:1rem}.account-actions{background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:1.5rem}.account-actions h3{font-size:1.125rem;font-weight:600;margin-bottom:1rem}.message{padding:.75rem;border-radius:var(--radius-md);font-size:.875rem;margin-bottom:1rem}.message.success{background:var(--color-green-50);color:var(--color-green-800);border:1px solid var(--color-green-200)}.message.error{background:var(--color-red-50);color:var(--color-red-800);border:1px solid var(--color-red-200)}.push-notification-toggle{display:flex;flex-direction:column;gap:.75rem}.notification-header{display:flex;gap:.75rem;align-items:flex-start}.notification-icon{display:flex;align-items:center;font-size:1.5rem}.notification-info h3{font-size:.9375rem;font-weight:600;margin:0 0 .25rem}.notification-info p{font-size:.875rem;color:var(--color-gray-500);margin:0}.toggle-button{align-self:flex-start;padding:.375rem 1rem;background:var(--color-gray-200);color:var(--color-gray-700);border:none;border-radius:9999px;font-size:.8125rem;font-weight:700;cursor:pointer;transition:all .15s ease}.toggle-button.active{background:var(--color-blue-600);color:white}.error-message{font-size:.875rem;color:var(--color-red-600)}.family-content{display:flex;flex-direction:column;gap:2rem}.family-section{background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:1.5rem}.family-section h2{font-size:1.125rem;font-weight:600;gap:.5rem}.family-section h2,.section-header{margin-bottom:1.25rem;display:flex;align-items:center}.section-header{justify-content:space-between}.section-header h2{margin-bottom:0}.btn-link{display:inline-flex;align-items:center;gap:.375rem;color:var(--color-blue-600);font-size:.875rem;font-weight:500;text-decoration:none}.members-list{display:flex;flex-direction:column;gap:.75rem}.member-card{display:flex;align-items:center;gap:1rem;padding:.875rem 1rem;background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--radius-md)}.member-avatar{flex-shrink:0}.member-info{flex:1 1;min-width:0}.member-name{font-weight:600;color:var(--color-gray-900);font-size:.9375rem}.member-role{font-size:.8125rem;color:var(--color-blue-600);text-transform:capitalize}.member-joined{font-size:.75rem;color:var(--color-gray-400)}.reminder-card{gap:.75rem}.reminder-card,.reminder-children{display:flex;flex-direction:column}.reminder-children{gap:.375rem}.reminder-child-option{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;cursor:pointer}.reminder-message{width:100%;padding:.5rem .75rem;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:.875rem;resize:vertical;background:var(--color-surface);color:var(--color-gray-900)}.reminder-result{font-size:.875rem;margin:0}.reminder-result.success{color:var(--color-green-600)}.reminder-result.error{color:var(--color-red-600)}.security-card{padding:1rem;background:var(--color-yellow-50);border:1px solid var(--color-yellow-200);border-radius:var(--radius-md)}.security-card h3{font-size:1rem;font-weight:600;margin-bottom:.5rem;display:flex;align-items:center;gap:.375rem}.security-card p{font-size:.875rem;color:var(--color-gray-600);margin-bottom:1rem}.actions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:1rem;gap:1rem}.action-card{display:block;padding:1.25rem;background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);text-decoration:none;transition:all .15s ease}.action-card:hover{border-color:var(--color-blue-300);box-shadow:var(--shadow-md)}.action-card h3{font-size:.9375rem;font-weight:600;color:var(--color-gray-900);margin-bottom:.25rem;display:flex;align-items:center;gap:.375rem}.action-card p{font-size:.8125rem;color:var(--color-gray-500);margin:0}.share-content{max-width:560px;display:flex;flex-direction:column;gap:1.5rem}.instructions{padding:1.25rem;background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg)}.instructions h2{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.instructions p{font-size:.9375rem;color:var(--color-gray-600)}.help-section{padding:1.25rem;background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg)}.help-section h3{font-size:1rem;font-weight:600;margin-bottom:.75rem}.help-section ol{margin-left:1.5rem;font-size:.9375rem;color:var(--color-gray-700);line-height:1.8}.security-note{padding:1rem;background:var(--color-yellow-50);border:1px solid var(--color-yellow-200);border-radius:var(--radius-md);font-size:.875rem}.security-note h4{font-weight:600;margin-bottom:.375rem;display:flex;align-items:center;gap:.375rem}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9000;display:flex;align-items:center;justify-content:center;padding:1.5rem}.modal-content{border-radius:var(--radius-lg);padding:1.5rem;width:100%;max-width:640px;box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto}.back-btn,.modal-content{background:var(--color-surface)}.back-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .875rem;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);color:var(--color-gray-700);font-size:.875rem;cursor:pointer;text-decoration:none}.back-btn:hover{background:var(--color-gray-50)}.error{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--color-red-600);font-size:.9375rem}.motivation-section{margin-top:1rem}.motivation-card{background:var(--color-blue-50);border:1px solid var(--color-blue-100);border-radius:var(--radius-lg);padding:1.5rem;text-align:center}.motivation-card h3{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.motivation-card p{color:var(--color-gray-600);margin-bottom:1rem}@media (prefers-color-scheme:dark){.form-row input,.form-row select,.form-row textarea,.goal-select,.notes-input,.points-input,.reminder-message,.status-select{color-scheme:dark;background:var(--color-gray-100)!important;border-color:var(--color-gray-300)!important;color:var(--color-gray-900)!important}}:root[data-theme=dark] .form-row input,:root[data-theme=dark] .form-row select,:root[data-theme=dark] .form-row textarea,:root[data-theme=dark] .goal-select,:root[data-theme=dark] .notes-input,:root[data-theme=dark] .points-input,:root[data-theme=dark] .reminder-message,:root[data-theme=dark] .status-select{color-scheme:dark;background:var(--color-gray-100)!important;border-color:var(--color-gray-300)!important;color:var(--color-gray-900)!important}