*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{height:100%;overflow:hidden}body{background:#f2f2f2;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;color:#1a1a1a}.app-shell{max-width:540px;width:100%;height:100%;max-height:900px;background:#fff;border:1.5px solid #1a1a1a;border-radius:2rem;overflow:hidden;box-shadow:0 12px 28px -10px rgba(0,0,0,.15);display:flex;flex-direction:column;margin:0 auto}.app-header{padding:.75rem 1.2rem;border-bottom:1.5px solid #e8e8e8;justify-content:space-between;flex-shrink:0;gap:.5rem}.app-header,.app-header-left{display:flex;align-items:center}.app-header-left{gap:.6rem}.app-header-left h1{font-size:1.3rem;font-weight:600;letter-spacing:-.02em}.app-header-left .badge{font-size:.65rem;font-weight:500;background:#1a1a1a;color:#fff;padding:.15rem .7rem;border-radius:40px}.app-header-right{display:flex;align-items:center;gap:.5rem}.app-header-right .user-pill{font-size:.7rem;color:#555;background:#f0f0f0;padding:.2rem .7rem;border-radius:40px;border:1px solid #ddd}.app-header-right .logout-btn{font-size:.65rem;color:#888;background:none;border:1px solid #ddd;padding:.2rem .7rem;border-radius:40px;cursor:pointer;font-family:inherit;transition:all .15s}.logout-btn:active{background:#ffebee;border-color:#c00;color:#c00}.hamburger{display:flex;flex-direction:column;gap:4px;cursor:pointer;padding:8px 4px;background:none;border:none}.hamburger span{width:20px;height:2px;background:#1a1a1a;border-radius:2px;transition:all .2s}.action-bar{display:flex;gap:.5rem;padding:.5rem 1.2rem;border-bottom:1.5px solid #e8e8e8;flex-shrink:0}.action-bar a,.action-bar button{flex:1 1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.65rem 1rem;border-radius:1rem;font-size:.9rem;font-weight:500;cursor:pointer;font-family:inherit;text-decoration:none;transition:all .15s;border:1.5px solid transparent}.btn-plan{background:#1a1a1a;color:#fff;border-color:#1a1a1a!important;font-size:.95rem!important;font-weight:600!important}.btn-plan:active{opacity:.8}.btn-secondary{background:#fff;color:#1a1a1a;border-color:#d0d0d0!important}.btn-secondary:active{background:#f0f0f0}.app-body{display:flex;flex:1 1;min-height:0}.sidebar{background:#fafafa;border-right:1.5px solid #e0e0e0;width:30%;min-width:80px;padding:.6rem .3rem;gap:.4rem;align-items:stretch}.sidebar,.sidebar-item{display:flex;flex-direction:column;flex-shrink:0}.sidebar-item{background:#fff;border:1.5px solid #d0d0d0;border-radius:60px;padding:.7rem .2rem;text-align:center;font-weight:500;font-size:.9rem;color:#333;cursor:pointer;touch-action:manipulation;transition:all .12s;align-items:center;gap:.05rem;line-height:1.1;word-break:break-word;box-shadow:0 1px 0 #ccc}.sidebar-item .icon{font-size:1.3rem;line-height:1}.sidebar-item .label{font-size:.7rem;font-weight:400;color:#555}.sidebar-item .online{font-size:.55rem;color:#4caf50;font-weight:500}.sidebar-item.active{background:#1a1a1a;border-color:#1a1a1a;color:#fff;box-shadow:0 2px 0 #000}.sidebar-item.active .label{color:#ddd}.sidebar-spacer{flex:1 1}.mobile-sidebar-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:900}.mobile-sidebar{position:fixed;top:0;left:0;bottom:0;width:200px;background:#fafafa;border-right:2px solid #1a1a1a;z-index:901;display:flex;flex-direction:column;padding:1rem .5rem;gap:.5rem;animation:slideIn .2s ease}@keyframes slideIn{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.mobile-sidebar .close-btn{align-self:flex-end;background:none;border:none;font-size:1.5rem;cursor:pointer;padding:.3rem .6rem;color:#666;margin-bottom:.5rem}.panel{flex:1 1;padding:.6rem 1rem .4rem;background:#fff;display:flex;flex-direction:column;min-width:0;min-height:0}.panel-username{font-size:.8rem;color:#666;font-weight:500;margin-bottom:.2rem;flex-shrink:0;display:flex;align-items:center;gap:.4rem}.panel-username .dot{width:6px;height:6px;border-radius:50%;background:#4caf50;flex-shrink:0}.panel-shift{font-size:1.4rem;font-weight:600;letter-spacing:-.02em;display:flex;align-items:center;justify-content:space-between;border-bottom:1.5px dashed #555;padding-bottom:.3rem;margin-bottom:.6rem;flex-shrink:0}.panel-shift span{background:#1a1a1a;color:#fff;font-size:.6rem;font-weight:400;padding:.1rem .7rem;border-radius:30px;letter-spacing:.02em}.item-list{display:flex;flex-direction:column;gap:.5rem;flex:1 1;overflow-y:auto;min-height:0;padding-bottom:.1rem}.item-list::-webkit-scrollbar{width:4px}.item-list::-webkit-scrollbar-track{background:#f0f0f0;border-radius:10px}.item-list::-webkit-scrollbar-thumb{background:#1a1a1a;border-radius:10px}.item-card{background:#fafafa;border:1.5px solid #1a1a1a;border-radius:1rem;padding:.8rem 1rem;font-size:1.1rem;font-weight:400;color:#1a1a1a;gap:.8rem;min-height:3.2rem;transition:background .1s}.item-card,.item-card .item-num{display:flex;align-items:center;flex-shrink:0}.item-card .item-num{background:#1a1a1a;color:#fff;border-radius:50%;width:1.8rem;height:1.8rem;justify-content:center;font-size:.8rem;font-weight:600}.item-card .item-text{flex:1 1;word-break:break-word;line-height:1.3;font-size:1.05rem}.item-card.empty{background:#f5f5f5;border-color:#ddd;color:#999;font-style:italic;justify-content:center;font-size:1rem;padding:1.5rem;min-height:3.5rem}.item-card.empty .item-num{display:none}.pagination{gap:.7rem;margin-top:.5rem;padding-top:.5rem;border-top:1.5px solid #eee;flex-shrink:0}.pagination,.pagination button{display:flex;align-items:center;justify-content:center}.pagination button{background:#fff;border:1.5px solid #1a1a1a;border-radius:50%;width:2.6rem;height:2.6rem;font-size:1.1rem;font-weight:500;color:#1a1a1a;cursor:pointer;touch-action:manipulation;font-family:inherit;transition:all .1s}.pagination button:active{transform:scale(.92);background:#e8e8e8}.pagination button:disabled{opacity:.3;cursor:not-allowed;transform:none}.pagination .page-info{font-size:1rem;color:#1a1a1a;min-width:3.5rem;text-align:center}.panel-footnote{font-size:.55rem;color:#777;text-align:center;border-top:1px solid #eee;padding-top:.3rem;margin-top:.3rem;letter-spacing:.02em;display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;flex-shrink:0}.panel-footnote span{background:#1a1a1a;color:#fff;padding:.05rem .6rem;border-radius:40px;font-size:.5rem}.container-items,.container-planner{max-width:480px;width:100%;height:100%;max-height:800px;background:#fff;border:1.5px solid #1a1a1a;border-radius:2rem;overflow:hidden;box-shadow:0 12px 28px -10px rgba(0,0,0,.15);display:flex;flex-direction:column;margin:0 auto}.container-items .header,.container-planner .header{padding:1rem 1.2rem .6rem;border-bottom:1.5px solid #d0d0d0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.container-items .header h1,.container-planner .header h1{font-size:1.5rem;font-weight:500;letter-spacing:-.02em;display:flex;align-items:center;gap:.3rem}.container-items .header h1 small,.container-planner .header h1 small{font-size:.7rem;font-weight:380;color:#2a2a2a;background:#eaeaea;padding:.1rem .8rem;border-radius:40px;border:1px solid #aaa}.date-banner{background:#1a1a1a;color:#fff;padding:.6rem 1.2rem;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;border-bottom:1.5px solid #d0d0d0;flex-wrap:wrap;gap:.3rem}.date-banner .date-section{display:flex;align-items:center;gap:.5rem}.date-banner .date-icon{font-size:1.1rem}.date-banner .date-text{font-size:.9rem;font-weight:450;letter-spacing:.02em}.date-banner .date-label{font-size:.65rem;font-weight:300;opacity:.7;margin-right:.2rem}.date-banner .planning-badge{background:hsla(0,0%,100%,.12);padding:.2rem .8rem;border-radius:40px;font-size:.7rem;font-weight:400;border:1px solid hsla(0,0%,100%,.15)}.date-banner .time-badge{background:hsla(0,0%,100%,.15);padding:.2rem .8rem;border-radius:40px;font-size:.75rem;font-weight:400;border:1px solid hsla(0,0%,100%,.2);display:flex;align-items:center;gap:.3rem}.date-banner .time-badge .live-dot{display:inline-block;width:6px;height:6px;background:#0f8;border-radius:50%;animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.status-banner{padding:.4rem 1.2rem;display:flex;align-items:center;gap:.5rem;font-size:.8rem;flex-shrink:0;border-bottom:1.5px solid #d0d0d0}.status-banner .status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-banner .status-dot.green{background:#4caf50}.status-banner .status-dot.orange{background:#ff9800}.status-banner .status-dot.red{background:#f44336}.status-banner .status-text{color:#333}.progress-bar{display:flex;gap:.4rem;padding:.6rem 1.2rem .4rem;flex-shrink:0}.progress-step{flex:1 1;height:4px;background:#e0e0e0;border-radius:10px;transition:background .3s}.progress-step.active,.progress-step.completed{background:#1a1a1a}.form-content{flex:1 1;padding:.8rem 1.2rem;overflow-y:auto;min-height:0}.form-content::-webkit-scrollbar{width:4px}.form-content::-webkit-scrollbar-track{background:#f0f0f0;border-radius:10px}.form-content::-webkit-scrollbar-thumb{background:#1a1a1a;border-radius:10px}.step{display:none;animation:fadeIn .3s ease}.step.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.step-title{font-size:1.4rem;font-weight:500;margin-bottom:.3rem;letter-spacing:-.02em}.step-subtitle{font-size:.9rem;color:#666;margin-bottom:1.2rem;border-left:3px solid #1a1a1a;padding-left:.8rem}.step-subtitle .next-day{color:#2196f3;font-weight:500}.step-subtitle .item-count{color:#1a1a1a;font-weight:500}.step-subtitle .status-badge{display:inline-block;padding:.1rem .6rem;border-radius:30px;font-size:.7rem;font-weight:500;margin-left:.3rem}.step-subtitle .status-badge.available{background:#e8f5e9;color:#2e7d32}.step-subtitle .status-badge.planning{background:#fff3e0;color:#e65100}.step-subtitle .status-badge.passed{background:#ffebee;color:#c62828}.form-group{margin-bottom:.8rem}.form-label{display:block;font-size:.95rem;font-weight:450;margin-bottom:.5rem;color:#1a1a1a}.form-label .required{color:#c00;margin-left:.2rem}.skip-option{background:#f8f8f8;border:2px solid #d0d0d0;border-radius:1rem;padding:.9rem 1rem;display:flex;align-items:center;gap:.8rem;cursor:pointer;touch-action:manipulation;transition:all .15s;min-height:3.4rem;margin-bottom:.5rem}.skip-option:active{transform:scale(.98)}.skip-option.selected{background:#ffebee;border-color:#c00;color:#c00}.skip-option .skip-icon{font-size:1.4rem;flex-shrink:0}.skip-option.selected .skip-icon{color:#c00}.skip-option .skip-text{font-size:1.05rem;font-weight:400;flex:1 1}.skip-option .skip-check{font-size:1.4rem;opacity:0;transition:opacity .15s}.skip-option.selected .skip-check{opacity:1;color:#c00}.meal-options{display:flex;flex-direction:column;gap:.5rem}.meal-option{background:#f8f8f8;border:2px solid #d0d0d0;border-radius:1rem;padding:.9rem 1rem;display:flex;align-items:center;gap:.8rem;cursor:pointer;touch-action:manipulation;transition:all .15s;min-height:3.4rem}.meal-option:active{transform:scale(.98)}.meal-option.selected{background:#1a1a1a;border-color:#1a1a1a;color:#fff}.meal-option .option-icon{font-size:1.4rem;flex-shrink:0}.meal-option.selected .option-icon{color:#fff}.meal-option .option-text{font-size:1.05rem;font-weight:400;flex:1 1}.meal-option .option-check{font-size:1.4rem;opacity:0;transition:opacity .15s}.meal-option.selected .option-check{opacity:1;color:#fff}.meal-option.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.nav-buttons{display:flex;gap:.8rem;padding:.8rem 1.2rem 1rem;border-top:1.5px solid #d0d0d0;flex-shrink:0}.nav-buttons button{flex:1 1;padding:.9rem;border:1.5px solid #1a1a1a;border-radius:1.2rem;font-size:1.05rem;font-weight:500;cursor:pointer;touch-action:manipulation;transition:all .15s;font-family:inherit}.nav-buttons button:active{transform:scale(.97)}.nav-buttons .btn-back{background:#fff;color:#1a1a1a;flex:0.5 1}.nav-buttons .btn-back:active{background:#f0f0f0}.nav-buttons .btn-next{background:#1a1a1a;color:#fff}.nav-buttons .btn-next:active{opacity:.8}.nav-buttons .btn-next:disabled{opacity:.4;cursor:not-allowed}.nav-buttons .btn-submit{background:#1a1a1a;color:#fff;flex:1 1}.nav-buttons .btn-submit:active{opacity:.8}.nav-buttons .btn-submit:disabled{opacity:.4;cursor:not-allowed}.summary-grid{display:flex;flex-direction:column;gap:.8rem}.summary-card{background:#f8f8f8;border:1.5px solid #1a1a1a;border-radius:1.2rem;padding:1rem 1.2rem}.summary-card .meal-label{font-size:.8rem;font-weight:450;color:#666;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.summary-card .meal-label .status-tag{font-size:.6rem;font-weight:400;text-transform:none;padding:.05rem .5rem;border-radius:30px}.summary-card .meal-label .status-tag.available{background:#e8f5e9;color:#2e7d32}.summary-card .meal-label .status-tag.planning{background:#fff3e0;color:#e65100}.summary-card .meal-label .status-tag.passed{background:#ffebee;color:#c62828}.summary-card .meal-value{font-size:1.2rem;font-weight:400;margin-top:.2rem}.summary-card .meal-value.empty{color:#999;font-style:italic}.summary-card .meal-value.next-day{color:#2196f3}.summary-card .meal-value.skipped{color:#c00;font-style:italic}.confirmation{text-align:center;padding:1.5rem .5rem}.confirmation .icon{font-size:4rem;margin-bottom:1rem}.confirmation h2{font-size:1.6rem;font-weight:500;margin-bottom:.3rem}.confirmation .date-confirm{font-size:1rem;color:#666;margin-bottom:1rem}.confirmation .details{margin-top:1.5rem;text-align:left;background:#f8f8f8;border-radius:1.2rem;padding:1rem 1.2rem}.confirmation .details .row{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px dashed #ddd;font-size:.95rem}.confirmation .details .row:last-child{border-bottom:none}.confirmation .details .label{color:#666}.confirmation .details .value{font-weight:450;text-align:right;flex:1 1;margin-left:1rem;word-break:break-word}.confirmation .details .value.next-day{color:#2196f3}.confirmation .details .value.skipped{color:#c00;font-style:italic}.container-items .item-count-badge,.container-items .step-indicator,.container-planner .step-indicator{font-size:.8rem;font-weight:450;color:#555;background:#f0f0f0;padding:.15rem .8rem;border-radius:40px;border:1px solid #bbb}.container-items .item-count-badge{font-size:.8rem}.tabs{display:flex;gap:.4rem;padding:.6rem 1rem .4rem;border-bottom:1.5px solid #d0d0d0;flex-shrink:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:1 1;background:#f0f0f0;border:1.5px solid silver;border-radius:60px;padding:.5rem .8rem;font-size:.9rem;font-weight:450;color:#222;cursor:pointer;touch-action:manipulation;transition:all .1s;text-align:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tab:active{transform:scale(.95)}.tab.active{background:#1a1a1a;border-color:#1a1a1a;color:#fff}.tab .tab-count{font-size:.65rem;font-weight:400;opacity:.6;margin-left:.2rem}.tab.active .tab-count{opacity:.8}.content-items{flex:1 1;padding:.8rem 1.2rem;overflow-y:auto;min-height:0}.content-items::-webkit-scrollbar{width:4px}.content-items::-webkit-scrollbar-track{background:#f0f0f0;border-radius:10px}.content-items::-webkit-scrollbar-thumb{background:#1a1a1a;border-radius:10px}.add-section{display:flex;gap:.6rem;margin-bottom:1rem;flex-shrink:0}.add-section input{flex:1 1;padding:.8rem 1rem;border:2px solid #d0d0d0;border-radius:1rem;font-size:1rem;font-family:inherit;outline:none;transition:border .15s;background:#fff;color:#1a1a1a}.add-section input:focus{border-color:#1a1a1a;box-shadow:0 0 0 3px rgba(26,26,26,.1)}.add-section input::placeholder{color:#999}.add-section .add-btn{background:#1a1a1a;color:#fff;border:none;border-radius:1rem;padding:.8rem 1.2rem;font-size:.9rem;font-weight:500;cursor:pointer;touch-action:manipulation;white-space:nowrap;transition:opacity .15s;font-family:inherit}.add-section .add-btn:active{opacity:.7}.item-card-editable{background:#f8f8f8;border:1.5px solid #1a1a1a;border-radius:1rem;padding:.8rem 1rem;display:flex;align-items:center;gap:.8rem;transition:background .1s;min-height:3.2rem}.item-card-editable .item-icon{font-size:1.2rem;flex-shrink:0}.item-card-editable .item-name{flex:1 1;font-size:1rem;font-weight:400;word-break:break-word;line-height:1.3}.item-card-editable .item-actions{display:flex;gap:.4rem;flex-shrink:0}.item-card-editable .item-actions button{background:none;border:none;font-size:1.2rem;cursor:pointer;touch-action:manipulation;padding:.2rem .3rem;border-radius:.5rem;transition:background .1s;line-height:1;font-family:inherit;color:inherit}.item-card-editable .item-actions .edit-btn:active{background:#e0e0e0}.item-card-editable .item-actions .delete-btn:active{background:#ffebee}.item-card-editable .item-actions .delete-btn{color:#999}.item-card-editable .item-number{background:#1a1a1a;color:#fff;border-radius:50%;width:1.8rem;height:1.8rem;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:500;flex-shrink:0}.item-card-editable.empty-state{background:#f5f5f5;border-color:#ccc;color:#888;font-style:italic;justify-content:center;font-size:.95rem;padding:1.5rem 1.2rem;min-height:4rem}.item-card-editable.empty-state .item-number{display:none}.item-card-editable.editing{background:#fff8e1;border-color:#ff9800}.item-card-editable .edit-input{flex:1 1;padding:.4rem .6rem;border:2px solid #1a1a1a;border-radius:.6rem;font-size:1rem;font-family:inherit;outline:none;background:#fff;color:#1a1a1a}.item-card-editable .edit-input:focus{box-shadow:0 0 0 3px rgba(26,26,26,.1)}.item-card-editable .edit-actions{display:flex;gap:.4rem}.item-card-editable .edit-actions button{padding:.3rem .8rem;border-radius:.6rem;font-size:.8rem;font-weight:500;cursor:pointer;touch-action:manipulation;border:1.5px solid #1a1a1a;font-family:inherit}.item-card-editable .edit-actions .save-edit{background:#1a1a1a;color:#fff}.item-card-editable .edit-actions .cancel-edit{background:#fff;color:#1a1a1a}.item-card-editable .edit-actions button:active{transform:scale(.95)}.footer{padding:.6rem 1.2rem .8rem;border-top:1.5px solid #d0d0d0;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;font-size:.8rem;color:#666}.footer .total-items{font-weight:450}.footer .reset-btn{background:none;border:1.5px solid #ccc;border-radius:40px;padding:.3rem .8rem;font-size:.7rem;color:#888;cursor:pointer;touch-action:manipulation;transition:all .1s;font-family:inherit}.footer .reset-btn:active{background:#ffebee;border-color:#c00;color:#c00}.nav-links{padding:.3rem 1.2rem;display:flex;gap:.5rem;flex-wrap:wrap;flex-shrink:0}.nav-links a{font-size:.75rem;color:#1a1a1a;text-decoration:none;background:#f0f0f0;padding:.2rem .8rem;border-radius:40px;border:1px solid silver;transition:all .1s}.nav-links a:hover{background:#e0e0e0}@media (max-width:460px){body{padding:0}.app-shell{border-radius:0;border:none;max-height:none;height:100dvh}.app-header{padding:.5rem .8rem}.app-header-left h1{font-size:1.1rem}.sidebar{display:none}.panel{padding:.4rem .7rem .3rem}.item-card{padding:.7rem .8rem;min-height:2.8rem;font-size:1rem;border-radius:.8rem}.item-card .item-num{width:1.6rem;height:1.6rem;font-size:.7rem}.item-card .item-text{font-size:.95rem}.item-card.empty{font-size:.9rem;padding:1.2rem}.panel-shift{font-size:1.2rem}.pagination button{width:2.2rem;height:2.2rem;font-size:1rem}.pagination .page-info{font-size:.9rem;min-width:3rem}.action-bar{padding:.4rem .8rem;gap:.4rem}.action-bar a,.action-bar button{padding:.55rem .8rem;font-size:.8rem}}@media (min-width:461px){.hamburger{display:none}}@media (max-height:500px) and (orientation:landscape){.app-shell{max-height:100dvh;border-radius:.5rem}.app-header{padding:.15rem .6rem}.app-header-left h1{font-size:.8rem}.sidebar{min-width:50px;padding:.2rem .1rem;gap:.2rem}.sidebar-item{padding:.25rem .1rem;font-size:.55rem;border-radius:30px}.sidebar-item .icon{font-size:.7rem}.sidebar-item .label{font-size:.45rem}.panel{padding:.15rem .4rem}.item-card{padding:.25rem .5rem;min-height:1.6rem;border-radius:.5rem;gap:.4rem;font-size:.7rem}.item-card .item-num{width:1rem;height:1rem;font-size:.45rem}.item-card .item-text{font-size:.65rem}.panel-shift{font-size:.7rem}.pagination button{width:1.6rem;height:1.6rem;font-size:.7rem}.action-bar{padding:.15rem .5rem}.action-bar a,.action-bar button{padding:.3rem .5rem;font-size:.65rem;border-radius:.6rem}}:focus-visible{outline:3px solid #000;outline-offset:2px}