body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-nav{background-color:#fff;border-bottom:2px solid #b8860b;justify-content:space-between;padding:.75rem 2rem;position:sticky;top:0;z-index:10}.App-nav,.App-nav-left{align-items:center;display:flex}.App-nav-left{gap:1.5rem}.App-nav-icon{height:36px;width:36px}.App-nav-links{display:flex;gap:1.5rem;list-style:none;margin:0;padding:0}.App-nav-links a{color:indigo;font-size:.95rem;font-weight:500;letter-spacing:.03em;text-decoration:none;transition:color .2s}.App-nav-links a:hover{color:#8b0000}.App-landing{align-items:center;background-color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 60px)}.App-logo{max-width:90vw;width:840px}.App-nav-right{align-items:center;display:flex;gap:1rem}.App-nav-user{color:indigo;font-size:.85rem;font-weight:500}.App-login-btn{background:none;border:2px solid #b8860b;color:#b8860b;cursor:pointer;font-size:.9rem;letter-spacing:.1em;padding:.5rem 1.25rem;transition:background-color .2s,color .2s}.App-login-btn:hover{background-color:#b8860b;color:#fff}.App-page{background-color:#fff;min-height:calc(100vh - 60px);padding:2rem}.Recipe{margin:0 auto;max-width:700px;text-align:left}.Recipe-toolbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.Recipe-back{background:none;border:none;color:indigo;cursor:pointer;font-size:.9rem;padding:0}.Recipe-back:hover{color:#8b0000}.Recipe-print{background:none;border:1px solid indigo;color:indigo;cursor:pointer;font-size:.85rem;padding:.35rem .75rem;transition:background-color .2s,color .2s}.Recipe-print:hover{background-color:indigo;color:#fff}.Recipe-title{border-bottom:2px solid #b8860b;color:indigo;font-size:1.8rem;margin:0 0 .25rem;padding-bottom:.5rem}.Recipe-category{color:#b8860b;display:inline-block;font-size:.8rem;letter-spacing:.06em;margin-bottom:.5rem;text-transform:uppercase}.Recipe-note{color:#8b0000;font-size:.85rem;font-style:italic;margin:0 0 1.5rem}.Recipe-controls{display:flex;flex-wrap:wrap;gap:1.25rem;margin-bottom:1.5rem}.Recipe-control-group{display:flex;flex-direction:column;gap:.25rem}.Recipe-control-group label{color:indigo;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.Recipe-control-group input,.Recipe-control-group select{border:1px solid #b8860b;font-size:.9rem;padding:.4rem .5rem;width:120px}.Recipe-toggle{background:none;border:1px solid #b8860b;color:#b8860b;cursor:pointer;font-size:.85rem;padding:.4rem .75rem;transition:background-color .2s,color .2s}.Recipe-toggle:hover{background-color:#b8860b;color:#fff}.Recipe-table{border-collapse:collapse;width:100%}.Recipe-table th{background-color:indigo;color:#fff;font-size:.85rem;letter-spacing:.03em;padding:.6rem .75rem;text-align:left}.Recipe-table td{border-bottom:1px solid #e0d6c8;font-size:.9rem;padding:.6rem .75rem}.Recipe-table tbody tr:hover{background-color:#f9f6f1}.Recipe-base-row{background-color:#fdf6e3;font-weight:600}.Recipe-base-row td:last-child{color:#8b0000}.Recipe-section{margin-bottom:1.5rem}.Recipe-section-title{color:#8b0000;font-size:1.1rem;letter-spacing:.04em;margin:0 0 .5rem;text-transform:uppercase}.Recipe-ing-note{color:#999;font-size:.8rem;font-style:italic}.Recipe-serving-note{background-color:#fdf6e3;border-left:3px solid #b8860b;color:indigo;font-size:.9rem;font-style:italic;margin:1.5rem 0;padding:.75rem 1rem}.Recipe-instructions{margin-top:2rem}.Recipe-instructions-title{border-bottom:2px solid #b8860b;color:indigo;font-size:1.3rem;margin:0 0 1rem;padding-bottom:.4rem}.Recipe-steps{margin:0;padding-left:1.25rem}.Recipe-steps li{border-bottom:1px solid #f0ebe3;line-height:1.5;padding:.5rem 0}.Recipe-steps li:last-child{border-bottom:none}.RecipeBrowser{margin:0 auto;max-width:800px;text-align:left}.RecipeBrowser-top{display:flex;gap:1rem;margin-bottom:2.5rem}.RecipeBrowser-top-btn{background-color:indigo;border:none;color:#fff;cursor:pointer;flex:1 1;font-size:1.1rem;font-weight:600;padding:1.5rem 1rem;transition:background-color .2s}.RecipeBrowser-top-btn:hover{background-color:#3a0066}.RecipeBrowser-category{margin-bottom:2rem}.RecipeBrowser-category-title{border-bottom:1px solid #b8860b;color:#b8860b;font-size:1.2rem;letter-spacing:.06em;margin:0 0 .75rem;padding-bottom:.4rem;text-transform:uppercase}.RecipeBrowser-grid{display:flex;flex-wrap:wrap;gap:.75rem}.RecipeBrowser-card{align-items:flex-start;background:none;border:1px solid #b8860b;cursor:pointer;display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;text-align:left;transition:background-color .2s}.RecipeBrowser-card:hover{background-color:#fdf6e3}.RecipeBrowser-card-name{color:indigo;font-size:.95rem;font-weight:600}.RecipeBrowser-card-meta{color:#999;font-size:.8rem}.RecipeBrowser-empty{color:#999;font-size:.85rem;font-style:italic;margin:0}.Recipe-calc-input{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.5rem;max-width:280px}.Recipe-calc-input label{color:indigo;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.Recipe-calc-input input{border:2px solid #b8860b;font-size:1.1rem;padding:.5rem .6rem}.Recipe-print-footer,.Recipe-print-header{display:none}.Grocery{margin:0 auto;max-width:600px;text-align:left}.Grocery-title{border-bottom:2px solid #b8860b;color:indigo;font-size:1.5rem;margin:0 0 1rem;padding-bottom:.5rem}.Grocery-loading{color:#999;font-style:italic}.Grocery-error{background-color:#fdf0f0;border-left:3px solid #8b0000;color:#8b0000;font-size:.85rem;margin-bottom:1rem;padding:.5rem .75rem}.Grocery-form{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.Grocery-input{flex:1 1 100%;font-size:1rem;padding:.6rem .75rem}.Grocery-input,.Grocery-select{border:2px solid #b8860b;border-radius:0}.Grocery-select{background:#fff;flex:1 1 auto;font-size:.9rem;padding:.6rem .5rem}.Grocery-photo-label{align-items:center;border:2px solid indigo;color:indigo;cursor:pointer;display:inline-flex;font-size:.85rem;max-width:140px;overflow:hidden;padding:.6rem .75rem;text-overflow:ellipsis;transition:background-color .2s,color .2s;white-space:nowrap}.Grocery-photo-label:hover{background-color:indigo;color:#fff}.Grocery-photo-input{display:none}.Grocery-add-btn{background-color:indigo;border:none;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.6rem 1.25rem;transition:background-color .2s}.Grocery-add-btn:hover{background-color:#3a0066}.Grocery-add-btn:disabled{cursor:not-allowed;opacity:.6}.Grocery-actions{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.Grocery-count{color:#999;font-size:.8rem}.Grocery-delete-all-btn{background:none;border:1px solid #8b0000;color:#8b0000;cursor:pointer;font-size:.8rem;padding:.3rem .75rem;transition:background-color .2s,color .2s}.Grocery-delete-all-btn:hover{background-color:#8b0000;color:#fff}.Grocery-confirm{background-color:#fdf6e3;border:2px solid #8b0000;margin-bottom:1rem;padding:1rem;text-align:center}.Grocery-confirm p{color:#8b0000;font-weight:600;margin:0 0 .75rem}.Grocery-confirm-actions{display:flex;gap:.75rem;justify-content:center}.Grocery-confirm-yes{background-color:#8b0000;border:none;color:#fff}.Grocery-confirm-no,.Grocery-confirm-yes{cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.Grocery-confirm-no{background:none;border:2px solid indigo;color:indigo}.Grocery-list{list-style:none;margin:0;padding:0}.Grocery-item{align-items:center;border-bottom:1px solid #e0d6c8;display:flex;gap:.75rem;padding:.75rem 0}.Grocery-item--done{opacity:.5}.Grocery-item--done .Grocery-item-name{text-decoration:line-through}.Grocery-check-btn{background:none;border:none;cursor:pointer;flex-shrink:0;padding:0}.Grocery-checkbox{border:2px solid #b8860b;border-radius:4px;display:block;height:24px;position:relative;width:24px}.Grocery-checkbox--checked{background-color:indigo;border-color:indigo}.Grocery-checkbox--checked:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:12px;left:6px;position:absolute;top:2px;transform:rotate(45deg);width:6px}.Grocery-item-info{display:flex;flex:1 1;flex-direction:column;gap:.1rem;min-width:0}.Grocery-item-name{color:#333;font-size:1rem;font-weight:500}.Grocery-item-store{color:#b8860b;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.Grocery-item-thumb{border:1px solid #e0d6c8;border-radius:4px;flex-shrink:0;height:48px;object-fit:cover;width:48px}.Grocery-delete-btn{background:none;border:none;color:#ccc;cursor:pointer;flex-shrink:0;font-size:1.4rem;line-height:1;padding:0 .25rem;transition:color .2s}.Grocery-delete-btn:hover{color:#8b0000}.Grocery-empty{color:#999;font-style:italic;margin-top:2rem;text-align:center}.PostIt{margin:0 auto;max-width:800px;text-align:left}.PostIt-title{border-bottom:2px solid #b8860b;color:indigo;font-size:1.5rem;margin:0 0 1rem;padding-bottom:.5rem}.PostIt-loading{color:#999;font-style:italic}.PostIt-error{background-color:#fdf0f0;border-left:3px solid #8b0000;color:#8b0000;font-size:.85rem;margin-bottom:1rem;padding:.5rem .75rem}.PostIt-form{margin-bottom:1.5rem}.PostIt-textarea{border:2px solid #b8860b;border-radius:0;box-sizing:border-box;font-family:inherit;font-size:1rem;padding:.6rem .75rem;resize:vertical;width:100%}.PostIt-form-row{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.PostIt-photo-label{align-items:center;border:2px solid indigo;color:indigo;cursor:pointer;display:inline-flex;font-size:.85rem;max-width:140px;overflow:hidden;padding:.5rem .75rem;text-overflow:ellipsis;transition:background-color .2s,color .2s;white-space:nowrap}.PostIt-photo-label:hover{background-color:indigo;color:#fff}.PostIt-photo-input{display:none}.PostIt-form-user{color:#999;flex:1 1;font-size:.8rem}.PostIt-add-btn{background-color:indigo;border:none;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.5rem 1.25rem;transition:background-color .2s}.PostIt-add-btn:hover{background-color:#3a0066}.PostIt-add-btn:disabled{cursor:not-allowed;opacity:.6}.PostIt-empty{color:#999;font-style:italic;margin-top:2rem;text-align:center}.PostIt-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.PostIt-card{background-color:#fdf6e3;border:1px solid #e0d6c8;box-shadow:2px 2px 6px #00000014;display:flex;flex-direction:column;gap:.5rem;padding:.75rem;position:relative;transition:opacity .2s}.PostIt-card--processed{opacity:.45}.PostIt-card-top{align-items:center;display:flex;justify-content:space-between}.PostIt-card-date{color:#b8860b;font-size:.7rem;letter-spacing:.03em;text-transform:uppercase}.PostIt-card-delete{background:none;border:none;color:#ccc;cursor:pointer;font-size:1.3rem;line-height:1;padding:0;transition:color .2s}.PostIt-card-delete:hover{color:#8b0000}.PostIt-card-text{color:#333;font-size:.9rem;line-height:1.45;margin:0;word-break:break-word}.PostIt-card-thumb{border:1px solid #e0d6c8;border-radius:3px;max-height:140px;object-fit:cover;width:100%}.PostIt-card-bottom{align-items:center;display:flex;justify-content:space-between;margin-top:auto}.PostIt-card-author{color:indigo;font-size:.75rem;font-weight:500}.PostIt-card-process-btn{background:none;border:1px solid #b8860b;color:#b8860b;cursor:pointer;font-size:.75rem;padding:.2rem .5rem;transition:background-color .2s,color .2s}.PostIt-card-process-btn:hover{background-color:#b8860b;color:#fff}.PostIt-card-process-btn--active{border-color:indigo;color:indigo}.PostIt-card-process-btn--active:hover{background-color:indigo;color:#fff}.Vault{margin:0 auto;max-width:800px;text-align:left}.Vault-title{border-bottom:2px solid #b8860b;color:indigo;font-size:1.5rem;margin:0 0 .75rem;padding-bottom:.5rem}.Vault-loading{color:#999;font-style:italic}.Vault-error{background-color:#fdf0f0;border-left:3px solid #8b0000;color:#8b0000;font-size:.85rem;margin-bottom:1rem;padding:.5rem .75rem}.Vault-empty{color:#999;font-style:italic;margin-top:2rem;text-align:center}.Vault-breadcrumbs{align-items:center;display:flex;flex-wrap:wrap;gap:.15rem;margin-bottom:.75rem}.Vault-crumb{background:none;border:none;color:indigo;cursor:pointer;font-size:.85rem;font-weight:500;padding:.15rem .25rem}.Vault-crumb:disabled{color:#333;cursor:default;font-weight:600}.Vault-crumb:not(:disabled):hover{text-decoration:underline}.Vault-crumb-sep{color:#ccc;font-size:.85rem;margin:0 .1rem}.Vault-search{display:flex;gap:.4rem;margin-bottom:1rem}.Vault-search-input{border:2px solid #b8860b;border-radius:0;flex:1 1;font-size:.9rem;padding:.5rem .6rem}.Vault-search-btn{background-color:indigo;border:none;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem .75rem;transition:background-color .2s}.Vault-search-btn:hover{background-color:#3a0066}.Vault-search-clear{background:none;border:1px solid #999;color:#999;cursor:pointer;font-size:.8rem;padding:.5rem .6rem}.Vault-search-label{color:#999;font-size:.8rem;margin:0 0 .75rem}.Vault-share-banner{align-items:center;background-color:#fdf6e3;border:1px solid #b8860b;color:indigo;display:flex;font-size:.85rem;gap:.5rem;margin-bottom:1rem;padding:.5rem .75rem}.Vault-share-url{border:1px solid #ccc;color:#333;flex:1 1;font-size:.8rem;padding:.25rem .4rem}.Vault-share-close{background:none;border:none;color:#999;cursor:pointer;font-size:1.2rem}.Vault-upload-area{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;position:relative}.Vault-upload-toggle{background-color:indigo;border:none;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.5rem 1rem;transition:background-color .2s}.Vault-upload-toggle:hover{background-color:#3a0066}.Vault-newfolder-btn{background:none;border:2px solid #b8860b;color:#b8860b;cursor:pointer;font-size:.9rem;font-weight:600;padding:.5rem 1rem;transition:background-color .2s,color .2s}.Vault-newfolder-btn:hover{background-color:#b8860b;color:#fff}.Vault-upload-menu{background:#fff;border:2px solid #b8860b;box-shadow:2px 4px 12px #0000001a;display:flex;flex-direction:column;left:0;min-width:200px;position:absolute;top:100%;z-index:5}.Vault-upload-menu button{background:none;border:none;border-bottom:1px solid #f0ebe3;color:#333;cursor:pointer;font-size:.9rem;padding:.65rem 1rem;text-align:left;transition:background-color .15s}.Vault-upload-menu button:last-child{border-bottom:none}.Vault-upload-menu button:hover{background-color:#fdf6e3;color:indigo}.Vault-upload-modal{background-color:#fefdfb;border:2px solid #b8860b;margin-bottom:1rem;padding:1rem}.Vault-upload-header{align-items:center;color:indigo;display:flex;font-size:1rem;justify-content:space-between;margin-bottom:.75rem}.Vault-upload-cancel{background:none;border:none;color:#999;cursor:pointer;font-size:1.4rem;line-height:1}.Vault-upload-cancel:hover{color:#8b0000}.Vault-upload-body{margin-bottom:.75rem}.Vault-upload-body input[type=file]{font-size:.85rem;margin-bottom:.5rem}.Vault-upload-preview{border:1px solid #e0d6c8;margin-bottom:.5rem;max-height:200px;max-width:100%}.Vault-upload-ready{color:#2e7d32;font-size:.85rem;margin:.25rem 0 0}.Vault-upload-clean-toggle{align-items:center;color:#555;cursor:pointer;display:flex;font-size:.8rem;gap:.4rem;margin-top:.35rem}.Vault-upload-clean-toggle input{accent-color:indigo}.Vault-scan-pages{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.Vault-scan-page{border:1px solid #e0d6c8;position:relative;width:80px}.Vault-scan-page img{display:block;height:100px;object-fit:cover;width:100%}.Vault-scan-page-num{background:#4b0082cc;border-radius:2px;color:#fff;font-size:.65rem;left:4px;padding:1px 4px;position:absolute;top:2px}.Vault-scan-page-actions{display:flex;gap:.1rem;justify-content:center}.Vault-scan-page-actions button{background:none;border:none;color:indigo;cursor:pointer;font-size:.75rem;padding:2px 4px}.Vault-scan-page-actions button:disabled{color:#ddd;cursor:default}.Vault-scan-hint{color:#999;font-size:.8rem;margin:.25rem 0 0}.Vault-upload-footer{border-top:1px solid #e0d6c8;padding-top:.75rem}.Vault-upload-name-label{color:indigo;display:block;font-size:.8rem;font-weight:600;margin-bottom:.5rem}.Vault-upload-name-row{align-items:center;display:flex;gap:0;margin-top:.25rem}.Vault-upload-name{border:2px solid #b8860b;border-radius:0;border-right:none;flex:1 1;font-size:.9rem;padding:.45rem .5rem}.Vault-upload-ext{background-color:#f5f0e6;border:2px solid #b8860b;color:#666;font-size:.9rem;padding:.45rem .5rem;white-space:nowrap}.Vault-upload-submit{background-color:indigo;border:none;color:#fff;cursor:pointer;display:block;font-size:.95rem;font-weight:600;margin-top:.5rem;padding:.6rem;transition:background-color .2s;width:100%}.Vault-upload-submit:hover{background-color:#3a0066}.Vault-upload-submit:disabled{cursor:not-allowed;opacity:.6}.Vault-tiles{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-bottom:1.5rem}.Vault-tile{align-items:center;background-color:#fdf6e3;border:1px solid #e0d6c8;box-shadow:1px 2px 5px #0000000f;cursor:pointer;display:flex;flex-direction:column;gap:.25rem;padding:1.25rem .75rem;transition:background-color .15s,border-color .15s}.Vault-tile:hover{background-color:#f5edd5;border-color:#b8860b}.Vault-tile-icon{font-size:2rem}.Vault-tile-name{color:indigo;font-size:.9rem;font-weight:600;text-align:center}.Vault-tile-count{color:#999;font-size:.7rem}.Vault-folders{display:flex;flex-direction:column;margin-bottom:1rem}.Vault-folder-row{align-items:center;background:none;border:none;border-bottom:1px solid #f0ebe3;cursor:pointer;display:flex;gap:.5rem;padding:.6rem .5rem;text-align:left;transition:background-color .15s}.Vault-folder-row:hover{background-color:#fdf6e3}.Vault-folder-icon{font-size:1.2rem}.Vault-folder-name{color:indigo;flex:1 1;font-size:.95rem;font-weight:500}.Vault-folder-count{color:#999;font-size:.75rem}.Vault-files{list-style:none;margin:0;padding:0}.Vault-file{border-bottom:1px solid #f0ebe3;gap:.6rem;padding:.6rem 0}.Vault-file,.Vault-file-icon{align-items:center;display:flex}.Vault-file-icon{border-radius:4px;color:#fff;flex-shrink:0;font-size:.6rem;font-weight:700;height:36px;justify-content:center;letter-spacing:.02em;width:36px}.Vault-file-info{display:flex;flex:1 1;flex-direction:column;gap:.1rem;min-width:0}.Vault-file-name{color:#333;font-size:.9rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Vault-file-meta{color:#999;font-size:.7rem}.Vault-file-share{background:none;border:none;cursor:pointer;font-size:1rem;opacity:.5;padding:.25rem;transition:opacity .2s}.Vault-file-share:hover{opacity:1}@media (max-width:600px){.App-nav{padding:.5rem 1rem}.App-nav-links{gap:.75rem}.App-nav-links a{font-size:.8rem}.App-nav-user{display:none}.App-page{padding:1rem}.Grocery-form{gap:.4rem}.Grocery-select{flex:1 1 50%}.Grocery-photo-label{flex:1 1 40%;justify-content:center;max-width:none}.Grocery-add-btn{flex:1 1 100%}.PostIt-grid{grid-template-columns:1fr}.PostIt-photo-label{flex:1 1;justify-content:center;max-width:none}.PostIt-add-btn{flex:1 1 100%}.PostIt-form-user{flex:1 1 100%;order:-1}.Vault-tiles{gap:.5rem;grid-template-columns:repeat(2,1fr)}.Vault-tile{padding:1rem .5rem}.Vault-upload-menu{left:0;min-width:auto;right:0}.Vault-file-name{font-size:.85rem}}@media print{.App-nav,.Recipe-calc-input,.Recipe-controls,.Recipe-toolbar{display:none}.App-page{min-height:auto;padding:0}.Recipe{max-width:100%}.Recipe-title{border-bottom:1px solid #000;color:#000;font-size:1.5rem}.Recipe-category{color:#555}.Recipe-note{color:#333}.Recipe-table th{background-color:#eee;border-bottom:2px solid #000;color:#000}.Recipe-table td{border-bottom:1px solid #ccc}.Recipe-base-row{background-color:#f5f5f5}.Recipe-base-row td:last-child{color:#000;font-weight:700}.Recipe-instructions-title{border-bottom:1px solid #000;color:#000}.Recipe-steps li{border-bottom:1px solid #eee}.Recipe-print-footer,.Recipe-print-header{align-items:center;display:flex;gap:.5rem}.Recipe-print-header{border-bottom:1px solid #ccc;margin-bottom:.75rem;padding-bottom:.5rem}.Recipe-print-footer{border-top:1px solid #ccc;justify-content:center;margin-top:2rem;padding-top:.5rem}.Recipe-print-logo{height:60px;width:60px}.Recipe-print-brand{color:#555;font-size:1rem;letter-spacing:.05em}}
/*# sourceMappingURL=main.78230e0d.css.map*/