*{box-sizing:border-box;overscroll-behavior:none}html{font-size:clamp(10px,.8vw,14px);height:100%;height:100dvh;width:100%;overflow:hidden}body{margin:0;font-family:Roboto,sans-serif;background-color:#f0f4f8;color:#212529;display:flex;justify-content:center;align-items:center;height:100%;width:100%;font-size:1.2rem;overflow:hidden;touch-action:manipulation;-webkit-user-select:none;user-select:none}#root{width:100%;height:100%;display:flex;flex-direction:column;max-width:100%;box-shadow:none;overflow:hidden;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.app-container{display:flex;flex-direction:column;height:100%;width:100%;background-color:#f0f4f8;overflow:hidden}.svg-icon{fill:currentColor;display:inline-block;vertical-align:middle;line-height:1}.header{background-color:#0079d4;color:#fff;padding:.3vh .5vw;display:flex;flex-direction:row;align-items:center;justify-content:space-between;flex-shrink:0;width:100%;box-shadow:0 1px 2px #0000001a;z-index:10;height:auto;min-height:5vh}.app-title{font-size:2.2vmin;font-weight:700;margin:0}.header-controls{display:flex;align-items:center;gap:15px}.header-back-button{background-color:transparent;color:#fff;border:2px solid white;border-radius:.8vh;padding:1vh 1.5vw;font-size:2.5vmin;font-weight:700;cursor:pointer;transition:background-color .2s,color .2s;white-space:nowrap;display:flex;align-items:center}.header-back-button:hover{background-color:#fff;color:#0079d4}.settings-trigger-button-header{background-color:transparent;color:#fff;font-size:clamp(1.8rem,5vmin,3rem);border:none;cursor:pointer;padding:8px;width:clamp(40px,8vmin,60px);height:clamp(40px,8vmin,60px);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.settings-trigger-button-header:hover{background-color:#fff3}.home-screen-container{padding:.3vh .3vw;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.home-screen-grid{flex-grow:1;display:grid;gap:2px;width:200%;height:200%;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;transform:scale(.5);transform-origin:top left}@media(orientation:landscape){.home-screen-grid{grid-template-columns:repeat(3,1fr)}}@media(orientation:portrait){.home-screen-grid{grid-template-columns:repeat(2,1fr)}}.menu-button{background-color:#fff;border:1px solid #ccc;border-radius:.3vh;padding:.15vh .15vw;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;transition:transform .2s ease;box-shadow:0 1px 2px #00000014;color:#333745;width:100%;height:100%;min-height:0}.menu-button:hover{transform:translateY(-1px)}.menu-button:active{transform:scale(.98)}.menu-button-icon{width:2vmin;height:2vmin;margin-bottom:.15vh;color:#333745;display:flex;align-items:center;justify-content:center}.menu-button-label{font-size:.8vmin;font-weight:700;line-height:1}.menu-button.color-green{background-color:#e8f5e9;border-color:#a5d6a7}.menu-button.color-blue{background-color:#e3f2fd;border-color:#90caf9}.menu-button.color-red{background-color:#f8d7da;border-color:#f5c6cb}.menu-button.color-purple{background-color:#f3e5f5;border-color:#ce93d8}.menu-button.color-orange{background-color:#fff3e0;border-color:#ffcc80}.menu-button.color-pink{background-color:#fce4ec;border-color:#f48fb1}.menu-button.color-yellow{background-color:#fffde7;border-color:#fff59d}.menu-button.color-teal{background-color:#e0f2f1;border-color:#80cbc4}.main-content-area{flex-grow:1;display:flex;flex-direction:column;overflow:hidden;background-color:#f0f4f8;position:relative;min-height:0}.agenda-view{flex-grow:1;padding:15px 20px;overflow-y:hidden;display:flex;flex-direction:column;background-color:#c4cfda}.agenda-title{font-size:clamp(2.4rem,5vmin,3.5rem);font-weight:700;margin-top:0;margin-bottom:15px;text-align:center;color:#0079d4;flex-shrink:0}.appointment-list-container{flex-grow:1;overflow-y:auto;margin-bottom:10px}.appointment-list{list-style:none;padding:0;margin:0}.appointment-item{background-color:#fff;border:2px solid #B0B8C0;border-radius:15px;padding:clamp(14px,2vmin,20px);margin-bottom:12px;display:flex;align-items:center;gap:12px;position:relative;flex-wrap:wrap}.appointment-item.is-important{border-left:8px solid #FFC107}.appointment-item.is-birthday{border:3px solid #FFC107;background:#fffbea}.done-checkbox-wrapper{width:clamp(38px,5vmin,48px);height:clamp(38px,5vmin,48px);border:3px solid #28A745;border-radius:5px;margin-right:10px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#28a745;background-color:#fff}.appointment-item.is-done{background-color:#e9f5e9;border-color:#c8e6c9}.appointment-item.is-done .appointment-activity{text-decoration:line-through;color:#555}.done-badge{width:100%;background-color:#28a745;color:#fff;text-align:center;font-weight:700;padding:5px;border-radius:5px;margin-top:10px;font-size:1.4rem}.appointment-time,.appointment-activity{font-size:clamp(1.6rem,3vmin,2.1rem);font-weight:400;color:#212529}.appointment-time{font-weight:700;min-width:90px}.appointment-icon{font-size:clamp(2.4rem,4vmin,3.2rem);width:55px;height:55px;display:flex;align-items:center;justify-content:center;color:#0079d4}.appointment-details{flex-grow:1}.reminder-indicator{font-size:1.5rem;margin-left:8px;color:#0079d4;vertical-align:middle;display:inline-flex;align-items:center;gap:5px}.no-appointments-message{font-size:clamp(1.8rem,3vmin,2.4rem);text-align:center;margin-top:40px;color:#0079d4;flex-grow:1;display:flex;align-items:center;justify-content:center}.agenda-navigation{display:flex;justify-content:space-between;gap:15px;padding-top:10px;flex-shrink:0}.agenda-nav-button{flex:1;background-color:#6c757d;color:#fff;border:none;border-radius:15px;padding:20px 10px;font-size:clamp(1.6rem,2.5vmin,2rem);font-weight:700;cursor:pointer;transition:background-color .2s}.agenda-nav-button:hover{background-color:#5a6268}.agenda-nav-button.today{background-color:#0079d4}.agenda-nav-button.today:hover{background-color:#00579b}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;padding:15px}.modal-content{background-color:#fff;padding:clamp(20px,4vmin,40px);border-radius:20px;border:4px solid #0079D4;text-align:center;width:auto;min-width:clamp(320px,50vw,600px);max-width:90%;box-shadow:0 10px 30px #0003}.modal-text{font-size:clamp(2.2rem,4vmin,3rem);color:#333745;margin-bottom:25px}.modal-buttons{display:flex;gap:clamp(15px,3vw,30px);justify-content:center;margin-top:25px}.modal-button{padding:clamp(15px,2.5vmin,25px) clamp(30px,5vw,50px);font-size:clamp(2rem,3.5vmin,2.8rem);font-weight:700;border-radius:18px;color:#fff;cursor:pointer;min-width:150px;border:none}.modal-button.confirm{background-color:#28a745}.modal-button.confirm:hover{background-color:#218838}.modal-button.cancel{background-color:#dc3545;min-width:180px}.modal-button.cancel:hover{background-color:#c82333}.pin-input{font-size:2.5rem;padding:10px 15px;margin-bottom:15px;border:2px solid #0079D4;border-radius:8px;text-align:center;width:200px;letter-spacing:.3em;color:#333745}.pin-error{color:#dc3545;font-size:1.6rem;margin-top:-10px;margin-bottom:10px;font-weight:700}.admin-panel-view{flex-grow:1;padding:20px;display:flex;flex-direction:column;align-items:center;background-color:#fff;overflow-y:auto}.admin-section{width:100%;max-width:600px;margin-bottom:20px}.admin-section-title{font-size:1.8rem;color:#00579b;margin-top:20px;margin-bottom:10px;width:100%;text-align:left;border-bottom:1px solid #A8BBEE;padding-bottom:5px}.admin-option-item{display:flex;flex-direction:column;gap:8px;padding:15px;background-color:#f8f9fa;border:1px solid #E9ECEF;border-radius:8px}.admin-label{font-size:1.5rem;color:#333745;font-weight:700}.admin-input,select,option,input[type=text],input[type=number],input[type=tel],input[type=date],input[type=time]{width:100%;padding:10px;font-size:1.6rem;border-radius:5px;background-color:#fff;color:#000!important;fill:#000!important;border:1px solid #0079D4}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23000000%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E);background-repeat:no-repeat;background-position:right 10px top 50%;background-size:16px auto}.menu-editor-list{display:flex;flex-direction:column;gap:10px}.menu-editor-item{background-color:#f8f9fa;border:1px solid #CED4DA;border-radius:8px;padding:10px}.menu-editor-row{display:flex;gap:10px;margin-bottom:10px;align-items:center}.menu-editor-label-input{flex-grow:1}.menu-editor-actions{display:flex;justify-content:space-between;align-items:center}.menu-editor-toggle{display:flex;align-items:center;gap:8px;font-size:1.4rem;cursor:pointer}.menu-order-buttons{display:flex;gap:5px}.order-button{background:#e9ecef;border:1px solid #CED4DA;padding:5px 10px;cursor:pointer;border-radius:4px;font-size:1.2rem}.order-button:disabled{opacity:.3;cursor:default}.admin-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin-top:15px}.admin-photo-thumbnail-container{position:relative;width:100%;aspect-ratio:1;border-radius:5px;overflow:hidden;border:1px solid #ccc}.admin-photo-thumbnail{width:100%;height:100%;object-fit:cover}.delete-photo-button{position:absolute;top:0;right:0;background-color:#dc3545cc;color:#fff;border:none;width:30px;height:30px;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}.agenda-admin-list{display:flex;flex-direction:column;gap:10px}.admin-save-button{width:100%;padding:15px;background-color:#0079d4;color:#fff;font-size:1.8rem;font-weight:700;border:none;border-radius:10px;cursor:pointer;margin-top:10px}.admin-save-button:hover{background-color:#00579b}.admin-action-button{background-color:#0079d4;color:#fff;border:none;padding:12px 20px;font-size:1.6rem;border-radius:8px;cursor:pointer;font-weight:700}.admin-action-button.small{padding:8px 12px;font-size:1.4rem}.export-buttons-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px}.admin-remove-photo-button{background-color:#dc3545;color:#fff;border:none;padding:5px 10px;margin-top:5px;border-radius:4px;cursor:pointer;font-size:1.2rem}.contacts-view{padding:20px;overflow-y:auto;flex-grow:1}.contacts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.contact-card{background-color:#fff;border:2px solid #B0B8C0;border-radius:20px;padding:20px;display:flex;flex-direction:column;align-items:center;cursor:pointer;box-shadow:0 4px 8px #0000001a;text-align:center}.contact-card:active{transform:scale(.98);background-color:#f0f8ff}.contact-card.emergency{border-color:#d32f2f;background-color:snow}.contact-card-photo{width:120px;height:120px;border-radius:50%;object-fit:cover;margin-bottom:15px;border:4px solid #E3F2FD}.contact-card-placeholder{width:120px;height:120px;border-radius:50%;background-color:#e3f2fd;display:flex;align-items:center;justify-content:center;margin-bottom:15px;color:#0079d4;border:4px solid #B3E5FC}.contact-card-name{font-size:2rem;font-weight:700;margin-bottom:10px;color:#333745}.contact-card-action{background-color:#28a745;color:#fff;padding:10px 25px;border-radius:50px;font-size:1.6rem;font-weight:700;display:flex;align-items:center;gap:10px;margin-top:auto}.music-view,.youtube-view,.photo-album-view,.news-view{flex-grow:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column}.music-playlist-selection{display:flex;flex-direction:column;gap:15px;max-width:600px;margin:0 auto;width:100%}.music-playlist-button{background-color:#fff;border:2px solid #4CAF50;padding:20px;border-radius:15px;font-size:1.8rem;cursor:pointer;display:flex;align-items:center;text-align:left;font-weight:700;color:#333;box-shadow:0 2px 4px #0000001a}.spotify-player-wrapper{flex-grow:1;width:100%;display:flex;flex-direction:column;min-height:400px;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #0003;background:#000}.spotify-embed{width:100%;height:100%;border:none;flex-grow:1}.music-controls{margin-top:20px;display:flex;justify-content:center}.music-action-button.stop{background-color:#dc3545;padding:15px 40px;font-size:1.8rem;border-radius:50px;color:#fff;border:none;font-weight:700;cursor:pointer}.youtube-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.youtube-item{background:#fff;padding:10px;border-radius:10px;box-shadow:0 2px 5px #0000001a}.youtube-title{font-size:1.6rem;margin-bottom:10px;text-align:center}.youtube-embed-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:8px}.youtube-embed-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.photo-album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px}.photo-album-image{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;box-shadow:0 2px 5px #0003;cursor:pointer;transition:transform .2s}.photo-album-image:hover{transform:scale(1.03)}.news-articles-container{display:flex;flex-direction:column;gap:20px;max-width:800px;margin:0 auto}.news-article{background:#fff;padding:20px;border-radius:15px;box-shadow:0 2px 5px #0000001a}.news-article h3{margin-top:0;color:#0079d4}.screensaver-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000;z-index:9999;display:flex;align-items:center;justify-content:center;cursor:none}.screensaver-image{max-width:100%;max-height:100%;object-fit:contain;animation:fadeIn 1s ease-in-out}.screensaver-caption{position:absolute;bottom:20px;color:#ffffff80;font-size:1.5rem}.status-toast{position:fixed;top:20px;left:50%;transform:translate(-50%);padding:15px 25px;border-radius:8px;color:#fff;font-weight:700;z-index:99999;box-shadow:0 4px 12px #0000004d;font-size:1.6rem;text-align:center;min-width:300px}.status-toast.success{background-color:#28a745;border:2px solid #1e7e34}.status-toast.error{background-color:#dc3545;border:2px solid #bd2130}@keyframes pulse-slow{0%,to{opacity:1;border-color:#dc2626}50%{opacity:.8;border-color:#dc262680}}.animate-pulse-slow{animation:pulse-slow 3s cubic-bezier(.4,0,.6,1) infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
