:root{color:#22322f;background:radial-gradient(circle at 12% 10%,#dceae4 0%,transparent 42%),radial-gradient(circle at 88% 0%,#f7e4cb 0%,transparent 36%),#f5f6f1;font-family:"Source Sans 3",Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea,select{font:inherit}#root{min-height:100vh}@media print{body{background:#fff}}.app{width:min(1200px,calc(100% - 1.25rem));margin:0 auto;padding:1.25rem 0 2rem}.hero{margin-bottom:1.5rem}.brand{margin:0 0 .5rem;font-family:Fraunces,Georgia,serif;font-size:clamp(2.2rem,7vw,3.6rem);font-weight:700;letter-spacing:-.03em;line-height:.95;color:#1f5d50}.hero h1{margin:0;font-size:clamp(1.25rem,3vw,1.7rem);font-weight:600}.lede,.lede-sm{margin:.6rem 0 0;max-width:40rem;color:#5b6b67}.lede-sm{font-size:.95rem}.composer,.auth-panel,.wizard-card,.day-card,.meta-card{background:#fff;border:1px solid #dedacd;border-radius:14px;padding:1.15rem 1.25rem;box-shadow:0 1px 2px #22322f0f}.composer,.auth-panel,.wizard-card{margin-bottom:1rem}.auth-panel .composer{margin-bottom:0;padding:0;border:0;box-shadow:none}.auth-panel h2,.wizard-card h2,.day-card h2{margin:0 0 .75rem;font-family:Fraunces,Georgia,serif;font-size:1.25rem}.auth-panel label,.wizard-card label,.field-block,.meta-card label{display:flex;flex-direction:column;gap:.35rem;margin:.65rem 0;font-weight:600;font-size:.85rem;color:#5b6b67;text-transform:uppercase;letter-spacing:.04em}.auth-panel input,.wizard-card input,.wizard-card select,.field-block textarea,.field-block input,.field-block select,.meta-card input,.meta-card select{width:100%;border:1px solid #dedacd;border-radius:8px;padding:.7rem .85rem;background:#fbfaf5;color:#22322f;text-transform:none;letter-spacing:normal;font-weight:400;font-size:.95rem}.auth-actions,.actions,.choice-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #dedacd;background:#fff;color:#22322f;font-weight:600;padding:.7rem 1rem;border-radius:9px;cursor:pointer}button:hover{border-color:#2e7d6b}button:disabled{opacity:.45;cursor:not-allowed}.auth-actions button:not(.ghost),.choice-row button,.actions button:not(.ghost){background:#2e7d6b;border-color:#2e7d6b;color:#fff}.ghost{background:transparent!important;color:#22322f!important;border-color:#dedacd!important}.error{color:#8b2e2e;font-weight:600}.file-list{margin:.75rem 0 0;padding-left:1.1rem;color:#5b6b67}.planner-top{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.eyebrow{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#1f5d50}.planner-top h1{margin:.2rem 0;font-family:Fraunces,Georgia,serif;font-size:1.5rem}.save-line{margin:0;color:#8a9490;font-size:.85rem}.banner{background:#dceae4;border-radius:10px;padding:.75rem 1rem;margin-bottom:1rem;color:#1f5d50}.meta-card{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem 1rem;margin-bottom:1rem}@media(max-width:800px){.meta-card{grid-template-columns:1fr}}.day-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.day-tabs button{background:#fbfaf5}.day-tabs button.active{background:#2e7d6b;border-color:#2e7d6b;color:#fff}.day-card{margin-bottom:1rem}.day-card h3{margin:1rem 0 .4rem;font-size:1rem}.check-row{display:flex;align-items:center;gap:.5rem;margin:.4rem 0;font-weight:500;text-transform:none;letter-spacing:normal;color:#22322f}.json-debug{margin-top:1rem}.json-debug pre,.print-only pre{overflow:auto;background:#fbfaf5;border:1px solid #e9e6da;border-radius:8px;padding:.75rem;font-size:.75rem}.print-only{display:none}.planificator-host{margin-top:.5rem}.planificator-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:.75rem}.planificator-bar-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-left:auto}.toast-stack{position:fixed;z-index:10000;left:50%;bottom:1.25rem;transform:translate(-50%);display:flex;flex-direction:column;gap:.5rem;width:min(24rem,calc(100% - 1.5rem));pointer-events:none}.toast{pointer-events:auto;padding:.85rem 1rem;border-radius:12px;background:#22322f;color:#fff;font-weight:600;font-size:.92rem;box-shadow:0 8px 24px #22322f33;animation:toast-in .22s ease-out}.toast-success{background:#1f5d50}.toast-error{background:#8b2e2e}.toast-info{background:#3d4f4a}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.planificator-frame{width:100%;min-height:85vh;border:1px solid #dedacd;border-radius:12px;background:#fff}.job-status{margin:.5rem 0 1rem}.job-headline{margin:0 0 .75rem;font-family:Fraunces,Georgia,serif;font-size:1.15rem;color:#1f5d50}.job-meta{margin:0;padding-left:1.1rem;color:#5b6b67;line-height:1.55}.job-meta .warn{color:#8b5a2e;font-weight:600}.module-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin:.85rem 0 1rem}.module-filters button.active{background:#2e7d6b;border-color:#2e7d6b;color:#fff}.week-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;max-height:min(58vh,520px);overflow:auto}.week-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;text-align:left;padding:.75rem .9rem;background:#fbfaf5;border:1px solid #e9e6da}.week-row:hover{border-color:#2e7d6b}.week-row.selected{border-color:#2e7d6b;box-shadow:inset 0 0 0 1px #2e7d6b}.week-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.week-module{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#1f5d50}.week-period{font-weight:600;color:#22322f}.week-detail{font-size:.82rem;color:#5b6b67;font-weight:500}.week-badge{flex-shrink:0;font-size:.75rem;font-weight:700;letter-spacing:.03em;padding:.35rem .55rem;border-radius:999px;background:#ece9df;color:#5b6b67}.week-badge.status-ready{background:#dceae4;color:#1f5d50}.week-badge.status-processing,.week-badge.status-queued,.week-badge.status-retry{background:#f3e6d2;color:#8b5a2e}.week-badge.status-failed{background:#f3d6d6;color:#8b2e2e}@media print{.planificator-bar{display:none!important}.planificator-frame{border:0;min-height:100vh}}
