:root { --np-ink:#17322d; --np-muted:#6d7c77; --np-paper:#fffefa; --np-green:#285f51; --np-lime:#d8ef74; --np-line:#dfe4dc; --np-cream:#f4f1e8; --np-orange:#e99b5f; }
.np-shell { color:var(--np-ink); font-family:Arial,Helvetica,sans-serif; }
.np-shell * { box-sizing:border-box; }
.np-shell button,.np-shell input,.np-shell select,.np-dialog button,.np-dialog input,.np-dialog select,.np-dialog textarea { font:inherit; }
.np-head { display:flex; align-items:flex-end; justify-content:space-between; gap:48px; padding:52px 0 42px; }
.np-hero-text>span,.np-dialog>form>span { color:var(--np-green); font-size:11px; font-weight:700; letter-spacing:.14em; }
.np-head h1 { font:500 clamp(52px,6.5vw,88px)/.93 Georgia,serif; letter-spacing:-.045em; margin:13px 0 0; }
.np-head h1 em { color:var(--np-green); font-weight:400; }
.np-hero-text>p { max-width:570px; color:var(--np-muted); font-size:16px; line-height:1.55; margin:22px 0 0; }
.np-hero-side { width:340px; flex:0 0 340px; }
.np-dog-card { display:flex; align-items:center; gap:13px; background:var(--np-paper); border:1px solid var(--np-line); border-radius:18px; padding:14px; box-shadow:0 14px 38px rgba(34,57,50,.08); }
.np-dog-card>b { display:grid; place-items:center; width:52px; height:52px; border-radius:50%; background:var(--np-lime); font:700 21px Georgia; }
.np-dog-card>div { display:flex; flex-direction:column; gap:3px; }
.np-dog-card small,.np-dog-card span { color:var(--np-muted); font-size:10px; }
.np-dog-card strong { font:700 19px Georgia; }
.np-head-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; margin-top:10px; }
.np-head-actions select,.np-head-actions input { min-width:0; width:100%; border:1px solid var(--np-line); border-radius:999px; background:var(--np-paper); color:var(--np-ink); padding:10px 13px; font-size:11px; }
.np-head-actions button,.np-title>button { border:0; border-radius:999px; background:var(--np-lime); color:var(--np-ink); padding:10px 14px; font-size:11px; font-weight:700; cursor:pointer; }
.np-head-actions .np-plan-copy { border:1px solid var(--np-green); background:transparent; color:var(--np-green); }
.np-head-actions .np-plan-delete { background:#f5e7e3; color:#95483d; }
.np-grid { display:grid; grid-template-columns:.82fr 1.15fr 1fr; gap:16px; align-items:start; }
.np-card,.np-results { background:var(--np-paper); border:1px solid var(--np-line); border-radius:22px; padding:23px; box-shadow:0 8px 26px rgba(34,57,50,.045); }
.np-title,.np-results-head { display:flex; align-items:center; gap:11px; margin-bottom:24px; }
.np-step { display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; border:1px solid #afc5ba; border-radius:50%; color:var(--np-green); font-size:10px; font-weight:700; }
.np-title>div:nth-child(2),.np-results-head>div:nth-child(2) { min-width:0; }
.np-title h2,.np-results-head h2 { margin:0 0 3px; font:700 22px Georgia,serif; }
.np-title p,.np-results-head p { margin:0; color:var(--np-muted); font-size:10px; }
.np-title>button { margin-left:auto; white-space:nowrap; }
.np-card label,.np-dialog label { display:block; position:relative; margin:0 0 17px; font-size:11px; font-weight:700; }
.np-card input,.np-card select,.np-dialog input,.np-dialog select,.np-dialog textarea { width:100%; margin-top:7px; border:1px solid var(--np-line); border-radius:10px; background:#fbfcf8; color:var(--np-ink); padding:12px; outline:none; }
.np-card input:focus,.np-card select:focus,.np-dialog input:focus,.np-dialog select:focus,.np-dialog textarea:focus { border-color:var(--np-green); box-shadow:0 0 0 3px rgba(40,95,81,.09); }
.np-two { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.np-two label>small { position:absolute; right:11px; bottom:13px; color:var(--np-muted); font-size:9px; font-weight:400; }
.np-two input { padding-right:42px; }
.np-check { display:flex!important; align-items:center; gap:10px; min-height:65px; padding-top:20px; cursor:pointer; }
.np-check input { width:18px; height:18px; margin:0; accent-color:var(--np-green); }
.np-check span { font-size:11px; }
.np-secondary { width:100%; border:1px solid var(--np-green); border-radius:999px; background:transparent; color:var(--np-green); padding:10px; margin:-2px 0 15px; font-size:10px; font-weight:700; cursor:pointer; }
.np-profile-note { margin:-7px 0 15px; color:var(--np-muted); font-size:8px; line-height:1.45; }
.np-dog-actions { display:grid; grid-template-columns:1fr auto; gap:7px; margin-bottom:15px; }
.np-dog-actions .np-secondary { margin:0; }
.np-danger { border:0; border-radius:999px; background:#f5e7e3; color:#95483d; padding:10px 12px; font-size:10px; font-weight:700; cursor:pointer; }
.np-energy { background:var(--np-green); color:#fff; border-radius:16px; padding:18px; }
.np-energy>span { display:block; font-size:9px; letter-spacing:.08em; text-transform:uppercase; opacity:.75; }
.np-energy>strong { display:block; margin:7px 0 4px; font:400 34px Georgia; }
.np-energy strong small { font:13px Arial; }
.np-energy p { margin:0; opacity:.68; font-size:9px; line-height:1.45; }
.np-item { display:grid; grid-template-columns:38px 1fr 80px 18px; gap:9px; align-items:center; min-height:70px; border-bottom:1px solid var(--np-line); }
.np-food-icon { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:#dbe6d7; color:var(--np-green); }
.np-item>div { min-width:0; }
.np-item strong,.np-product strong { display:block; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.np-item small,.np-product small { display:block; color:var(--np-muted); font-size:9px; margin-top:4px; }
.np-item label { display:flex; align-items:center; gap:4px; margin:0; color:var(--np-muted); font-weight:400; }
.np-item input { width:61px; margin:0; padding:9px 6px; text-align:right; }
.np-item>button,.np-product>button { border:0; background:none; color:var(--np-green); font-size:10px; font-weight:700; cursor:pointer; }
.np-ration-total { display:flex; justify-content:space-between; align-items:center; padding-top:18px; color:var(--np-muted); font-size:10px; }
.np-ration-total strong { color:var(--np-ink); font:700 17px Georgia; }
.np-empty { display:flex; flex-direction:column; align-items:center; gap:5px; margin:12px 0; padding:34px 15px; border:1px dashed #cfd8d0; border-radius:13px; color:var(--np-muted); text-align:center; }
.np-empty b { color:var(--np-ink); font:700 15px Georgia; }
.np-empty span,.np-small-empty { font-size:10px; }
.np-search { display:grid; grid-template-columns:1fr auto; gap:6px; margin-bottom:7px; }
.np-search input { margin:0; min-width:0; }
.np-search button { border:0; border-radius:10px; background:var(--np-green); color:white; padding:0 12px; font-size:10px; font-weight:700; cursor:pointer; }
.np-search-meta { margin:5px 1px 7px; color:var(--np-muted); font-size:9px; }
.np-library-list { max-height:300px; overflow:auto; padding-right:3px; }
.np-product { display:grid; grid-template-columns:minmax(0,1fr) repeat(3,auto); gap:5px; align-items:center; min-height:56px; border-bottom:1px solid var(--np-line); }
.np-product>button:first-of-type { padding:7px; border-radius:999px; background:#eef3eb; }
.np-citation { color:var(--np-muted); font-size:8px; line-height:1.45; margin:12px 0; }
.np-card h3.np-subtitle { margin:22px 0 6px; font:700 16px Georgia; }
.np-results { margin-top:16px; }
.np-results-head { margin-bottom:20px; }
.np-score { margin-left:auto; display:flex; flex-direction:column; align-items:center; justify-content:center; width:75px; height:75px; border-radius:50%; background:#eef3eb; border:7px solid var(--np-green); }
.np-score strong { font:700 20px Georgia; }
.np-score span { color:var(--np-muted); font-size:8px; }
.np-score.is-incomplete { border-color:#aeb8b3; background:#f1f2ef; }
.np-print-button { margin-left:auto; border:1px solid var(--np-green); border-radius:999px; background:transparent; color:var(--np-green); padding:9px 13px; font-size:10px; font-weight:700; cursor:pointer; }
.np-results-head .np-print-button+.np-score { margin-left:0; }
.np-print-only { display:none; }
.np-ratio { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0 0 22px; }
.np-ratio>div { display:grid; grid-template-columns:1fr auto; align-items:center; gap:2px 12px; padding:12px 15px; border:1px solid var(--np-line); border-radius:12px; background:#f8f8f3; }
.np-ratio span { color:var(--np-muted); font-size:9px; }
.np-ratio strong { font:700 17px Georgia,serif; }
.np-ratio em { grid-column:1/-1; color:var(--np-muted); font-size:8px; font-style:normal; }
.np-ratio .good { border-color:#aac5b8; background:#f1f7f2; }
.np-ratio .warning { border-color:#dfc58f; background:#fff8e8; }
.np-ratio .unknown { border-color:#cbd2ce; background:#f4f5f2; }
.np-result-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px 22px; }
.np-nutrient>div { display:flex; justify-content:space-between; gap:8px; font-size:10px; }
.np-nutrient>div strong { font-size:10px; }
.np-nutrient>i { display:block; height:7px; margin:7px 0 5px; border-radius:999px; overflow:hidden; background:#e9ece6; }
.np-nutrient>i b { display:block; height:100%; border-radius:inherit; }
.np-nutrient .good { background:var(--np-green); }.np-nutrient .low { background:#d1a84d; }.np-nutrient .high { background:#b95345; }.np-nutrient .unknown { background:repeating-linear-gradient(135deg,#aab5af 0,#aab5af 5px,#d4dad6 5px,#d4dad6 10px); }
.np-nutrient.is-incomplete>div strong,.np-nutrient.is-incomplete>small { color:#7d8984; }
.np-nutrient>small { color:var(--np-muted); font-size:8px; }
.np-detail-toggle { display:block; margin:24px auto 0; padding:10px 18px; border:1px solid var(--np-green); border-radius:999px; background:transparent; color:var(--np-green); font-size:10px; font-weight:700; cursor:pointer; }
.np-detail-toggle:hover { background:#eef3eb; }
.np-detail-section { margin-top:25px; padding-top:22px; border-top:1px solid var(--np-line); }
.np-detail-section h3 { margin:22px 0 14px; font:700 17px Georgia,serif; }
.np-detail-section h3:first-child { margin-top:0; }
.np-info { display:flex; justify-content:space-between; gap:15px; margin:20px 0 0; padding:11px 13px; border-radius:9px; background:#f3f5ef; font-size:9px; }
.np-info span { color:var(--np-muted); }
.np-source { margin:17px 0 0; padding-top:14px; border-top:1px solid var(--np-line); color:var(--np-muted); font-size:8px; line-height:1.5; }
.np-dialog { width:min(760px,calc(100% - 30px)); max-height:88vh; border:0; border-radius:22px; padding:0; color:var(--np-ink); background:var(--np-paper); box-shadow:0 30px 90px rgba(0,0,0,.22); }
.np-dialog::backdrop { background:rgba(16,34,30,.55); backdrop-filter:blur(4px); }
.np-dialog form { padding:26px; }
.np-dialog h2 { margin:8px 0 23px; font:700 28px Georgia; }
.np-close { float:right; border:0; border-radius:50%; background:#edf0e9; width:36px; height:36px; color:var(--np-ink); font-size:19px; cursor:pointer; }
.np-dialog textarea { resize:vertical; line-height:1.45; }
.np-dialog #np-parse { width:100%; border:1px solid var(--np-green); border-radius:10px; background:#eef3eb; color:var(--np-green); padding:10px; margin:-6px 0 17px; font-weight:700; cursor:pointer; }
#np-notes p { margin:0 0 8px; padding:9px 11px; border-radius:9px; background:#fff3dc; color:#76582d; font-size:9px; }
.np-fields { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; }
.np-fields label span { position:relative; display:block; }
.np-fields i { position:absolute; right:9px; bottom:11px; color:var(--np-muted); font-style:normal; font-size:9px; }
.np-fields input { padding-right:37px; }
.np-primary { width:100%; border:0; border-radius:999px; background:var(--np-green); color:#fff; padding:13px; font-weight:700; cursor:pointer; }
.napfplan-login { max-width:620px; margin:80px auto; padding:36px; background:var(--np-paper); border:1px solid var(--np-line); border-radius:22px; text-align:center; }
.napfplan-login h2 { font:700 28px Georgia; }.napfplan-login p { color:var(--np-muted); line-height:1.5; }.napfplan-login a { display:inline-block; padding:11px 18px; border-radius:999px; background:var(--np-green); color:#fff; text-decoration:none; }
@media(max-width:1050px) { .np-grid{grid-template-columns:1fr 1fr}.np-library{grid-column:1/-1}.np-head{align-items:flex-start}.np-hero-side{margin-top:35px}.np-result-grid{grid-template-columns:1fr 1fr} }
@media(max-width:720px) { .np-head{display:block;padding:36px 5px 28px}.np-head h1{font-size:50px}.np-hero-text>p{font-size:14px}.np-hero-side{width:auto;margin-top:25px}.np-grid{grid-template-columns:1fr}.np-library{grid-column:auto}.np-card,.np-results{padding:19px;border-radius:18px}.np-results-head{flex-wrap:wrap}.np-print-button{order:4;width:100%;margin-left:0}.np-ratio{grid-template-columns:1fr}.np-result-grid{grid-template-columns:1fr}.np-info{display:block}.np-info span{display:block;margin-top:4px}.np-fields{grid-template-columns:1fr 1fr} }
@media print { @page{margin:14mm}.np-head,.np-grid,.np-print-button,.np-detail-toggle{display:none!important}.np-shell{color:#172f2a}.np-results{margin:0;padding:0;border:0;box-shadow:none}.np-results-head{margin-bottom:14px}.np-results-head .np-step{display:none}.np-results-head h2{font-size:25px}.np-print-only{display:block;margin:0 0 20px;padding:15px 0;border-top:1px solid #dfe4dc;border-bottom:1px solid #dfe4dc}.np-print-only h2{margin:0 0 4px;font:700 20px Georgia}.np-print-only p{margin:4px 0;color:#5f6f69;font-size:9px}.np-print-only h3{margin:13px 0 5px;font:700 13px Georgia}.np-print-only table{width:100%;border-collapse:collapse;font-size:9px}.np-print-only td{padding:4px 0;border-bottom:1px solid #eceee9}.np-print-only td:last-child{text-align:right}.np-result-grid{grid-template-columns:repeat(3,1fr);gap:11px 18px}.np-detail-section{break-before:auto}.np-nutrient{break-inside:avoid}.np-info,.np-source{break-inside:avoid} }
